24 May, 2016

1 commit

  • Pull libnvdimm updates from Dan Williams:
    "The bulk of this update was stabilized before the merge window and
    appeared in -next. The "device dax" implementation was revised this
    week in response to review feedback, and to address failures detected
    by the recently expanded ndctl unit test suite.

    Not included in this pull request are two dax topic branches (dax
    error handling, and dax radix-tree locking). These topics were
    deferred to get a few more days of -next integration testing, and to
    coordinate a branch baseline with Ted and the ext4 tree. Vishal and
    Ross will send the error handling and locking topics respectively in
    the next few days.

    This branch has received a positive build result from the kbuild robot
    across 226 configs.

    Summary:

    - Device DAX for persistent memory: Device DAX is the device-centric
    analogue of Filesystem DAX (CONFIG_FS_DAX). It allows memory
    ranges to be allocated and mapped without need of an intervening
    file system. Device DAX is strict, precise and predictable.
    Specifically this interface:

    a) Guarantees fault granularity with respect to a given page size
    (pte, pmd, or pud) set at configuration time.

    b) Enforces deterministic behavior by being strict about what
    fault scenarios are supported.

    Persistent memory is the first target, but the mechanism is also
    targeted for exclusive allocations of performance/feature
    differentiated memory ranges.

    - Support for the HPE DSM (device specific method) command formats.
    This enables management of these first generation devices until a
    unified DSM specification materializes.

    - Further ACPI 6.1 compliance with support for the common dimm
    identifier format.

    - Various fixes and cleanups across the subsystem"

    * tag 'libnvdimm-for-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (40 commits)
    libnvdimm, dax: fix deletion
    libnvdimm, dax: fix alignment validation
    libnvdimm, dax: autodetect support
    libnvdimm: release ida resources
    Revert "block: enable dax for raw block devices"
    /dev/dax, core: file operations and dax-mmap
    /dev/dax, pmem: direct access to persistent memory
    libnvdimm: stop requiring a driver ->remove() method
    libnvdimm, dax: record the specified alignment of a dax-device instance
    libnvdimm, dax: reserve space to store labels for device-dax
    libnvdimm, dax: introduce device-dax infrastructure
    nfit: add sysfs dimm 'family' and 'dsm_mask' attributes
    tools/testing/nvdimm: ND_CMD_CALL support
    nfit: disable vendor specific commands
    nfit: export subsystem ids as attributes
    nfit: fix format interface code byte order per ACPI6.1
    nfit, libnvdimm: limited/whitelisted dimm command marshaling mechanism
    nfit, libnvdimm: clarify "commands" vs "_DSMs"
    libnvdimm: increase max envelope size for ioctl
    acpi/nfit: Add sysfs "id" for NVDIMM ID
    ...

    Linus Torvalds
     

23 May, 2016

5 commits

  • Pull motr tracing updates from Steven Rostedt:
    "Three more changes.

    - I forgot that I had another selftest to stress test the ftrace
    instance creation. It was actually suppose to go into the 4.6
    merge window, but I never committed it. I almost forgot about it
    again, but noticed it was missing from your tree.

    - Soumya PN sent me a clean up patch to not disable interrupts when
    taking the tasklist_lock for read, as it's unnecessary because that
    lock is never taken for write in irq context.

    - Newer gcc's can cause the jump in the function_graph code to the
    global ftrace_stub label to be a short jump instead of a long one.
    As that jump is dynamically converted to jump to the trace code to
    do function graph tracing, and that conversion expects a long jump
    it can corrupt the ftrace_stub itself (it's directly after that
    call). One way to prevent gcc from using a short jump is to
    declare the ftrace_stub as a weak function, which we do here to
    keep gcc from optimizing too much"

    * tag 'trace-v4.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    ftrace/x86: Set ftrace_stub to weak to prevent gcc from using short jumps to it
    ftrace: Don't disable irqs when taking the tasklist_lock read_lock
    ftracetest: Add instance created, delete, read and enable event test

    Linus Torvalds
     
  • Pull m68knommu update from Greg Ungerer:
    "Only a single change to update my email address in the MAINTAINERS
    file"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
    m68k: change m68knommu maintainer email address

    Linus Torvalds
     
  • Pull sparc updates from David Miller:
    "Some 32-bit kgdb cleanups from Sam Ravnborg, and a hugepage TLB flush
    overhead fix on 64-bit from Nitin Gupta"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc64: Reduce TLB flushes during hugepte changes
    aeroflex/greth: fix warning about unused variable
    openprom: fix warning
    sparc32: drop superfluous cast in calls to __nocache_pa()
    sparc32: fix build with STRICT_MM_TYPECHECKS
    sparc32: use proper prototype for trapbase
    sparc32: drop local prototype in kgdb_32
    sparc32: drop hardcoding trap_level in kgdb_trap

    Linus Torvalds
     
  • I'm looking at trying to possibly merge the 32-bit and 64-bit versions
    of the x86 uaccess.h implementation, but first this needs to be cleaned
    up.

    For example, the 32-bit version of "__copy_from_user_inatomic()" is
    mostly the special cases for the constant size, and it's actually almost
    never relevant. Most users aren't actually using a constant size
    anyway, and the few cases that do small constant copies are better off
    just using __get_user() instead.

    So get rid of the unnecessary complexity.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • I'm looking at trying to possibly merge the 32-bit and 64-bit versions
    of the x86 uaccess.h implementation, but first this needs to be cleaned
    up.

    For example, the 32-bit version of "__copy_to_user_inatomic()" is mostly
    the special cases for the constant size, and it's actually never
    relevant. Every user except for one aren't actually using a constant
    size anyway, and the one user that uses it is better off just using
    __put_user() instead.

    So get rid of the unnecessary complexity.

    [ The same cleanup should likely happen to __copy_from_user_inatomic()
    as well, but that one has a lot more users that I need to take a look
    at first ]

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

22 May, 2016

8 commits

  • Pull f2fs updates from Jaegeuk Kim:
    "In this round, as Ted pointed out, fscrypto allows one more key prefix
    given by filesystem to resolve backward compatibility issues. Other
    than that, we've fixed several error handling cases by introducing
    a fault injection facility. We've also achieved performance
    improvement in some workloads as well as a bunch of bug fixes.

    Summary:

    Enhancements:
    - fs-specific prefix for fscrypto
    - fault injection facility
    - expose validity bitmaps for user to be aware of fragmentation
    - fallocate/rm/preallocation speed up
    - use percpu counters

    Bug fixes:
    - some inline_dentry/inline_data bugs
    - error handling for atomic/volatile/orphan inodes
    - recover broken superblock"

    * tag 'for-f2fs-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (73 commits)
    f2fs: fix to update dirty page count correctly
    f2fs: flush pending bios right away when error occurs
    f2fs: avoid ENOSPC fault in the recovery process
    f2fs: make exit_f2fs_fs more clear
    f2fs: use percpu_counter for total_valid_inode_count
    f2fs: use percpu_counter for alloc_valid_block_count
    f2fs: use percpu_counter for # of dirty pages in inode
    f2fs: use percpu_counter for page counters
    f2fs: use bio count instead of F2FS_WRITEBACK page count
    f2fs: manipulate dirty file inodes when DATA_FLUSH is set
    f2fs: add fault injection to sysfs
    f2fs: no need inc dirty pages under inode lock
    f2fs: fix incorrect error path handling in f2fs_move_rehashed_dirents
    f2fs: fix i_current_depth during inline dentry conversion
    f2fs: correct return value type of f2fs_fill_super
    f2fs: fix deadlock when flush inline data
    f2fs: avoid f2fs_bug_on during recovery
    f2fs: show # of orphan inodes
    f2fs: support in batch fzero in dnode page
    f2fs: support in batch multi blocks preallocation
    ...

    Linus Torvalds
     
  • Dan Williams
     
  • The ndctl unit tests discovered that the dax enabling omitted updates to
    nd_detach_and_reset(). This routine clears device the configuration
    when the namespace is detached. Without this clearing userspace may
    assume that the device is in the process of being configured by another
    agent in the system.

    Signed-off-by: Dan Williams

    Dan Williams
     
  • Testing the dax-device autodetect support revealed a probe failure with
    the following result:

    dax0.1: bad offset: 0x8200000 dax disabled

    The original pfn-device implementation inferred the alignment from
    ilog2(offset), now that the alignment is explicit the is_power_of_2()
    needs replacing with a real sanity check against the recorded alignment.
    Otherwise the alignment check is useless in the implicit case and only
    the minimum size of the offset matters.

    This self-consistency check is further validated by the probe path that
    will re-check that the offset is large enough to contain all the
    metadata required to enable the device.

    Cc:
    Signed-off-by: Dan Williams

    Dan Williams
     
  • Pull btrfs updates from Chris Mason:
    "This has our merge window series of cleanups and fixes. These target
    a wide range of issues, but do include some important fixes for
    qgroups, O_DIRECT, and fsync handling. Jeff Mahoney moved around a
    few definitions to make them easier for userland to consume.

    Also whiteout support is included now that issues with overlayfs have
    been cleared up.

    I have one more fix pending for page faults during btrfs_copy_from_user,
    but I wanted to get this bulk out the door first"

    * 'for-linus-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (90 commits)
    btrfs: fix memory leak during RAID 5/6 device replacement
    Btrfs: add semaphore to synchronize direct IO writes with fsync
    Btrfs: fix race between block group relocation and nocow writes
    Btrfs: fix race between fsync and direct IO writes for prealloc extents
    Btrfs: fix number of transaction units for renames with whiteout
    Btrfs: pin logs earlier when doing a rename exchange operation
    Btrfs: unpin logs if rename exchange operation fails
    Btrfs: fix inode leak on failure to setup whiteout inode in rename
    btrfs: add support for RENAME_EXCHANGE and RENAME_WHITEOUT
    Btrfs: pin log earlier when renaming
    Btrfs: unpin log if rename operation fails
    Btrfs: don't do unnecessary delalloc flushes when relocating
    Btrfs: don't wait for unrelated IO to finish before relocation
    Btrfs: fix empty symlink after creating symlink and fsync parent dir
    Btrfs: fix for incorrect directory entries after fsync log replay
    btrfs: build fixup for qgroup_account_snapshot
    btrfs: qgroup: Fix qgroup accounting when creating snapshot
    Btrfs: fix fspath error deallocation
    btrfs: make find_workspace warn if there are no workspaces
    btrfs: make find_workspace always succeed
    ...

    Linus Torvalds
     
  • Pull RTC updates from Alexandre Belloni:
    "Subsystem wide cleanups:
    - Use IS_ENABLED() instead of checking for built-in or module
    - remove useless DRV_VERSION
    - remove CLK_IS_ROOT
    - remove UIE signaling

    Drivers:
    - ds1302: rewritten to be a proper SPI device driver
    - m41t80: huge cleanup, alarm, wakelarm ans oscialltor failure
    detection support
    - rv3029: switch to regmap to handle rv3049, alarm support, fixes
    - zynqmp: enable switching to battery power, fixes
    - small fixes for at91sam9, da9053, ds1307, ds1685, ds3232, r2025,
    sa1100, snvs, stmp3xxx, tps6586x"

    * tag 'rtc-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (40 commits)
    rtc: tps6586x: rename so module can be autoloaded
    rtc: rv3029: hide unused i2c device table
    rtc: rs5c372: r2025: fix check for 'oscillator halted' condition
    rtc: rv3029: add alarm IRQ
    rtc: rv3029: fix set_time function
    rtc: rv3029: fix alarm support
    rtc: rv3029: Remove some checks and warnings
    rtc: rv3029: Add support of RV3049
    rtc: rv3029: convert to use regmap
    rtc: rv3029: remove 'i2c' in functions names
    rtc: stmp3xxx: print message on error
    rtc: Use IS_ENABLED() instead of checking for built-in or module
    rtc: ds3232: fix call trace when rtc->ops_lock is used as NULL
    rtc: snvs: return error in case enable_irq_wake fails
    rtc: zynqmp: Update seconds time programming logic
    rtc: sa1100: DT spelling s/interrupt-name/interrupt-names/
    rtc: mc13xxx: remove UIE signaling
    rtc: mxc: remove UIE signaling
    rtc: ds1307: Remove CLK_IS_ROOT
    rtc: hym8563: Remove CLK_IS_ROOT
    ...

    Linus Torvalds
     
  • Pull mailbox updates from Jassi Brar:
    "OMAP:
    - Remove non-DT support from mailbox driver
    - Move PM from client calls to native driver suspend/resume
    - Trivial cleanups to make checkpatch happy

    STI:
    - Check return from devm_ioremap_resource as ERR_PTR, not NULL"

    * 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
    mailbox: Fix devm_ioremap_resource error detection code
    mailbox/omap: kill omap_mbox_{save/restore}_ctx() functions
    mailbox/omap: check for any unread messages during suspend
    mailbox/omap: add support for suspend/resume
    mailbox/omap: store mailbox interrupt type in omap_mbox_device
    mailbox/omap: add blank lines after declarations
    mailbox/omap: remove FSF mailing address paragraph
    mailbox/omap: use variable name for sizeof() operator
    mailbox/omap: drop legacy platform device support

    Linus Torvalds
     
  • Commit b3c1be1b789c ("base: isa: Remove X86_32 dependency") made ISA
    support available on x86-64 too. That's not right - while there are
    some LPC-style devices that might be useful still and be based on
    ISA-like IP blocks, that is *not* an excuse to try to enable any random
    legacy drivers.

    Such drivers should be individually enabled and made to perhaps depend
    on ISA_DMA_API instead (which we have continued to support on x86-64).
    Or we could add another "ISA_XYZ_API" that we support that doesn't
    enable random old drivers that aren't even 64-bit clean nor do we have
    any test coverage for.

    Turning off ISA will now also turn off some drivers that have been
    marked as depending on it as part of this series, and that used to work
    on modern platforms.

    See for example commits ad7afc38eab3..cc736607c86d, which may also need
    to be reverted.

    This commit means that the warnings that came in due to enabling ISA
    widely are now gone again.

    Acked-by: William Breathitt Gray
    Cc: Linus Walleij
    Cc: Guenter Roeck
    Cc: Greg Kroah-Hartman
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

21 May, 2016

26 commits

  • This module is loaded by the related mfd driver which has
    the needed MODULE_DEVICE_TABLE(i2c,...).

    This patch fix the modalias when the rtc driver is built
    as a module, so the right name is used.
    Everything operates correctly when this module is builtin.

    Fixes: esdc59ed3865 ("rtc: add RTC driver for TPS6586x")
    Signed-off-by: Nicolas Chauvet
    Signed-off-by: Alexandre Belloni

    Nicolas Chauvet
     
  • The added support for SPI mode made it possible to configure the driver
    when I2C is disabled, leaving an unused device table:

    drivers/rtc/rtc-rv3029c2.c:794:29: error: 'rv3029_id' defined but not used [-Werror=unused-variable]

    This moves the table inside of the #ifdef section that has the
    only user, to avoid the harmless warning.

    Signed-off-by: Arnd Bergmann
    Fixes: d08f50dd0afc ("rtc: rv3029: Add support of RV3049")
    Signed-off-by: Alexandre Belloni

    Arnd Bergmann
     
  • The R2025SD chip, according to its data sheet, sets the /XST
    bit to zero if the oscillator stops. Hence the check for this
    condition was wrong.

    Signed-off-by: Thomas Koeller
    Signed-off-by: Alexandre Belloni

    Thomas Koeller
     
  • Add the alarm IRQ functionality.

    Signed-off-by: Mylène Josserand
    Signed-off-by: Alexandre Belloni

    Mylène Josserand
     
  • The bin2bcd function in set_time is uncorrect on weekdays as the
    bit mask should be done at the end of arithmetic operations.

    Signed-off-by: Mylène Josserand
    Signed-off-by: Alexandre Belloni

    Mylène Josserand
     
  • The RTC RV3029 handles different types of alarms : seconds, minutes, ...
    These alarms can be enabled or disabled individually using an AE_x bit
    which is the last bit (BIT(7)) on each alarm registers.

    To prepare the alarm IRQ support, the current code enables all the alarm
    types by setting each AE_x to 1.
    It also fixes others alarms issues :
    - month and weekday errors : it was performing -1 instead of +1.
    - wrong use of bit mask with bin2bcd

    Signed-off-by: Mylène Josserand
    Signed-off-by: Alexandre Belloni

    Mylène Josserand
     
  • Remove some checks from checkpatch such as spaces around arithmetic
    operations or prefer "unsigned int".

    Signed-off-by: Mylène Josserand
    Signed-off-by: Alexandre Belloni

    Mylène Josserand
     
  • Add support of Microcrystal RV3049 RTC (SPI) using regmap on the
    RV3029 (I2C) driver.

    Signed-off-by: Mylène Josserand
    Signed-off-by: Alexandre Belloni

    Mylène Josserand
     
  • To add support of rv3049, the current driver is converted to use regmap.

    Signed-off-by: Mylène Josserand
    Signed-off-by: Alexandre Belloni

    Mylène Josserand
     
  • To prepare the use of regmap to add the support of RV-3049, all the
    'i2c' in functions's names are removed.

    Signed-off-by: Mylène Josserand
    Signed-off-by: Alexandre Belloni

    Mylène Josserand
     
  • Merge more updates from Andrew Morton:

    - the rest of MM

    - KASAN updates

    - procfs updates

    - exit, fork updates

    - printk updates

    - lib/ updates

    - radix-tree testsuite updates

    - checkpatch updates

    - kprobes updates

    - a few other misc bits

    * emailed patches from Andrew Morton : (162 commits)
    samples/kprobes: print out the symbol name for the hooks
    samples/kprobes: add a new module parameter
    kprobes: add the "tls" argument for j_do_fork
    init/main.c: simplify initcall_blacklisted()
    fs/efs/super.c: fix return value
    checkpatch: improve --git shortcut
    checkpatch: reduce number of `git log` calls with --git
    checkpatch: add support to check already applied git commits
    checkpatch: add --list-types to show message types to show or ignore
    checkpatch: advertise the --fix and --fix-inplace options more
    checkpatch: whine about ACCESS_ONCE
    checkpatch: add test for keywords not starting on tabstops
    checkpatch: improve CONSTANT_COMPARISON test for structure members
    checkpatch: add PREFER_IS_ENABLED test
    lib/GCD.c: use binary GCD algorithm instead of Euclidean
    radix-tree: free up the bottom bit of exceptional entries for reuse
    dax: move RADIX_DAX_ definitions to dax.c
    radix-tree: make radix_tree_descend() more useful
    radix-tree: introduce radix_tree_replace_clear_tags()
    radix-tree: tidy up __radix_tree_create()
    ...

    Linus Torvalds
     
  • Pull staging and IIO driver updates from Greg KH:
    "Here's the big staging and iio driver update for 4.7-rc1.

    I think we almost broke even with this release, only adding a few more
    lines than we removed, which isn't bad overall given that there's a
    bunch of new iio drivers added.

    The Lustre developers seem to have woken up from their sleep and have
    been doing a great job in cleaning up the code and pruning unused or
    old cruft, the filesystem is almost readable :)

    Other than that, just a lot of basic coding style cleanups in the
    churn. All have been in linux-next for a while with no reported
    issues"

    * tag 'staging-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (938 commits)
    Staging: emxx_udc: emxx_udc: fixed coding style issue
    staging/gdm724x: fix "alignment should match open parenthesis" issues
    staging/gdm724x: Fix avoid CamelCase
    staging: unisys: rename misleading var ii with frag
    staging: unisys: visorhba: switch success handling to error handling
    staging: unisys: visorhba: main path needs to flow down the left margin
    staging: unisys: visorinput: handle_locking_key() simplifications
    staging: unisys: visorhba: fail gracefully for thread creation failures
    staging: unisys: visornic: comment restructuring and removing bad diction
    staging: unisys: fix format string %Lx to %llx for u64
    staging: unisys: remove unused struct members
    staging: unisys: visorchannel: correct variable misspelling
    staging: unisys: visorhba: replace functionlike macro with function
    staging: dgnc: Need to check for NULL of ch
    staging: dgnc: remove redundant condition check
    staging: dgnc: fix 'line over 80 characters'
    staging: dgnc: clean up the dgnc_get_modem_info()
    staging: lustre: lnet: enable configuration per NI interface
    staging: lustre: o2iblnd: properly set ibr_why
    staging: lustre: o2iblnd: remove last of kiblnd_tunables_fini
    ...

    Linus Torvalds
     
  • For autodetecting a previously established dax configuration we need the
    info block to indicate block-device vs device-dax mode, and we need to
    have the default namespace probe hand-off the configuration to the
    dax_pmem driver.

    Signed-off-by: Dan Williams

    Dan Williams
     
  • ida instances allocate some internal memory for ->free_bitmap in
    addition to the base 'struct ida'. Use ida_destroy() to release that
    memory at module_exit().

    Reported-by: Johannes Thumshirn
    Reviewed-by: Johannes Thumshirn
    Signed-off-by: Dan Williams

    Dan Williams
     
  • This reverts commit 5a023cdba50c5f5f2bc351783b3131699deb3937.

    The functionality is superseded by the new "Device DAX" facility.

    Cc: Jeff Moyer
    Cc: Christoph Hellwig
    Cc: Dave Chinner
    Cc: Andrew Morton
    Cc: Ross Zwisler
    Cc: Jan Kara
    Signed-off-by: Dan Williams

    Dan Williams
     
  • The "Device DAX" core enables dax mappings of performance / feature
    differentiated memory. An open mapping or file handle keeps the backing
    struct device live, but new mappings are only possible while the device
    is enabled. Faults are handled under rcu_read_lock to synchronize
    with the enabled state of the device.

    Similar to the filesystem-dax case the backing memory may optionally
    have struct page entries. However, unlike fs-dax there is no support
    for private mappings, or mappings that are not backed by media (see
    use of zero-page in fs-dax).

    Mappings are always guaranteed to match the alignment of the dax_region.
    If the dax_region is configured to have a 2MB alignment, all mappings
    are guaranteed to be backed by a pmd entry. Contrast this determinism
    with the fs-dax case where pmd mappings are opportunistic. If userspace
    attempts to force a misaligned mapping, the driver will fail the mmap
    attempt. See dax_dev_check_vma() for other scenarios that are rejected,
    like MAP_PRIVATE mappings.

    Cc: Hannes Reinecke
    Cc: Jeff Moyer
    Cc: Christoph Hellwig
    Cc: Andrew Morton
    Cc: Dave Hansen
    Cc: Ross Zwisler
    Acked-by: "Paul E. McKenney"
    Reviewed-by: Johannes Thumshirn
    Signed-off-by: Dan Williams

    Dan Williams
     
  • Device DAX is the device-centric analogue of Filesystem DAX
    (CONFIG_FS_DAX). It allows memory ranges to be allocated and mapped
    without need of an intervening file system. Device DAX is strict,
    precise and predictable. Specifically this interface:

    1/ Guarantees fault granularity with respect to a given page size (pte,
    pmd, or pud) set at configuration time.

    2/ Enforces deterministic behavior by being strict about what fault
    scenarios are supported.

    For example, by forcing MADV_DONTFORK semantics and omitting MAP_PRIVATE
    support device-dax guarantees that a mapping always behaves/performs the
    same once established. It is the "what you see is what you get" access
    mechanism to differentiated memory vs filesystem DAX which has
    filesystem specific implementation semantics.

    Persistent memory is the first target, but the mechanism is also
    targeted for exclusive allocations of performance differentiated memory
    ranges.

    This commit is limited to the base device driver infrastructure to
    associate a dax device with pmem range.

    Cc: Jeff Moyer
    Cc: Christoph Hellwig
    Cc: Andrew Morton
    Cc: Dave Hansen
    Cc: Ross Zwisler
    Reviewed-by: Johannes Thumshirn
    Signed-off-by: Dan Williams

    Dan Williams
     
  • Pull driver core updates from Greg KH:
    "Here's the "big" driver core update for 4.7-rc1.

    Mostly just debugfs changes, the long-known and messy races with
    removing debugfs files should be fixed thanks to the great work of
    Nicolai Stange. We also have some isa updates in here (the x86
    maintainers told me to take it through this tree), a new warning when
    we run out of dynamic char major numbers, and a few other assorted
    changes, details in the shortlog.

    All have been in linux-next for some time with no reported issues"

    * tag 'driver-core-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (32 commits)
    Revert "base: dd: don't remove driver_data in -EPROBE_DEFER case"
    gpio: ws16c48: Utilize the ISA bus driver
    gpio: 104-idio-16: Utilize the ISA bus driver
    gpio: 104-idi-48: Utilize the ISA bus driver
    gpio: 104-dio-48e: Utilize the ISA bus driver
    watchdog: ebc-c384_wdt: Utilize the ISA bus driver
    iio: stx104: Utilize the module_isa_driver and max_num_isa_dev macros
    iio: stx104: Add X86 dependency to STX104 Kconfig option
    Documentation: Add ISA bus driver documentation
    isa: Implement the max_num_isa_dev macro
    isa: Implement the module_isa_driver macro
    pnp: pnpbios: Add explicit X86_32 dependency to PNPBIOS
    isa: Decouple X86_32 dependency from the ISA Kconfig option
    driver-core: use 'dev' argument in dev_dbg_ratelimited stub
    base: dd: don't remove driver_data in -EPROBE_DEFER case
    kernfs: Move faulting copy_user operations outside of the mutex
    devcoredump: add scatterlist support
    debugfs: unproxify files created through debugfs_create_u32_array()
    debugfs: unproxify files created through debugfs_create_blob()
    debugfs: unproxify files created through debugfs_create_bool()
    ...

    Linus Torvalds
     
  • Pull char / misc driver updates from Greg KH:
    "Here's the big char and misc driver update for 4.7-rc1.

    Lots of different tiny driver subsystems have updates here with new
    drivers and functionality. Details in the shortlog.

    All have been in linux-next with no reported issues for a while"

    * tag 'char-misc-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (125 commits)
    mcb: Delete num_cells variable which is not required
    mcb: Fixed bar number assignment for the gdd
    mcb: Replace ioremap and request_region with the devm version
    mcb: Implement bus->dev.release callback
    mcb: export bus information via sysfs
    mcb: Correctly initialize the bus's device
    mei: bus: call mei_cl_read_start under device lock
    coresight: etb10: adjust read pointer only when needed
    coresight: configuring ETF in FIFO mode when acting as link
    coresight: tmc: implementing TMC-ETF AUX space API
    coresight: moving struct cs_buffers to header file
    coresight: tmc: keep track of memory width
    coresight: tmc: make sysFS and Perf mode mutually exclusive
    coresight: tmc: dump system memory content only when needed
    coresight: tmc: adding mode of operation for link/sinks
    coresight: tmc: getting rid of multiple read access
    coresight: tmc: allocating memory when needed
    coresight: tmc: making prepare/unprepare functions generic
    coresight: tmc: splitting driver in ETB/ETF and ETR components
    coresight: tmc: cleaning up header file
    ...

    Linus Torvalds
     
  • Pull USB updates from Greg KH:
    "Here's the big pull request for USB and PHY drivers for 4.7-rc1

    Full details in the shortlog, but it's the normal major gadget driver
    updates, phy updates, new usbip code, as well as a bit of lots of
    other stuff.

    All have been in linux-next with no reported issues"

    * tag 'usb-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (164 commits)
    USB: serial: ti_usb_3410_5052: add MOXA UPORT 11x0 support
    USB: serial: fix minor-number allocation
    USB: serial: quatech2: fix use-after-free in probe error path
    USB: serial: mxuport: fix use-after-free in probe error path
    USB: serial: keyspan: fix debug and error messages
    USB: serial: keyspan: fix URB unlink
    USB: serial: keyspan: fix use-after-free in probe error path
    USB: serial: io_edgeport: fix memory leaks in probe error path
    USB: serial: io_edgeport: fix memory leaks in attach error path
    usb: Remove unnecessary space before operator ','.
    usb: Remove unnecessary space before open square bracket.
    USB: FHCI: avoid redundant condition
    usb: host: xhci-rcar: Avoid long wait in xhci_reset()
    usb/host/fotg210: remove dead code in create_sysfs_files
    usb: wusbcore: Do not initialise statics to 0.
    usb: wusbcore: Remove space before ',' and '(' .
    USB: serial: cp210x: clean up CRTSCTS flag code
    USB: serial: cp210x: get rid of magic numbers in CRTSCTS flag code
    USB: serial: cp210x: fix hardware flow-control disable
    USB: serial: option: add even more ZTE device ids
    ...

    Linus Torvalds
     
  • Pull tty and serial driver updates from Greg KH:
    "Here's the large TTY and Serial driver update for 4.7-rc1.

    A few new serial drivers are added here, and Peter has fixed a bunch
    of long-standing bugs in the tty layer and serial drivers as normal.
    Full details in the shortlog.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'tty-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (88 commits)
    MAINTAINERS: 8250: remove website reference
    serial: core: Fix port mutex assert if lockdep disabled
    serial: 8250_dw: fix wrong logic in dw8250_check_lcr()
    tty: vt, finish looping on duplicate
    tty: vt, return error when con_startup fails
    QE-UART: add "fsl,t1040-ucc-uart" to of_device_id
    serial: mctrl_gpio: Drop support for out1-gpios and out2-gpios
    serial: 8250dw: Add device HID for future AMD UART controller
    Fix OpenSSH pty regression on close
    serial: mctrl_gpio: add IRQ locking
    serial: 8250: Integrate Fintek into 8250_base
    serial: mps2-uart: add support for early console
    serial: mps2-uart: add MPS2 UART driver
    dt-bindings: document the MPS2 UART bindings
    serial: sirf: Use generic uart-has-rtscts DT property
    serial: sirf: Introduce helper variable struct device_node *np
    serial: mxs-auart: Use generic uart-has-rtscts DT property
    serial: imx: Use generic uart-has-rtscts DT property
    doc: DT: Add Generic Serial Device Tree Bindings
    serial: 8250: of: Make tegra_serial_handle_break() static
    ...

    Linus Torvalds
     
  • Pull clk updates from Stephen Boyd:
    "It's the usual big pile of driver updates and additions, but we do
    have a couple core changes in here as well.

    Core:

    - CLK_IS_CRITICAL support has been added. This should allow drivers
    to properly express that a certain clk should stay on even if their
    prepare/enable count drops to 0 (and in turn the parents of these
    clks should stay enabled).

    - A clk registration API has been added, clk_hw_register(), and an OF
    clk provider API has been added, of_clk_add_hw_provider(). These
    APIs have been put in place to further split clk providers from clk
    consumers, with the goal being to have clk providers never deal
    with struct clk pointers at all. Conversion of provider drivers is
    on going. clkdev has also gained support for registering clk_hw
    pointers directly so we can convert drivers that don't use
    devicetree.

    New Drivers:

    - Marvell ap806 and cp110 system controllers (with clks inside!)
    - Hisilicon Hi3519 clock and reset controller
    - Axis ARTPEC-6 clock controllers
    - Oxford Semiconductor OXNAS clock controllers
    - AXS10X I2S PLL
    - Rockchip RK3399 clock and reset controller

    Updates:

    - MMC2 and UART2 clks on Samsung Exynos 3250, ACLK on Samsung Exynos
    542x SoCs, and some more clk ID exporting for bus frequency scaling
    - Proper BCM2835 PCM clk support and various other clks
    - i.MX clk updates for i.MX6SX, i.MX7, and VF610
    - Renesas updates for R-Car H3
    - Tegra210 got updates for DisplayPort and HDMI 2.0
    - Rockchip driver refactorings and fixes due to adding RK3399 support"

    * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (139 commits)
    clk: fix critical clock locking
    clk: qcom: mmcc-8996: Remove clocks that should be controlled by RPM
    clk: ingenic: Allow divider value to be divided
    clk: sunxi: Add display and TCON0 clocks driver
    clk: rockchip: drop old_rate calculation on pll rate changes
    clk: rockchip: simplify GRF handling in pll clocks
    clk: rockchip: lookup General Register Files in rockchip_clk_init
    clk: rockchip: fix the rk3399 sdmmc sample / drv name
    clk: mvebu: new driver for Armada CP110 system controller
    dt-bindings: arm: add DT binding for Marvell CP110 system controller
    clk: mvebu: new driver for Armada AP806 system controller
    clk: hisilicon: add CRG driver for hi3519 soc
    clk: hisilicon: export some hisilicon APIs to modules
    reset: hisilicon: add reset controller driver for hisilicon SOCs
    clk: bcm/kona: Do not use sizeof on pointer type
    clk: qcom: msm8916: Fix crypto clock flags
    clk: nxp: lpc18xx: Initialize clk_init_data::flags to 0
    clk/axs10x: Add I2S PLL clock driver
    clk: imx7d: fix ahb clock mux 1
    clk: fix comment of devm_clk_hw_register()
    ...

    Linus Torvalds
     
  • Pull networking fixes and more updates from David Miller:

    1) Tunneling fixes from Tom Herbert and Alexander Duyck.

    2) AF_UNIX updates some struct sock bit fields with the socket lock,
    whereas setsockopt() sets overlapping ones with locking. Seperate
    out the synchronized vs. the AF_UNIX unsynchronized ones to avoid
    corruption. From Andrey Ryabinin.

    3) Mount BPF filesystem with mount_nodev rather than mount_ns, from
    Eric Biederman.

    4) A couple kmemdup conversions, from Muhammad Falak R Wani.

    5) BPF verifier fixes from Alexei Starovoitov.

    6) Don't let tunneled UDP packets get stuck in socket queues, if
    something goes wrong during the encapsulation just drop the packet
    rather than signalling an error up the call stack. From Hannes
    Frederic Sowa.

    7) SKB ref after free in batman-adv, from Florian Westphal.

    8) TCP iSCSI, ocfs2, rds, and tipc have to disable BH in it's TCP
    callbacks since the TCP stack runs pre-emptibly now. From Eric
    Dumazet.

    9) Fix crash in fixed_phy_add, from Rabin Vincent.

    10) Fix length checks in xen-netback, from Paul Durrant.

    11) Fix mixup in KEY vs KEYID macsec attributes, from Sabrina Dubroca.

    12) RDS connection spamming bug fixes from Sowmini Varadhan

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (152 commits)
    net: suppress warnings on dev_alloc_skb
    uapi glibc compat: fix compilation when !__USE_MISC in glibc
    udp: prevent skbs lingering in tunnel socket queues
    bpf: teach verifier to recognize imm += ptr pattern
    bpf: support decreasing order in direct packet access
    net: usb: ch9200: use kmemdup
    ps3_gelic: use kmemdup
    net:liquidio: use kmemdup
    bpf: Use mount_nodev not mount_ns to mount the bpf filesystem
    net: cdc_ncm: update datagram size after changing mtu
    tuntap: correctly wake up process during uninit
    intel: Add support for IPv6 IP-in-IP offload
    ip6_gre: Do not allow segmentation offloads GRE_CSUM is enabled with FOU/GUE
    RDS: TCP: Avoid rds connection churn from rogue SYNs
    RDS: TCP: rds_tcp_accept_worker() must exit gracefully when terminating rds-tcp
    net: sock: move ->sk_shutdown out of bitfields.
    ipv6: Don't reset inner headers in ip6_tnl_xmit
    ip4ip6: Support for GSO/GRO
    ip6ip6: Support for GSO/GRO
    ipv6: Set features for IPv6 tunnels
    ...

    Linus Torvalds
     
  • Similar to commits:

    51d7d5205d33 ("powerpc: Add smp_mb() to arch_spin_is_locked()")
    d86b8da04dfa ("arm64: spinlock: serialise spin_unlock_wait against concurrent lockers")

    qspinlock suffers from the fact that the _Q_LOCKED_VAL store is
    unordered inside the ACQUIRE of the lock.

    And while this is not a problem for the regular mutual exclusive
    critical section usage of spinlocks, it breaks creative locking like:

    spin_lock(A) spin_lock(B)
    spin_unlock_wait(B) if (!spin_is_locked(A))
    do_something() do_something()

    In that both CPUs can end up running do_something at the same time,
    because our _Q_LOCKED_VAL store can drop past the spin_unlock_wait()
    spin_is_locked() loads (even on x86!!).

    To avoid making the normal case slower, add smp_mb()s to the less used
    spin_unlock_wait() / spin_is_locked() side of things to avoid this
    problem.

    Reported-and-tested-by: Davidlohr Bueso
    Reported-by: Giovanni Gherdovich
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: stable@vger.kernel.org # v4.2 and later
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • Pull cifs fixes from Steve French:
    "Two small cifs fixes, including one spnego upcall cifs security fix
    for stable"

    * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
    CIFS: Remove some obsolete comments
    cifs: Create dedicated keyring for spnego operations

    Linus Torvalds
     
  • During hugepage map/unmap, TSB and TLB flushes are currently
    issued at every PAGE_SIZE'd boundary which is unnecessary.
    We now issue the flush at REAL_HPAGE_SIZE boundaries only.

    Without this patch workloads which unmap a large hugepage
    backed VMA region get CPU lockups due to excessive TLB
    flush calls.

    Orabug: 22365539, 22643230, 22995196

    Signed-off-by: Nitin Gupta
    Signed-off-by: David S. Miller

    Nitin Gupta