18 Jan, 2016

5 commits


13 Jan, 2016

13 commits

  • Pull crypto update from Herbert Xu:
    "Algorithms:
    - Add RSA padding algorithm

    Drivers:
    - Add GCM mode support to atmel
    - Add atmel support for SAMA5D2 devices
    - Add cipher modes to talitos
    - Add rockchip driver for rk3288
    - Add qat support for C3XXX and C62X"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (103 commits)
    crypto: hifn_795x, picoxcell - use ablkcipher_request_cast
    crypto: qat - fix SKU definiftion for c3xxx dev
    crypto: qat - Fix random config build issue
    crypto: ccp - use to_pci_dev and to_platform_device
    crypto: qat - Rename dh895xcc mmp firmware
    crypto: 842 - remove WARN inside printk
    crypto: atmel-aes - add debug facilities to monitor register accesses.
    crypto: atmel-aes - add support to GCM mode
    crypto: atmel-aes - change the DMA threshold
    crypto: atmel-aes - fix the counter overflow in CTR mode
    crypto: atmel-aes - fix atmel-ctr-aes driver for RFC 3686
    crypto: atmel-aes - create sections to regroup functions by usage
    crypto: atmel-aes - fix typo and indentation
    crypto: atmel-aes - use SIZE_IN_WORDS() helper macro
    crypto: atmel-aes - improve performances of data transfer
    crypto: atmel-aes - fix atmel_aes_remove()
    crypto: atmel-aes - remove useless AES_FLAGS_DMA flag
    crypto: atmel-aes - reduce latency of DMA completion
    crypto: atmel-aes - remove unused 'err' member of struct atmel_aes_dev
    crypto: atmel-aes - rework crypto request completion
    ...

    Linus Torvalds
     
  • Pull configfs updates from Christoph Hellwig:
    "I'm assisting Joel as co-maintainer and patch monkey now, and you will
    see pull reuquests from me for a while.

    Besides the MAINTAINERS update there is just a single change, which
    adds support for binary attributes to configfs, which are very similar
    to the sysfs binary attributes. Thanks to Pantelis Antoniou!

    You will see another actually bigger set of configfs changes in the
    SCSI target pull from Nic - those were merged before this new tree
    even existed"

    * tag 'configfs-for-linus' of git://git.infradead.org/users/hch/configfs:
    configfs: add myself as co-maintainer, updated git tree
    configfs: implement binary attributes

    Linus Torvalds
     
  • Pull GFS2 updates from Bob Peterson:
    "Here is a list of patches we've accumulated for GFS2 for the current
    upstream merge window. Last window's set was short, but I warned that
    this one would be bigger, and so it is. We've got 19 patches:

    - A patch from Abhi Das to propagate the GFS2_DIF_SYSTEM bit so that
    newly added journals don't get flagged, deleted, and recreated by
    fsck.gfs2.

    - Two patches from Andreas Gruenbacher to improve GFS2 performance
    where extended attributes are involved.

    - A patch from Andy Price to fix a suspicious rcu dereference error.

    - Two patches from Ben Marzinski that rework how GFS2's NFS cookies
    are managed. This fixes readdir problems with nfs-over-gfs2.

    - A patch from Ben Marzinski that fixes a race in unmounting GFS2.

    - A set of four patches from me to move the resource group
    reservations inside the gfs2 inode to improve performance and fix a
    bug whereby get_write_access improperly prevented some operations
    like chown.

    - A patch from me to spinlock-protect the setting of system statfs
    file data. This was causing small discrepancies between df and du.

    - A patch from me to reintroduce a timeout while clearing glocks
    which was accidentally dropped some time ago.

    - A patch from me to wait for iopen glock dequeues in order to
    improve deleting of files that were unlinked from a different
    cluster node.

    - A patch from me to ensure metadata address spaces get truncated
    when an inode is evicted.

    - A patch from me to fix a bug in which a memory leak could occur in
    some error cases when inodes were trying to be created.

    - A patch to consistently use iopen glocks to transition from the
    unlinked state to the deleted state.

    - A patch to fix a glock reference count error when inode creation
    fails.

    - A patch from Junxiao Bi to fix an flock panic.

    - A patch from Markus Elfring that removes an unnecessary if"

    * tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
    gfs2: fix flock panic issue
    GFS2: Don't do glock put on when inode creation fails
    GFS2: Always use iopen glock for gl_deletes
    GFS2: Release iopen glock in gfs2_create_inode error cases
    GFS2: Truncate address space mapping when deleting an inode
    GFS2: Wait for iopen glock dequeues
    gfs2: clear journal live bit in gfs2_log_flush
    gfs2: change gfs2 readdir cookie
    gfs2: keep offset when splitting dir leaf blocks
    GFS2: Reintroduce a timeout in function gfs2_gl_hash_clear
    GFS2: Update master statfs buffer with sd_statfs_spin locked
    GFS2: Reduce size of incore inode
    GFS2: Make rgrp reservations part of the gfs2_inode structure
    GFS2: Extract quota data from reservations structure (revert 5407e24)
    gfs2: Extended attribute readahead optimization
    gfs2: Extended attribute readahead
    GFS2: Use rht_for_each_entry_rcu in glock_hash_walk
    GFS2: Delete an unnecessary check before the function call "iput"
    gfs2: Automatically set GFS2_DIF_SYSTEM flag on system files

    Linus Torvalds
     
  • Pull misc vfs updates from Al Viro:
    "All kinds of stuff. That probably should've been 5 or 6 separate
    branches, but by the time I'd realized how large and mixed that bag
    had become it had been too close to -final to play with rebasing.

    Some fs/namei.c cleanups there, memdup_user_nul() introduction and
    switching open-coded instances, burying long-dead code, whack-a-mole
    of various kinds, several new helpers for ->llseek(), assorted
    cleanups and fixes from various people, etc.

    One piece probably deserves special mention - Neil's
    lookup_one_len_unlocked(). Similar to lookup_one_len(), but gets
    called without ->i_mutex and tries to avoid ever taking it. That, of
    course, means that it's not useful for any directory modifications,
    but things like getting inode attributes in nfds readdirplus are fine
    with that. I really should've asked for moratorium on lookup-related
    changes this cycle, but since I hadn't done that early enough... I
    *am* asking for that for the coming cycle, though - I'm going to try
    and get conversion of i_mutex to rwsem with ->lookup() done under lock
    taken shared.

    There will be a patch closer to the end of the window, along the lines
    of the one Linus had posted last May - mechanical conversion of
    ->i_mutex accesses to inode_lock()/inode_unlock()/inode_trylock()/
    inode_is_locked()/inode_lock_nested(). To quote Linus back then:

    -----
    | This is an automated patch using
    |
    | sed 's/mutex_lock(&\(.*\)->i_mutex)/inode_lock(\1)/'
    | sed 's/mutex_unlock(&\(.*\)->i_mutex)/inode_unlock(\1)/'
    | sed 's/mutex_lock_nested(&\(.*\)->i_mutex,[ ]*I_MUTEX_\([A-Z0-9_]*\))/inode_lock_nested(\1, I_MUTEX_\2)/'
    | sed 's/mutex_is_locked(&\(.*\)->i_mutex)/inode_is_locked(\1)/'
    | sed 's/mutex_trylock(&\(.*\)->i_mutex)/inode_trylock(\1)/'
    |
    | with a very few manual fixups
    -----

    I'm going to send that once the ->i_mutex-affecting stuff in -next
    gets mostly merged (or when Linus says he's about to stop taking
    merges)"

    * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (63 commits)
    nfsd: don't hold i_mutex over userspace upcalls
    fs:affs:Replace time_t with time64_t
    fs/9p: use fscache mutex rather than spinlock
    proc: add a reschedule point in proc_readfd_common()
    logfs: constify logfs_block_ops structures
    fcntl: allow to set O_DIRECT flag on pipe
    fs: __generic_file_splice_read retry lookup on AOP_TRUNCATED_PAGE
    fs: xattr: Use kvfree()
    [s390] page_to_phys() always returns a multiple of PAGE_SIZE
    nbd: use ->compat_ioctl()
    fs: use block_device name vsprintf helper
    lib/vsprintf: add %*pg format specifier
    fs: use gendisk->disk_name where possible
    poll: plug an unused argument to do_poll
    amdkfd: don't open-code memdup_user()
    cdrom: don't open-code memdup_user()
    rsxx: don't open-code memdup_user()
    mtip32xx: don't open-code memdup_user()
    [um] mconsole: don't open-code memdup_user_nul()
    [um] hostaudio: don't open-code memdup_user()
    ...

    Linus Torvalds
     
  • Pull iov_iter infrastructure updates from Al Viro:
    "A couple of iov_iter updates"

    * 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    iov_iter: export import_single_range()
    iov_iter: constify {csum_and_,}copy_to_iter()

    Linus Torvalds
     
  • Pull vfs copy_file_range updates from Al Viro:
    "Several series around copy_file_range/CLONE"

    * 'work.copy_file_range' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    btrfs: use new dedupe data function pointer
    vfs: hoist the btrfs deduplication ioctl to the vfs
    vfs: wire up compat ioctl for CLONE/CLONE_RANGE
    cifs: avoid unused variable and label
    nfsd: implement the NFSv4.2 CLONE operation
    nfsd: Pass filehandle to nfs4_preprocess_stateid_op()
    vfs: pull btrfs clone API to vfs layer
    locks: new locks_mandatory_area calling convention
    vfs: Add vfs_copy_file_range() support for pagecache copies
    btrfs: add .copy_file_range file operation
    x86: add sys_copy_file_range to syscall tables
    vfs: add copy_file_range syscall and vfs helper

    Linus Torvalds
     
  • Pull file locking updates from Jeff Layton:
    "File locking related changes for v4.5 (pile #1)

    Highlights:
    - new Kconfig option to allow disabling mandatory locking (which is
    racy anyway)
    - new tracepoints for setlk and close codepaths
    - fix for a long-standing bug in code that handles races between
    setting a POSIX lock and close()"

    * tag 'locks-v4.5-1' of git://git.samba.org/jlayton/linux:
    locks: rename __posix_lock_file to posix_lock_inode
    locks: prink more detail when there are leaked locks
    locks: pass inode pointer to locks_free_lock_context
    locks: sprinkle some tracepoints around the file locking code
    locks: don't check for race with close when setting OFD lock
    locks: fix unlock when fcntl_setlk races with a close
    fs: make locks.c explicitly non-modular
    locks: use list_first_entry_or_null()
    locks: Don't allow mounts in user namespaces to enable mandatory locking
    locks: Allow disabling mandatory locking at compile time

    Linus Torvalds
     
  • Pull KVM updates from Paolo Bonzini:
    "PPC changes will come next week.

    - s390: Support for runtime instrumentation within guests, support of
    248 VCPUs.

    - ARM: rewrite of the arm64 world switch in C, support for 16-bit VM
    identifiers. Performance counter virtualization missed the boat.

    - x86: Support for more Hyper-V features (synthetic interrupt
    controller), MMU cleanups"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (115 commits)
    kvm: x86: Fix vmwrite to SECONDARY_VM_EXEC_CONTROL
    kvm/x86: Hyper-V SynIC timers tracepoints
    kvm/x86: Hyper-V SynIC tracepoints
    kvm/x86: Update SynIC timers on guest entry only
    kvm/x86: Skip SynIC vector check for QEMU side
    kvm/x86: Hyper-V fix SynIC timer disabling condition
    kvm/x86: Reorg stimer_expiration() to better control timer restart
    kvm/x86: Hyper-V unify stimer_start() and stimer_restart()
    kvm/x86: Drop stimer_stop() function
    kvm/x86: Hyper-V timers fix incorrect logical operation
    KVM: move architecture-dependent requests to arch/
    KVM: renumber vcpu->request bits
    KVM: document which architecture uses each request bit
    KVM: Remove unused KVM_REQ_KICK to save a bit in vcpu->requests
    kvm: x86: Check kvm_write_guest return value in kvm_write_wall_clock
    KVM: s390: implement the RI support of guest
    kvm/s390: drop unpaired smp_mb
    kvm: x86: fix comment about {mmu,nested_mmu}.gva_to_gpa
    KVM: x86: MMU: Use clear_page() instead of init_shadow_page_table()
    arm/arm64: KVM: Detect vGIC presence at runtime
    ...

    Linus Torvalds
     
  • Pull xen updates from David Vrabel:
    "Xen features and fixes for 4.5-rc0:

    - Stolen ticks and PV wallclock support for arm/arm64

    - Add grant copy ioctl to gntdev device"

    * tag 'for-linus-4.5-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen/gntdev: add ioctl for grant copy
    x86/xen: don't reset vcpu_info on a cancelled suspend
    xen/gntdev: constify mmu_notifier_ops structures
    xen/grant-table: constify gnttab_ops structure
    xen/time: use READ_ONCE
    xen/x86: convert remaining timespec to timespec64 in xen_pvclock_gtod_notify
    xen/x86: support XENPF_settime64
    xen/arm: set the system time in Xen via the XENPF_settime64 hypercall
    xen/arm: introduce xen_read_wallclock
    arm: extend pvclock_wall_clock with sec_hi
    xen: introduce XENPF_settime64
    xen/arm: introduce HYPERVISOR_platform_op on arm and arm64
    xen: rename dom0_op to platform_op
    xen/arm: account for stolen ticks
    arm64: introduce CONFIG_PARAVIRT, PARAVIRT_TIME_ACCOUNTING and pv_time_ops
    arm: introduce CONFIG_PARAVIRT, PARAVIRT_TIME_ACCOUNTING and pv_time_ops
    missing include asm/paravirt.h in cputime.c
    xen: move xen_setup_runstate_info and get_runstate_snapshot to drivers/xen/time.c

    Linus Torvalds
     
  • Pull component updates from Russell King:
    "Updates for the component helper merged last year.

    This update removes the old add_components method of detecting and
    looking up the components associated with a master device. Last time
    I checked during the 4.4-rc cycle, there were no users of the old
    interfaces, as has been the case for some time now. Breakage due to
    conflicting development is possible, in which case this pull will have
    to be reverted - however, these changes have been in linux-next since
    Dec 7th without any problems reported.

    Removal of that then allows us to change the way we track components
    internally, allowing us to release data that has been used for
    matching at the appropriate time, thereby allowing any resource leaks
    caused by that missing functionality to be resolved"

    * 'component' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
    component: add support for releasing match data
    component: track components via array rather than list
    component: move check for unbound master into try_to_bring_up_masters()
    component: remove old add_components method

    Linus Torvalds
     
  • Pull ARM updates from Russell King:

    - UEFI boot and runtime services support for ARM from Ard Biesheuvel
    and Roy Franz.

    - DT compatibility with old atags booting protocol for Nokia N900
    devices from Ivaylo Dimitrov.

    - PSCI firmware interface using new arm-smc calling convention from
    Jens Wiklander.

    - Runtime patching for udiv/sdiv instructions for ARMv7 CPUs that
    support these instructions from Nicolas Pitre.

    - L2x0 cache updates from Dirk B and Linus Walleij.

    - Randconfig fixes from Arnd Bergmann.

    - ARMv7M (nommu) updates from Ezequiel Garcia

    * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (34 commits)
    ARM: 8481/2: drivers: psci: replace psci firmware calls
    ARM: 8480/2: arm64: add implementation for arm-smccc
    ARM: 8479/2: add implementation for arm-smccc
    ARM: 8478/2: arm/arm64: add arm-smccc
    ARM: 8494/1: mm: Enable PXN when running non-LPAE kernel on LPAE processor
    ARM: 8496/1: OMAP: RX51: save ATAGS data in the early boot stage
    ARM: 8495/1: ATAGS: move save_atags() to arch/arm/include/asm/setup.h
    ARM: 8452/3: PJ4: make coprocessor access sequences buildable in Thumb2 mode
    ARM: 8482/1: l2x0: make it possible to disable outer sync from DT
    ARM: 8488/1: Make IPI_CPU_BACKTRACE a "non-secure" SGI
    ARM: 8487/1: Remove IPI_CALL_FUNC_SINGLE
    ARM: 8485/1: cpuidle: remove cpu parameter from the cpuidle_ops suspend hook
    ARM: 8484/1: Documentation: l2c2x0: Mention separate controllers explicitly
    ARM: 8483/1: Documentation: l2c: Rename l2cc to l2c2x0
    ARM: 8477/1: runtime patch udiv/sdiv instructions into __aeabi_{u}idiv()
    ARM: 8476/1: VDSO: use PTR_ERR_OR_ZERO for vma check
    ARM: 8453/2: proc-v7.S: don't locate temporary stack space in .text section
    ARM: add UEFI stub support
    ARM: wire up UEFI init and runtime support
    ARM: only consider memblocks with NOMAP cleared for linear mapping
    ...

    Linus Torvalds
     
  • Pull arm[64] perf updates from Will Deacon:
    "In the past, I have funnelled perf updates through the respective
    architecture trees, but now that the arm/arm64 perf driver has been
    largely consolidated under drivers/perf/, it makes more sense to send
    a separate pull, particularly as I'm listed as maintainer for all the
    files involved. I offered the branch to arm-soc, but Arnd suggested
    that I just send it to you directly.

    So, here is the arm/arm64 perf queue for 4.5. The main features are
    described below, but the most useful change is from Drew, which
    advertises our architected event mapping in sysfs so that the perf
    tool is a lot more user friendly and no longer requires the use of
    magic hex constants for profiling common events.

    - Support for the CPU PMU in Cortex-A72

    - Add sysfs entries to describe the architected events and their
    mappings for PMUv{1-3}"

    * tag 'arm64-perf' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: perf: add support for Cortex-A72
    arm64: perf: add format entry to describe event -> config mapping
    ARM: perf: add format entry to describe event -> config mapping
    arm64: kernel: enforce pmuserenr_el0 initialization and restore
    arm64: perf: Correct Cortex-A53/A57 compatible values
    arm64: perf: Add event descriptions
    arm64: perf: Convert event enums to #defines
    arm: perf: Add event descriptions
    arm: perf: Convert event enums to #defines
    drivers/perf: kill armpmu_register

    Linus Torvalds
     
  • Pull arm64 updates from Will Deacon:
    "Here is the core arm64 queue for 4.5. As you might expect, the
    Christmas break resulted in a number of patches not making the final
    cut, so 4.6 is likely to be larger than usual. There's still some
    useful stuff here, however, and it's detailed below.

    The EFI changes have been Reviewed-by Matt and the memblock change got
    an "OK" from akpm.

    Summary:

    - Support for a separate IRQ stack, although we haven't reduced the
    size of our thread stack just yet since we don't have enough data
    to determine a safe value

    - Refactoring of our EFI initialisation and runtime code into
    drivers/firmware/efi/ so that it can be reused by arch/arm/.

    - Ftrace improvements when unwinding in the function graph tracer

    - Document our silicon errata handling process

    - Cache flushing optimisation when mapping executable pages

    - Support for hugetlb mappings using the contiguous hint in the pte"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (45 commits)
    arm64: head.S: use memset to clear BSS
    efi: stub: define DISABLE_BRANCH_PROFILING for all architectures
    arm64: entry: remove pointless SPSR mode check
    arm64: mm: move pgd_cache initialisation to pgtable_cache_init
    arm64: module: avoid undefined shift behavior in reloc_data()
    arm64: module: fix relocation of movz instruction with negative immediate
    arm64: traps: address fallout from printk -> pr_* conversion
    arm64: ftrace: fix a stack tracer's output under function graph tracer
    arm64: pass a task parameter to unwind_frame()
    arm64: ftrace: modify a stack frame in a safe way
    arm64: remove irq_count and do_softirq_own_stack()
    arm64: hugetlb: add support for PTE contiguous bit
    arm64: Use PoU cache instr for I/D coherency
    arm64: Defer dcache flush in __cpu_copy_user_page
    arm64: reduce stack use in irq_handler
    arm64: mm: ensure that the zero page is visible to the page table walker
    arm64: Documentation: add list of software workarounds for errata
    arm64: mm: place __cpu_setup in .text
    arm64: cmpxchg: Don't incldue linux/mmdebug.h
    arm64: mm: fold alternatives into .init
    ...

    Linus Torvalds
     

12 Jan, 2016

22 commits

  • Russell King
     
  • Pull media updates from Mauro Carvalho Chehab:
    "The part of patches for Kernel 4.5. There's nothing really big here:

    - driver-specific headers for media devices were moved to separate
    directories, in order to make clear what headers belong to the core
    kABI and require documentation

    - Platform data for media drivers were moved from include/media to
    include/linux/platform_data/media

    - add a driver for cs3308 8-channel volume control, used on some
    high-end capture boards

    - lirc.h kAPI header were added at include/uapi/linux

    - Driver cleanups, new board additions and improvements"

    * tag 'media/v4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (204 commits)
    [media] rc: sunxi-cir: Initialize the spinlock properly
    [media] rtl2832: do not filter out slave TS null packets
    [media] rtl2832: print reg number on error case
    [media] rtl28xxu: return demod reg page from driver cache
    [media] coda: enable MPEG-2 ES decoding
    [media] coda: don't start streaming without queued buffers
    [media] coda: hook up vidioc_prepare_buf
    [media] coda: relax coda_jpeg_check_buffer for trailing bytes
    [media] coda: make to_coda_video_device static
    [media] s5p-mfc: remove volatile attribute from MFC register addresses
    [media] s5p-mfc: merge together s5p_mfc_hw_call and s5p_mfc_hw_call_void
    [media] s5p-mfc: use spinlock to protect MFC context
    [media] s5p-mfc: remove unnecessary callbacks
    [media] s5p-mfc: make queue cleanup code common
    [media] s5p-mfc: use one implementation of s5p_mfc_get_new_ctx
    [media] s5p-mfc: constify s5p_mfc_codec_ops structures
    [media] au8522: Avoid memory leak for device config data
    [media] ir-lirc-codec.c: don't leak lirc->drv-rbuf
    [media] uvcvideo: small cleanup in uvc_video_clock_update()
    [media] uvcvideo: Fix reading the current exposure value of UVC
    ...

    Linus Torvalds
     
  • Pull LED subsystem updates from Jacek Anaszewski:
    "Besides regular driver updates, we introduce a portion of LED core
    improvements, that allow to avoid the need for using work queues in
    the LED class drivers, that set brightness in a blocking way.

    Affected LED class drivers are being optimized accordingly.

    - LED core improvements:
    - use EXPORT_SYMBOL_GPL consistently,
    - add two new LED_BLINK_ flags,
    - rename brightness_set_sync op to brightness_set_blocking,
    - add led_set_brightness_nosleep{nopm} functions,
    - use set_brightness_work for the blocking op,
    - drivers shouldn't enforce SYNC/ASYNC brightness setting,
    - turn off the LED and wait for completion on unregistering LED
    class device,
    - add managed version of led_trigger_register,
    - add description of brightness setting API to the LED class doc.

    - Remove work queues from drivers: leds-tlc591xx, leds-88pm860x, leds-adp5520,
    leds-bd2802, leds-blinkm, leds-lm3533, leds-lm3642, leds-pca9532,
    leds-lp3944, leds-lp55xx, leds-lp8788, leds-lp8860, leds-pca955x,
    leds-pca963x, leds-wm831x, leds-da903x, leds-da9052, leds-dac124d085,
    leds-lt3593, leds-max8997, leds-mc13783, leds-regulator, leds-wm8350,
    leds-max77693, leds-aat1290, leds-ktd2692, leds-gpio, leds-pwm,
    leds-lm355x, leds-ns2.

    - Replace brightness_set op with a new brightness_set_blocking op to
    make the drivers compatible with led triggers: leds-ipaq-micro,
    leds-powernv.

    - Add missing of_node_put: leds-ktd2692, leds-aat1290, leds-max77693.

    - Make the driver explicitly non-modular: ledtrig-cpu,
    ledtrig-ide-disk, leds-syscon.

    - Improvements to leds-bcm6328:
    - reuse bcm6328_led_set() instead of copying its functionality,
    - swap LED ON and OFF definitions,
    - improve blink support,
    - simplify duplicated unlock in bcm6328_blink_set,
    - add little endian support,
    - remove unneded lock when checking initial LED status,
    - add HAS_IOMEM dependency,
    - code cleaning.

    - Improvements to leds-bcm6358:
    - use bcm6358_led_set() in order to get rid of the lock,
    - merge bcm6358_led_mode and bcm6358_led_set,
    - add little endian support,
    - remove unneded lock when checking initial LED status,
    - add HAS_IOMEM dependency,
    - remove unneeded busy status check.

    - Call led_pwm_set() in leds-pwm to enforce default LED_OFF.

    - Fix duration to be msec instead of jiffies: ledtrig-transient.

    - Removing NULL check: leds-powernv.

    - Use platform_register/unregister_drivers(): leds-sunfire.

    - Fix module license specification: ledtrig-oneshot.

    - Fix driver description and make license match the header: leds-pwm.

    - Remove checking for state < 1 in flash_strobe_store():
    led-class-flash.

    - Use led_set_brightness_sync for torch brightness:
    v4l2-flash-led-class"

    * tag 'leds-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds: (68 commits)
    leds: add HAS_IOMEM dependency to LEDS_BCM6328/LEDS_BCM6358
    leds: core: add managed version of led_trigger_register
    leds: bcm6358: remove unneeded busy status check
    leds: bcm6328: improve blink support
    leds: bcm6358: merge bcm6358_led_mode and bcm6358_led_set
    leds: bcm6328: simplify duplicated unlock in bcm6328_blink_set
    leds: bcm6358: add little endian support
    leds: bcm6328: add little endian support
    leds: bcm6358: remove unneded lock when checking initial LED status
    leds: bcm6358: Use bcm6358_led_set() in order to get rid of the lock
    leds: bcm6328: remove unneded lock when checking initial LED
    leds: bcm6328: code cleaning
    leds: syscon: Make the driver explicitly non-modular
    leds: ledtrig-ide-disk: Make the driver explicitly non-modular
    leds: ledtrig-cpu: Make the driver explicitly non-modular
    leds: sunfire: Use platform_register/unregister_drivers()
    leds: max77693: Add missing of_node_put
    leds: aat1290: Add missing of_node_put
    leds: powernv: Implement brightness_set_blocking op
    leds: ipaq-micro: Implement brightness_set_blocking op
    ...

    Linus Torvalds
     
  • Pull EDAC updates from Borislav Petkov:

    - hide EDAC workqueue from users (Borislav Petkov)

    - edac_subsys init/teardown cleanup (Borislav Petkov)

    - make mpc85xx-pci-edac a platform device (Scott Wood)

    - sb_edac KNL gen2 support (Jim Snow)

    - other small cleanups all over the place

    * tag 'edac_for_4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
    EDAC, i5100: Use to_delayed_work()
    MAINTAINERS: Fix EDAC repo URLs format
    EDAC, sb_edac: Set fixed DIMM width on Xeon Knights Landing
    EDAC: Rework workqueue handling
    EDAC: Make edac_device workqueue setup/teardown functions static
    EDAC: Remove edac_get_sysfs_subsys() error handling
    EDAC: Unexport and make edac_subsys static
    EDAC: Rip out the edac_subsys reference counting
    EDAC: Robustify workqueues destruction
    EDAC, mc_sysfs: Fix freeing bus' name
    EDAC, mpc85xx: Make mpc85xx-pci-edac a platform device
    EDAC, sb_edac: Add Knights Landing (Xeon Phi gen 2) support
    EDAC, sb_edac: Add support for duplicate device IDs
    EDAC, sb_edac: Virtualize several hard-coded functions
    EDAC, mv64x60: Use platform_register/unregister_drivers()
    EDAC, mpc85xx: Use platform_register/unregister_drivers()
    EDAC: Add DDR4 flag
    EDAC: Remove references to bluesmoke.sourceforge.net
    EDAC, pci: Remove old disabled code

    Linus Torvalds
     
  • Pull regmap updates from Mark Brown:
    "There's no real overall theme to the regmap changes for this release,
    it's a collection of individual features. The main bits are:

    - Support for 64 bit registers, mainly for MMIO use, from Xiubo Li.

    - Support for trigger type configuration for regmap-irq from Laxman
    Dewangan.

    - Use native physical I/O for MMIO register maps to avoid confusion
    with the conversions that readl() and writel() do to little endian
    on big endian systems (with some DT updates to fix some workarounds
    people were doing), code from Simon Arlott.

    - Use a binary search rather than iteraton to improve the runtime
    performance of the rbtree code from Nikesh Oswal"

    * tag 'regmap-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
    regmap: debugfs: Use seq_file for the access map
    regmap: irq: add support for configuration of trigger type
    regmap: use IS_ALIGNED instead of % to improve the performance
    regmap: cache: Move the num_reg_defaults check as early as possible
    regmap: cache: Add warning info for the cache check
    regmap: missing case statement
    regmap: shift wrapping bugs in 64 bit code
    regmap: cache: Add 64-bit mode support
    regmap: cache: To suppress the noise of checkpatch
    regmap: fix the warning about unused variable
    regmap: add 64-bit mode support
    regmap: mmio: Add regmap_mmio_get_min_stride
    regmap: mmio: remove the useless code
    regmap: Fix leftover from struct reg_default to struct reg_sequence change
    regmap: replace kmalloc with kmalloc_array
    regmap: replace kzalloc with kcalloc
    regmap: rbtree: When adding a reg do a bsearch for target node
    regmap-mmio: Use native endianness for read/write

    Linus Torvalds
     
  • Pull pin control updates from Linus Walleij:
    "This is the bulk of pin control patches for the v4.5 series.

    Notably I have a patch to driver core from Stephen Boyd in the pull
    request, this has been ACKed by Greg so it should be OK. The internal
    API needed some tweaking to allow modular Qualcomm pin controllers.

    There is a bit of development history in here but it should all add up
    nicely and has boiled in linux-next. For example I merged in v4.4-rc5
    to get rid of some nasty merge conflicts.

    Summary:

    - New drivers:
    - PXA2xx pin controller support
    - Broadcom NSP pin controller support

    - New subdrivers:
    - Samsung EXYNOS5410 support
    - Qualcomm MSM8996 support
    - Qualcomm PM8994 support
    - Qualcomm PM8994 MPP support
    - Allwinner sunxi H3 support
    - Allwinner sunxi A80 support
    - Rockchip RK3228 support

    - Rename the Cygnus pinctrl driver to "iproc" as it is more generic
    than was originally thought.

    - A bunch of Lantiq/Xway updates especially from the OpenWRT people.

    - Several refactorings for the Super-H SH PFC pin controllers.
    Adding SCIF_CLK support.

    - Several fixes to the Atlas 7 driver.

    - Various fixes all over the place"

    * tag 'pinctrl-v4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (91 commits)
    pinctrl: mediatek: Modify pinctrl bindings for mt2701
    Revert "pinctrl: qcom: make PMIC drivers bool"
    pinctrl: qcom: Use platform_irq_count() instead of of_irq_count()
    driver-core: platform: Add platform_irq_count()
    pinctrl: lantiq: 2 pins have the wrong mux list
    pinctrl: qcom: make PMIC drivers bool
    pinctrl: nsp-gpio: forever loop in nsp_gpio_get_strength()
    pinctrl: mediatek: convert to arch_initcall
    pinctrl: bcm2835: Fix memory leak in error path
    pinctrl: mediatek: add missing of_node_put
    pinctrl: rockchip: add missing of_node_put
    pinctrl: sh-pfc: add missing of_node_put
    pinctrl: sirf: add missing of_node_put
    pinctrl-tegra: add missing of_node_put
    pinctrl: sunxi: Add A80 special pin controller
    pinctrl: bcm/cygnys/iproc: fixup rebase issue
    pinctrl: fixup problematic flag
    MAINTAINERS: Add co-maintainer for Renesas Pin Controllers
    pinctrl: sh-pfc: r8a7791: add EtherAVB pin groups
    pinctrl: sh-pfc: r8a7795: Add SATA support
    ...

    Linus Torvalds
     
  • Pull MMC updates from Ulf Hansson:
    "MMC core:
    - Optimize boot time by detecting cards simultaneously
    - Make runtime resume default behavior for MMC/SD
    - Enable MMC/SD/SDIO devices to suspend/resume asynchronously
    - Allow more than 8 partitions per card
    - Introduce MMC_CAP2_NO_SDIO to prevent unsupported SDIO commands
    - Support the standard DT wakeup-source property
    - Fix driver strength switching for HS200 and HS400
    - Fix switch command timeout
    - Fix invalid vdd in voltage switch power cycle for SDIO

    MMC host:
    - sdhci: Restore behavior when setting VDD via external regulator
    - sdhci: A couple of changes/fixes related to the dma support
    - sdhci-tegra: Add Tegra210 support
    - sdhci-tegra: Support for UHS-I cards including tuning support
    - sdhci-of-at91: Add PM support
    - sh_mmcif: Rework dma channel handling
    - mvsdio: Delete platform data code path"

    * tag 'mmc-v4.5' of git://git.linaro.org/people/ulf.hansson/mmc: (52 commits)
    mmc: dw_mmc: remove the unused quirks
    mmc: sdhci-pci: use to_pci_dev()
    mmc: cb710: use to_platform_device()
    mmc: tegra: use correct accessor for misc ctrl register
    mmc: tegra: enable UHS-I modes
    mmc: tegra: implement UHS tuning
    mmc: tegra: disable SPI_MODE_CLKEN
    mmc: tegra: implement module external clock change
    mmc: sdhci: restore behavior when setting VDD via external regulator
    mmc: It is not an error for the card to be removed while suspended
    mmc: block: Allow more than 8 partitions per card
    mmc: core: Optimize boot time by detecting cards simultaneously
    mmc: dw_mmc: use resource_size_t to store physical address
    mmc: core: fix __mmc_switch timeout caused by preempt
    mmc: usdhi6rol0: handle NULL data in timeout
    mmc: of_mmc_spi: Add IRQF_ONESHOT to interrupt flags
    mmc: mediatek: change some dev_err to dev_dbg
    mmc: enable MMC/SD/SDIO device to suspend/resume asynchronously
    mmc: sdhci: Fix sdhci_runtime_pm_bus_on/off()
    mmc: sdhci: 64-bit DMA actually has 4-byte alignment
    ...

    Linus Torvalds
     
  • Pull libata updates from Tejun Heo:
    "Mostly low level driver specific changes.

    Two changes are somewhat noteworthy. First, Dan's patchset to support
    per-port msix interrupt handling for ahci, which was tried last cycle
    but had to be backed out due to a couple issues, is back and seems to
    be working fine. Second, libata exception handling now uses
    usleep_range() instead of msleep() for sleeps < 20ms which can make
    things snappier in some corner cases"

    * 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
    libata: skip debounce delay on link resume
    ata: ahci_brcmstb: disable DIPM support
    ata: ahci_brcmstb: enable support for ALPM
    drivers: libata-core: Use usleep_range() instead of msleep() for short sleeps ( interrupt handling
    ahci: per-port msix support

    Linus Torvalds
     
  • Pull percpu updates from Tejun Heo:
    "Two trivial percpu patches for v4.5-rc1"

    * 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
    percpu: remove PERCPU_ENOUGH_ROOM which is stale definition
    percpu: Remove unneeded return from void function

    Linus Torvalds
     
  • Pull workqueue update from Tejun Heo:
    "Workqueue changes for v4.5. One cleanup patch and three to improve
    the debuggability.

    Workqueue now has a stall detector which dumps workqueue state if any
    worker pool hasn't made forward progress over a certain amount of time
    (30s by default) and also triggers a warning if a workqueue which can
    be used in memory reclaim path tries to wait on something which can't
    be.

    These should make workqueue hangs a lot easier to debug."

    * 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    workqueue: simplify the apply_workqueue_attrs_locked()
    workqueue: implement lockup detector
    watchdog: introduce touch_softlockup_watchdog_sched()
    workqueue: warn if memory reclaim tries to flush !WQ_MEM_RECLAIM workqueue

    Linus Torvalds
     
  • Pull irq updates from Thomas Gleixner:
    "The irq department provides:

    - Support for MSI to wire bridges and a first user of it

    - More ACPI support for ARM/GIC

    - A new TS-4800 interrupt controller driver

    - RCU based free of interrupt descriptors to support the upcoming
    Intel VMD technology without introducing a locking nightmare

    - The usual pile of fixes and updates to drivers and core code"

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (41 commits)
    irqchip/omap-intc: Add support for spurious irq handling
    irqchip/zevio: Use irq_data_get_chip_type() helper
    irqchip/omap-intc: Remove duplicate setup for IRQ chip type handler
    irqchip/ts4800: Add TS-4800 interrupt controller
    irqchip/ts4800: Add documentation for TS-4800 interrupt controller
    irq/platform-MSI: Increase the maximum MSIs the MSI framework can support
    irqchip/gicv2m: Miscellaneous fixes for v2m resources and SPI ranges
    irqchip/bcm2836: Make code more readable
    irqchip/bcm2836: Tolerate IRQs while no flag is set in ISR
    irqchip/bcm2836: Add SMP support for the 2836
    irqchip/bcm2836: Fix initialization of the LOCAL_IRQ_CNT timers
    irqchip/gic-v2m: acpi: Introducing GICv2m ACPI support
    irqchip/gic-v2m: Refactor to prepare for ACPI support
    irqdomain: Introduce is_fwnode_irqchip helper
    acpi: pci: Setup MSI domain for ACPI based pci devices
    genirq/msi: Export functions to allow MSI domains in modules
    irqchip/mbigen: Implement the mbigen irq chip operation functions
    irqchip/mbigen: Create irq domain for each mbigen device
    irqchip/mgigen: Add platform device driver for mbigen device
    dt-bindings: Documents the mbigen bindings
    ...

    Linus Torvalds
     
  • …t.kernel.org/pub/scm/linux/kernel/git/tip/tip

    Pull timer updates - and a leftover fix - from Thomas Gleixner:
    "A rather large (commit wise) update from the timer side:

    - A bulk update to make compile tests work in the clocksource drivers

    - An overhaul of the h8300 timers

    - Some more Y2038 work

    - A few overflow prevention checks in the timekeeping/ntp code

    - The usual pile of fixes and improvements to the various
    clocksource/clockevent drivers and core code"

    Also:
    "A single fix for the posix-clock poll code which did not make it into
    4.4"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (84 commits)
    clocksource/drivers/acpi_pm: Convert to pr_* macros
    clocksource: Make clocksource validation work for all clocksources
    timekeeping: Cap adjustments so they don't exceed the maxadj value
    ntp: Fix second_overflow's input parameter type to be 64bits
    ntp: Change time_reftime to time64_t and utilize 64bit __ktime_get_real_seconds
    timekeeping: Provide internal function __ktime_get_real_seconds
    clocksource/drivers/h8300: Use ioread / iowrite
    clocksource/drivers/h8300: Initializer cleanup.
    clocksource/drivers/h8300: Simplify delta handling
    clocksource/drivers/h8300: Fix timer not overflow case
    clocksource/drivers/h8300: Change to overflow interrupt
    clocksource/drivers/lpc32: Correct pr_err() output format
    clocksource/drivers/arm_global_timer: Fix suspend resume
    clocksource/drivers/pistachio: Fix wrong calculated clocksource read value
    clockevents/drivers/arm_global_timer: Use writel_relaxed in gt_compare_set
    clocksource/drivers/dw_apb_timer: Inline apbt_readl and apbt_writel
    clocksource/drivers/dw_apb_timer: Use {readl|writel}_relaxed in critical path
    clocksource/drivers/dw_apb_timer: Fix apbt_readl return types
    clocksource/drivers/tango-xtal: Replace code by clocksource_mmio_init
    clocksource/drivers/h8300: Increase the compilation test coverage
    ...

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    posix-clock: Fix return code on the poll method's error path

    Linus Torvalds
     
  • Pull x86 mm updates from Ingo Molnar:
    "The main changes in this cycle were:

    - make the debugfs 'kernel_page_tables' file read-only, as it only
    has read ops. (Borislav Petkov)

    - micro-optimize clflush_cache_range() (Chris Wilson)

    - swiotlb enhancements, which fixes certain KVM emulated devices
    (Igor Mammedov)

    - fix an LDT related debug message (Jan Beulich)

    - modularize CONFIG_X86_PTDUMP (Kees Cook)

    - tone down an overly alarming warning (Laura Abbott)

    - Mark variable __initdata (Rasmus Villemoes)

    - PAT additions (Toshi Kani)"

    * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mm: Micro-optimise clflush_cache_range()
    x86/mm/pat: Change free_memtype() to support shrinking case
    x86/mm/pat: Add untrack_pfn_moved for mremap
    x86/mm: Drop WARN from multi-BAR check
    x86/LDT: Print the real LDT base address
    x86/mm/64: Enable SWIOTLB if system has SRAT memory regions above MAX_DMA32_PFN
    x86/mm: Introduce max_possible_pfn
    x86/mm/ptdump: Make (debugfs)/kernel_page_tables read-only
    x86/mm/mtrr: Mark the 'range_new' static variable in mtrr_calc_range_state() as __initdata
    x86/mm: Turn CONFIG_X86_PTDUMP into a module

    Linus Torvalds
     
  • Pull x86 asm updates from Ingo Molnar:
    "The main changes in this cycle were:

    - vDSO and asm entry improvements (Andy Lutomirski)

    - Xen paravirt entry enhancements (Boris Ostrovsky)

    - asm entry labels enhancement (Borislav Petkov)

    - and other misc changes (Thomas Gleixner, me)"

    * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/vsdo: Fix build on PARAVIRT_CLOCK=y, KVM_GUEST=n
    Revert "x86/kvm: On KVM re-enable (e.g. after suspend), update clocks"
    x86/entry/64_compat: Make labels local
    x86/platform/uv: Include clocksource.h for clocksource_touch_watchdog()
    x86/vdso: Enable vdso pvclock access on all vdso variants
    x86/vdso: Remove pvclock fixmap machinery
    x86/vdso: Get pvclock data from the vvar VMA instead of the fixmap
    x86, vdso, pvclock: Simplify and speed up the vdso pvclock reader
    x86/kvm: On KVM re-enable (e.g. after suspend), update clocks
    x86/entry/64: Bypass enter_from_user_mode on non-context-tracking boots
    x86/asm: Add asm macros for static keys/jump labels
    x86/asm: Error out if asm/jump_label.h is included inappropriately
    context_tracking: Switch to new static_branch API
    x86/entry, x86/paravirt: Remove the unused usergs_sysret32 PV op
    x86/paravirt: Remove the unused irq_enable_sysexit pv op
    x86/xen: Avoid fast syscall path for Xen PV guests

    Linus Torvalds
     
  • Pull x86 apic updates from Ingo Molnar:
    "The main changes in this cycle were:

    - introduce optimized single IPI sending methods on modern APICs
    (Linus Torvalds, Thomas Gleixner)

    - kexec/crash APIC handling fixes and enhancements (Hidehiro Kawai)

    - extend lapic vector saving/restoring to the CMCI (MCE) vector as
    well (Juergen Gross)

    - various fixes and enhancements (Jake Oshins, Len Brown)"

    * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
    x86/irq: Export functions to allow MSI domains in modules
    Documentation: Document kernel.panic_on_io_nmi sysctl
    x86/nmi: Save regs in crash dump on external NMI
    x86/apic: Introduce apic_extnmi command line parameter
    kexec: Fix race between panic() and crash_kexec()
    panic, x86: Allow CPUs to save registers even if looping in NMI context
    panic, x86: Fix re-entrance problem due to panic on NMI
    x86/apic: Fix the saving and restoring of lapic vectors during suspend/resume
    x86/smpboot: Re-enable init_udelay=0 by default on modern CPUs
    x86/smp: Remove single IPI wrapper
    x86/apic: Use default send single IPI wrapper
    x86/apic: Provide default send single IPI wrapper
    x86/apic: Implement single IPI for apic_noop
    x86/apic: Wire up single IPI for apic_numachip
    x86/apic: Wire up single IPI for x2apic_uv
    x86/apic: Implement single IPI for x2apic_phys
    x86/apic: Wire up single IPI for bigsmp_apic
    x86/apic: Remove pointless indirections from bigsmp_apic
    x86/apic: Wire up single IPI for apic_physflat
    x86/apic: Remove pointless indirections from apic_physflat
    ...

    Linus Torvalds
     
  • Pull scheduler updates from Ingo Molnar:
    "The main changes in this cycle were:

    - tickless load average calculation enhancements (Byungchul Park)

    - vtime handling enhancements (Frederic Weisbecker)

    - scalability improvement via properly aligning a key structure field
    (Jiri Olsa)

    - various stop_machine() fixes (Oleg Nesterov)

    - sched/numa enhancement (Rik van Riel)

    - various fixes and improvements (Andi Kleen, Dietmar Eggemann,
    Geliang Tang, Hiroshi Shimamoto, Joonwoo Park, Peter Zijlstra,
    Waiman Long, Wanpeng Li, Yuyang Du)"

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
    sched/fair: Fix new task's load avg removed from source CPU in wake_up_new_task()
    sched/core: Move sched_entity::avg into separate cache line
    x86/fpu: Properly align size in CHECK_MEMBER_AT_END_OF() macro
    sched/deadline: Fix the earliest_dl.next logic
    sched/fair: Disable the task group load_avg update for the root_task_group
    sched/fair: Move the cache-hot 'load_avg' variable into its own cacheline
    sched/fair: Avoid redundant idle_cpu() call in update_sg_lb_stats()
    sched/core: Move the sched_to_prio[] arrays out of line
    sched/cputime: Convert vtime_seqlock to seqcount
    sched/cputime: Introduce vtime accounting check for readers
    sched/cputime: Rename vtime_accounting_enabled() to vtime_accounting_cpu_enabled()
    sched/cputime: Correctly handle task guest time on housekeepers
    sched/cputime: Clarify vtime symbols and document them
    sched/cputime: Remove extra cost in task_cputime()
    sched/fair: Make it possible to account fair load avg consistently
    sched/fair: Modify the comment about lock assumptions in migrate_task_rq_fair()
    stop_machine: Clean up the usage of the preemption counter in cpu_stopper_thread()
    stop_machine: Shift the 'done != NULL' check from cpu_stop_signal_done() to callers
    stop_machine: Kill cpu_stop_done->executed
    stop_machine: Change __stop_cpus() to rely on cpu_stop_queue_work()
    ...

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "Kernel side changes:

    - Intel Knights Landing support. (Harish Chegondi)

    - Intel Broadwell-EP uncore PMU support. (Kan Liang)

    - Core code improvements. (Peter Zijlstra.)

    - Event filter, LBR and PEBS fixes. (Stephane Eranian)

    - Enable cycles:pp on Intel Atom. (Stephane Eranian)

    - Add cycles:ppp support for Skylake. (Andi Kleen)

    - Various x86 NMI overhead optimizations. (Andi Kleen)

    - Intel PT enhancements. (Takao Indoh)

    - AMD cache events fix. (Vince Weaver)

    Tons of tooling changes:

    - Show random perf tool tips in the 'perf report' bottom line
    (Namhyung Kim)

    - perf report now defaults to --group if the perf.data file has
    grouped events, try it with:

    # perf record -e '{cycles,instructions}' -a sleep 1
    [ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 1.093 MB perf.data (1247 samples) ]
    # perf report
    # Samples: 1K of event 'anon group { cycles, instructions }'
    # Event count (approx.): 1955219195
    #
    # Overhead Command Shared Object Symbol

    2.86% 0.22% swapper [kernel.kallsyms] [k] intel_idle
    1.05% 0.33% firefox libxul.so [.] js::SetObjectElement
    1.05% 0.00% kworker/0:3 [kernel.kallsyms] [k] gen6_ring_get_seqno
    0.88% 0.17% chrome chrome [.] 0x0000000000ee27ab
    0.65% 0.86% firefox libxul.so [.] js::ValueToId
    0.64% 0.23% JS Helper libxul.so [.] js::SplayTree::splay
    0.62% 1.27% firefox libxul.so [.] js::GetIterator
    0.61% 1.74% firefox libxul.so [.] js::NativeSetProperty
    0.61% 0.31% firefox libxul.so [.] js::SetPropertyByDefining

    - Introduce the 'perf stat record/report' workflow:

    Generate perf.data files from 'perf stat', to tap into the
    scripting capabilities perf has instead of defining a 'perf stat'
    specific scripting support to calculate event ratios, etc.

    Simple example:

    $ perf stat record -e cycles usleep 1

    Performance counter stats for 'usleep 1':

    1,134,996 cycles

    0.000670644 seconds time elapsed

    $ perf stat report

    Performance counter stats for '/home/acme/bin/perf stat record -e cycles usleep 1':

    1,134,996 cycles

    0.000670644 seconds time elapsed

    $

    It generates PERF_RECORD_ userspace records to store the details:

    $ perf report -D | grep PERF_RECORD
    0xf0 [0x28]: PERF_RECORD_THREAD_MAP nr: 1 thread: 27637
    0x118 [0x12]: PERF_RECORD_CPU_MAP nr: 1 cpu: 65535
    0x12a [0x40]: PERF_RECORD_STAT_CONFIG
    0x16a [0x30]: PERF_RECORD_STAT
    -1 -1 0x19a [0x40]: PERF_RECORD_MMAP -1/0: [0xffffffff81000000(0x1f000000) @ 0xffffffff81000000]: x [kernel.kallsyms]_text
    0x1da [0x18]: PERF_RECORD_STAT_ROUND
    [acme@ssdandy linux]$

    An effort was made to make perf.data files generated like this to
    not generate cryptic messages when processed by older tools.

    The 'perf script' bits need rebasing, will go up later.

    - Make command line options always available, even when they depend
    on some feature being enabled, warning the user about use of such
    options (Wang Nan)

    - Support hw breakpoint events (mem:0xAddress) in the default output
    mode in 'perf script' (Wang Nan)

    - Fixes and improvements for supporting annotating ARM binaries,
    support ARM call and jump instructions, more work needed to have
    arch specific stuff separated into tools/perf/arch/*/annotate/
    (Russell King)

    - Add initial 'perf config' command, for now just with a --list
    command to the contents of the configuration file in use and a
    basic man page describing its format, commands for doing edits and
    detailed documentation are being reviewed and proof-read. (Taeung
    Song)

    - Allows BPF scriptlets specify arguments to be fetched using DWARF
    info, using a prologue generated at compile/build time (He Kuang,
    Wang Nan)

    - Allow attaching BPF scriptlets to module symbols (Wang Nan)

    - Allow attaching BPF scriptlets to userspace code using uprobe (Wang
    Nan)

    - BPF programs now can specify 'perf probe' tunables via its section
    name, separating key=val values using semicolons (Wang Nan)

    Testing some of these new BPF features:

    Use case: get callchains when receiving SSL packets, filter then in the
    kernel, at arbitrary place.

    # cat ssl.bpf.c
    #define SEC(NAME) __attribute__((section(NAME), used))

    struct pt_regs;

    SEC("func=__inet_lookup_established hnum")
    int func(struct pt_regs *ctx, int err, unsigned short port)
    {
    return err == 0 && port == 443;
    }

    char _license[] SEC("license") = "GPL";
    int _version SEC("version") = LINUX_VERSION_CODE;
    #
    # perf record -a -g -e ssl.bpf.c
    ^C[ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 0.787 MB perf.data (3 samples) ]
    # perf script | head -30
    swapper 0 [000] 58783.268118: perf_bpf_probe:func: (ffffffff816a0f60) hnum=0x1bb
    8a0f61 __inet_lookup_established (/lib/modules/4.3.0+/build/vmlinux)
    896def ip_rcv_finish (/lib/modules/4.3.0+/build/vmlinux)
    8976c2 ip_rcv (/lib/modules/4.3.0+/build/vmlinux)
    855eba __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux)
    8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux)
    8572a8 process_backlog (/lib/modules/4.3.0+/build/vmlinux)
    856b11 net_rx_action (/lib/modules/4.3.0+/build/vmlinux)
    2a284b __do_softirq (/lib/modules/4.3.0+/build/vmlinux)
    2a2ba3 irq_exit (/lib/modules/4.3.0+/build/vmlinux)
    96b7a4 do_IRQ (/lib/modules/4.3.0+/build/vmlinux)
    969807 ret_from_intr (/lib/modules/4.3.0+/build/vmlinux)
    2dede5 cpu_startup_entry (/lib/modules/4.3.0+/build/vmlinux)
    95d5bc rest_init (/lib/modules/4.3.0+/build/vmlinux)
    1163ffa start_kernel ([kernel.vmlinux].init.text)
    11634d7 x86_64_start_reservations ([kernel.vmlinux].init.text)
    1163623 x86_64_start_kernel ([kernel.vmlinux].init.text)

    qemu-system-x86 9178 [003] 58785.792417: perf_bpf_probe:func: (ffffffff816a0f60) hnum=0x1bb
    8a0f61 __inet_lookup_established (/lib/modules/4.3.0+/build/vmlinux)
    896def ip_rcv_finish (/lib/modules/4.3.0+/build/vmlinux)
    8976c2 ip_rcv (/lib/modules/4.3.0+/build/vmlinux)
    855eba __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux)
    8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux)
    856660 netif_receive_skb_internal (/lib/modules/4.3.0+/build/vmlinux)
    8566ec netif_receive_skb_sk (/lib/modules/4.3.0+/build/vmlinux)
    430a br_handle_frame_finish ([bridge])
    48bc br_handle_frame ([bridge])
    855f44 __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux)
    8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux)
    #

    - Use 'perf probe' various options to list functions, see what
    variables can be collected at any given point, experiment first
    collecting without a filter, then filter, use it together with
    'perf trace', 'perf top', with or without callchains, if it
    explodes, please tell us!

    - Introduce a new callchain mode: "folded", that will list per line
    representations of all callchains for a give histogram entry,
    facilitating 'perf report' output processing by other tools, such
    as Brendan Gregg's flamegraph tools (Namhyung Kim)

    E.g:

    # perf report | grep -v ^# | head
    18.37% 0.00% swapper [kernel.kallsyms] [k] cpu_startup_entry
    |
    ---cpu_startup_entry
    |
    |--12.07%--start_secondary
    |
    --6.30%--rest_init
    start_kernel
    x86_64_start_reservations
    x86_64_start_kernel
    #

    Becomes, in "folded" mode:

    # perf report -g folded | grep -v ^# | head -5
    18.37% 0.00% swapper [kernel.kallsyms] [k] cpu_startup_entry
    12.07% cpu_startup_entry;start_secondary
    6.30% cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel
    16.90% 0.00% swapper [kernel.kallsyms] [k] call_cpuidle
    11.23% call_cpuidle;cpu_startup_entry;start_secondary
    5.67% call_cpuidle;cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel
    16.90% 0.00% swapper [kernel.kallsyms] [k] cpuidle_enter
    11.23% cpuidle_enter;call_cpuidle;cpu_startup_entry;start_secondary
    5.67% cpuidle_enter;call_cpuidle;cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel
    15.12% 0.00% swapper [kernel.kallsyms] [k] cpuidle_enter_state
    #

    The user can also select one of "count", "period" or "percent" as
    the first column.

    ... and lots of infrastructure enhancements, plus fixes and other
    changes, features I failed to list - see the shortlog and the git log
    for details"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (271 commits)
    perf evlist: Add --trace-fields option to show trace fields
    perf record: Store data mmaps for dwarf unwind
    perf libdw: Check for mmaps also in MAP__VARIABLE tree
    perf unwind: Check for mmaps also in MAP__VARIABLE tree
    perf unwind: Use find_map function in access_dso_mem
    perf evlist: Remove perf_evlist__(enable|disable)_event functions
    perf evlist: Make perf_evlist__open() open evsels with their cpus and threads (like perf record does)
    perf report: Show random usage tip on the help line
    perf hists: Export a couple of hist functions
    perf diff: Use perf_hpp__register_sort_field interface
    perf tools: Add overhead/overhead_children keys defaults via string
    perf tools: Remove list entry from struct sort_entry
    perf tools: Include all tools/lib directory for tags/cscope/TAGS targets
    perf script: Align event name properly
    perf tools: Add missing headers in perf's MANIFEST
    perf tools: Do not show trace command if it's not compiled in
    perf report: Change default to use event group view
    perf top: Decay periods in callchains
    tools lib: Move bitmap.[ch] from tools/perf/ to tools/{lib,include}/
    tools lib: Sync tools/lib/find_bit.c with the kernel
    ...

    Linus Torvalds
     
  • Pull locking updates from Ingo Molnar:
    "So we have a laundry list of locking subsystem changes:

    - continuing barrier API and code improvements

    - futex enhancements

    - atomics API improvements

    - pvqspinlock enhancements: in particular lock stealing and adaptive
    spinning

    - qspinlock micro-enhancements"

    * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op
    futex: Cleanup the goto confusion in requeue_pi()
    futex: Remove pointless put_pi_state calls in requeue()
    futex: Document pi_state refcounting in requeue code
    futex: Rename free_pi_state() to put_pi_state()
    futex: Drop refcount if requeue_pi() acquired the rtmutex
    locking/barriers, arch: Remove ambiguous statement in the smp_store_mb() documentation
    lcoking/barriers, arch: Use smp barriers in smp_store_release()
    locking/cmpxchg, arch: Remove tas() definitions
    locking/pvqspinlock: Queue node adaptive spinning
    locking/pvqspinlock: Allow limited lock stealing
    locking/pvqspinlock: Collect slowpath lock statistics
    sched/core, locking: Document Program-Order guarantees
    locking, sched: Introduce smp_cond_acquire() and use it
    locking/pvqspinlock, x86: Optimize the PV unlock code path
    locking/qspinlock: Avoid redundant read of next pointer
    locking/qspinlock: Prefetch the next node cacheline
    locking/qspinlock: Use _acquire/_release() versions of cmpxchg() & xchg()
    atomics: Add test for atomic operations with _relaxed variants

    Linus Torvalds
     
  • Pull RCU updates from Ingo Molnar:
    "The changes in this cycle were:

    - Adding transitivity uniformly to rcu_node structure ->lock
    acquisitions. (This is implemented by the first two commits on top
    of v4.4-rc2 due to the pervasive nature of this change.)

    - Documentation updates, including RCU requirements.

    - Expedited grace-period changes.

    - Miscellaneous fixes.

    - Linked-list fixes, courtesy of KTSAN.

    - Torture-test updates.

    - Late-breaking fix to sysrq-generated crash.

    One thing I should note is that these pieces of documentation are
    fairly large files:

    .../RCU/Design/Requirements/Requirements.html | 2897 ++++++++++++++++++++
    .../RCU/Design/Requirements/Requirements.htmlx | 2741 ++++++++++++++++++

    and are written in HTML, not the usual .txt style. I hope they are
    fine"

    Paul McKenney explains the html docs:
    "For whatever it is worth, the reason for this unconventional choice
    was that attempts to do the diagrams in ASCII art failed miserably.

    And attempts to do ASCII art for the upcoming documentation of the
    data structures failed even more miserably"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (49 commits)
    sysrq: Fix warning in sysrq generated crash.
    list: Add lockless list traversal primitives
    rcu: Make rcu_gp_init() be bool rather than int
    rcu: Move wakeup out from under rnp->lock
    rcu: Fix comment for rcu_dereference_raw_notrace
    rcu: Don't redundantly disable irqs in rcu_irq_{enter,exit}()
    rcu: Make cpu_needs_another_gp() be bool
    rcu: Eliminate unused rcu_init_one() argument
    rcu: Remove TINY_RCU bloat from pointless boot parameters
    torture: Place console.log files correctly from the get-go
    torture: Abbreviate console error dump
    rcutorture: Print symbolic name for ->gp_state
    rcutorture: Print symbolic name for rcu_torture_writer_state
    rcutorture: Remove CONFIG_RCU_USER_QS from rcutorture selftest doc
    rcutorture: Default grace period to three minutes, allow override
    rcutorture: Dump stack when GP kthread stalls
    rcutorture: Flag nonexistent RCU GP kthread
    rcutorture: Add batch number to script printout
    Documentation/memory-barriers.txt: Fix ACCESS_ONCE thinko
    documentation: Update RCU requirements based on expedited changes
    ...

    Linus Torvalds
     
  • Pull vfs xattr updates from Al Viro:
    "Andreas' xattr cleanup series.

    It's a followup to his xattr work that went in last cycle; -0.5KLoC"

    * 'work.xattr' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    xattr handlers: Simplify list operation
    ocfs2: Replace list xattr handler operations
    nfs: Move call to security_inode_listsecurity into nfs_listxattr
    xfs: Change how listxattr generates synthetic attributes
    tmpfs: listxattr should include POSIX ACL xattrs
    tmpfs: Use xattr handler infrastructure
    btrfs: Use xattr handler infrastructure
    vfs: Distinguish between full xattr names and proper prefixes
    posix acls: Remove duplicate xattr name definitions
    gfs2: Remove gfs2_xattr_acl_chmod
    vfs: Remove vfs_xattr_cmp

    Linus Torvalds
     
  • Pull vfs RCU symlink updates from Al Viro:
    "Replacement of ->follow_link/->put_link, allowing to stay in RCU mode
    even if the symlink is not an embedded one.

    No changes since the mailbomb on Jan 1"

    * 'work.symlinks' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    switch ->get_link() to delayed_call, kill ->put_link()
    kill free_page_put_link()
    teach nfs_get_link() to work in RCU mode
    teach proc_self_get_link()/proc_thread_self_get_link() to work in RCU mode
    teach shmem_get_link() to work in RCU mode
    teach page_get_link() to work in RCU mode
    replace ->follow_link() with new method that could stay in RCU mode
    don't put symlink bodies in pagecache into highmem
    namei: page_getlink() and page_follow_link_light() are the same thing
    ufs: get rid of ->setattr() for symlinks
    udf: don't duplicate page_symlink_inode_operations
    logfs: don't duplicate page_symlink_inode_operations
    switch befs long symlinks to page_symlink_operations

    Linus Torvalds
     
  • Pull vfs compat_ioctl fixes from Al Viro:
    "This is basically Jann's patches from last week. I have _not_
    included the stuff like switching i2c to ->compat_ioctl() into this
    one - those need more testing.

    Ideally I would like fs/compat_ioctl.c shrunk a lot, but that's a
    separate story"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    compat_ioctl: don't call do_ioctl under set_fs(KERNEL_DS)
    compat_ioctl: don't pass fd around when not needed
    compat_ioctl: don't look up the fd twice

    Linus Torvalds