27 May, 2016

13 commits

  • mmput_async is currently used only from the oom_reaper which is defined
    only for CONFIG_MMU. We can save work_struct in mm_struct for
    !CONFIG_MMU.

    [akpm@linux-foundation.org: fix typo, per Minchan]
    Link: http://lkml.kernel.org/r/20160520061658.GB19172@dhcp22.suse.cz
    Reported-by: Minchan Kim
    Signed-off-by: Michal Hocko
    Acked-by: Minchan Kim
    Cc: Tetsuo Handa
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     
  • mem_cgroup_out_of_memory() is returning "true" if it finds a TIF_MEMDIE
    task after an eligible task was found, "false" if it found a TIF_MEMDIE
    task before an eligible task is found.

    This difference confuses memory_max_write() which checks the return
    value of mem_cgroup_out_of_memory(). Since memory_max_write() wants to
    continue looping, mem_cgroup_out_of_memory() should return "true" in
    this case.

    This patch sets a dummy pointer in order to return "true".

    Link: http://lkml.kernel.org/r/1463753327-5170-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp
    Signed-off-by: Tetsuo Handa
    Acked-by: Michal Hocko
    Acked-by: Vladimir Davydov
    Cc: Johannes Weiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tetsuo Handa
     
  • Previously, if a bad inode was found in ocfs2_iget(), -ESTALE was
    returned back to the caller anyway. Since commit d2b9d71a2da7 ("ocfs2:
    check/fix inode block for online file check") can handle with return
    value from ocfs2_read_locked_inode() now, we know the exact errno
    returned for us.

    Link: http://lkml.kernel.org/r/1463970656-18413-1-git-send-email-zren@suse.com
    Signed-off-by: Eric Ren
    Reviewed-by: Joseph Qi
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Junxiao Bi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Ren
     
  • It's unused since commit 7ed2f9e66385 ("mm, kasan: SLAB support")

    Link: http://lkml.kernel.org/r/1464020961-2242-1-git-send-email-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin
    Cc: Joonsoo Kim
    Cc: David Rientjes
    Cc: Pekka Enberg
    Cc: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Ryabinin
     
  • Commit cd11016e5f52 ("mm, kasan: stackdepot implementation. Enable
    stackdepot for SLAB") added 'reserved' field, but never used it.

    Link: http://lkml.kernel.org/r/1464021054-2307-1-git-send-email-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin
    Cc: Alexander Potapenko
    Cc: Dmitry Vyukov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Ryabinin
     
  • Per the suggestion from Michal Hocko [1], DEFERRED_STRUCT_PAGE_INIT
    requires some ordering wrt other initialization operations, e.g.
    page_ext_init has to happen after the whole memmap is initialized
    properly.

    For SPARSEMEM this requires to wait for page_alloc_init_late. Other
    memory models (e.g. flatmem) might have different initialization
    layouts (page_ext_init_flatmem). Currently DEFERRED_STRUCT_PAGE_INIT
    depends on MEMORY_HOTPLUG which in turn

    depends on SPARSEMEM || X86_64_ACPI_NUMA
    depends on ARCH_ENABLE_MEMORY_HOTPLUG

    and X86_64_ACPI_NUMA depends on NUMA which in turn disable FLATMEM
    memory model:

    config ARCH_FLATMEM_ENABLE
    def_bool y
    depends on X86_32 && !NUMA

    so FLATMEM is ruled out via dependency maze. Be explicit and disable
    FLATMEM for DEFERRED_STRUCT_PAGE_INIT so that we do not reintroduce
    subtle initialization bugs

    [1] http://lkml.kernel.org/r/20160523073157.GD2278@dhcp22.suse.cz

    Link: http://lkml.kernel.org/r/1464027356-32282-1-git-send-email-yang.shi@linaro.org
    Signed-off-by: Yang Shi
    Cc: Michal Hocko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yang Shi
     
  • lockless_dereference() is supposed to take pointer not integer.

    Link: http://lkml.kernel.org/r/20160521201448.GA7429@p183.telecom.by
    Signed-off-by: Alexey Dobriyan
    Cc: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • Pull NFS client updates from Anna Schumaker:
    "Highlights include:

    Features:
    - Add support for the NFS v4.2 COPY operation
    - Add support for NFS/RDMA over IPv6

    Bugfixes and cleanups:
    - Avoid race that crashes nfs_init_commit()
    - Fix oops in callback path
    - Fix LOCK/OPEN race when unlinking an open file
    - Choose correct stateids when using delegations in setattr, read and
    write
    - Don't send empty SETATTR after OPEN_CREATE
    - xprtrdma: Prevent server from writing a reply into memory client
    has released
    - xprtrdma: Support using Read list and Reply chunk in one RPC call"

    * tag 'nfs-for-4.7-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (61 commits)
    pnfs: pnfs_update_layout needs to consider if strict iomode checking is on
    nfs/flexfiles: Use the layout segment for reading unless it a IOMODE_RW and reading is disabled
    nfs/flexfiles: Helper function to detect FF_FLAGS_NO_READ_IO
    nfs: avoid race that crashes nfs_init_commit
    NFS: checking for NULL instead of IS_ERR() in nfs_commit_file()
    pnfs: make pnfs_layout_process more robust
    pnfs: rework LAYOUTGET retry handling
    pnfs: lift retry logic from send_layoutget to pnfs_update_layout
    pnfs: fix bad error handling in send_layoutget
    flexfiles: add kerneldoc header to nfs4_ff_layout_prepare_ds
    flexfiles: remove pointless setting of NFS_LAYOUT_RETURN_REQUESTED
    pnfs: only tear down lsegs that precede seqid in LAYOUTRETURN args
    pnfs: keep track of the return sequence number in pnfs_layout_hdr
    pnfs: record sequence in pnfs_layout_segment when it's created
    pnfs: don't merge new ff lsegs with ones that have LAYOUTRETURN bit set
    pNFS/flexfiles: When initing reads or writes, we might have to retry connecting to DSes
    pNFS/flexfiles: When checking for available DSes, conditionally check for MDS io
    pNFS/flexfile: Fix erroneous fall back to read/write through the MDS
    NFS: Reclaim writes via writepage are opportunistic
    NFSv4: Use the right stateid for delegations in setattr, read and write
    ...

    Linus Torvalds
     
  • Pull xfs updates from Dave Chinner:
    "A pretty average collection of fixes, cleanups and improvements in
    this request.

    Summary:
    - fixes for mount line parsing, sparse warnings, read-only compat
    feature remount behaviour
    - allow fast path symlink lookups for inline symlinks.
    - attribute listing cleanups
    - writeback goes direct to bios rather than indirecting through
    bufferheads
    - transaction allocation cleanup
    - optimised kmem_realloc
    - added configurable error handling for metadata write errors,
    changed default error handling behaviour from "retry forever" to
    "retry until unmount then fail"
    - fixed several inode cluster writeback lookup vs reclaim race
    conditions
    - fixed inode cluster writeback checking wrong inode after lookup
    - fixed bugs where struct xfs_inode freeing wasn't actually RCU safe
    - cleaned up inode reclaim tagging"

    * tag 'xfs-for-linus-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: (39 commits)
    xfs: fix warning in xfs_finish_page_writeback for non-debug builds
    xfs: move reclaim tagging functions
    xfs: simplify inode reclaim tagging interfaces
    xfs: rename variables in xfs_iflush_cluster for clarity
    xfs: xfs_iflush_cluster has range issues
    xfs: mark reclaimed inodes invalid earlier
    xfs: xfs_inode_free() isn't RCU safe
    xfs: optimise xfs_iext_destroy
    xfs: skip stale inodes in xfs_iflush_cluster
    xfs: fix inode validity check in xfs_iflush_cluster
    xfs: xfs_iflush_cluster fails to abort on error
    xfs: remove xfs_fs_evict_inode()
    xfs: add "fail at unmount" error handling configuration
    xfs: add configuration handlers for specific errors
    xfs: add configuration of error failure speed
    xfs: introduce table-based init for error behaviors
    xfs: add configurable error support to metadata buffers
    xfs: introduce metadata IO error class
    xfs: configurable error behavior via sysfs
    xfs: buffer ->bi_end_io function requires irq-safe lock
    ...

    Linus Torvalds
     
  • Pull hwmon fixlets from Jean Delvare.

    * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
    Documentation/hwmon: Update links in max34440
    hwmon: (emc2103) Fix typo in MODULE_PARM_DESC

    Linus Torvalds
     
  • Pull MMC fixes from Ulf Hansson:
    "Here are some mmc fixes intended for v4.7 rc1. They are based on a
    commit earlier in the merge window and have been tested in linux-next
    for a while.

    MMC core:
    - Prevent re-tuning while serving requests for RPMB partitions
    - Extend timeout for long read time quirk to support more eMMCs

    MMC host:
    - sdhci-acpi: Ensure connected devices are powered when probing
    - sdhci-pci|acpi: Remove unreliable MMC_CAP_BUS_WIDTH_TEST for Intel HWs
    - dw_mmc: Correct the assigning of max_blk_size
    - dw_mmc-rockchip: Allow RPMB partitions to be created
    - dw_mmc-rockchip: Set the drive phase properly"

    * tag 'mmc-v4.7-rc1' of git://git.linaro.org/people/ulf.hansson/mmc:
    mmc: sdhci-acpi: Remove MMC_CAP_BUS_WIDTH_TEST for Intel controllers
    mmc: sdhci-pci: Remove MMC_CAP_BUS_WIDTH_TEST for Intel controllers
    mmc: longer timeout for long read time quirk
    mmc: dw_mmc: rockchip: Set the drive phase properly
    mmc: dw_mmc: fix the wrong max_blk_size
    mmc: dw_mmc-rockchip: add MMC_CAP_CMD23 capabilities
    mmc: sdhci-acpi: Ensure connected devices are powered when probing
    ACPI / PM: Export acpi_device_fix_up_power()
    mmc: block: Pause re-tuning while switched to the RPMB partition
    mmc: block: Always switch back to main area after RPMB access
    mmc: core: Add a facility to "pause" re-tuning

    Linus Torvalds
     
  • Pull thermal management updates from Zhang Rui:

    - Introduce generic ADC thermal driver, based on OF thermal (Laxman
    Dewangan)

    - Introduce new thermal driver for Tango chips (Marc Gonzalez)

    - Rockchip driver support for RK3399, RK3366, and some fixes (Caesar
    Wang, Elaine Zhang and Shawn Lin)

    - Add CPU power cooling model to Mediatek thermal driver (Dawei Chien)

    - Wider usage of dev_thermal_zone_of_sensor_register (Eduardo Valentin)

    - TI thermal driver gained a new maintainer (Keerthy).

    - Enabled powerclamp driver by checking CPU feature and package cstate
    counter instead of CPU whitelist (Jacob Pan)

    - Various fixes on thermal governor, OF thermal, Tegra, and RCAR

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (50 commits)
    thermal: tango: initialize TEMPSI_CFG
    thermal: rockchip: use the usleep_range instead of udelay
    thermal: rockchip: add the notes for better reading
    thermal: rockchip: Support RK3366 SoCs in the thermal driver
    thermal: rockchip: handle the power sequence for tsadc controller
    thermal: rockchip: update the tsadc table for rk3399
    thermal: rockchip: fixes the code_to_temp for tsadc driver
    thermal: rockchip: disable thermal->clk in err case
    thermal: tegra: add Tegra132 specific SOC_THERM driver
    thermal: fix ptr_ret.cocci warnings
    thermal: mediatek: Add cpu dynamic power cooling model.
    thermal: generic-adc: Add ADC based thermal sensor driver
    thermal: generic-adc: Add DT binding for ADC based thermal sensor
    thermal: tegra: fix static checker warning
    thermal: tegra: mark PM functions __maybe_unused
    thermal: add temperature sensor support for tango SoC
    thermal: hisilicon: fix IRQ imbalance enabling
    thermal: hisilicon: support to use any sensor
    thermal: rcar: Remove binding docs for r8a7794
    thermal: tegra: add PM support
    ...

    Linus Torvalds
     
  • Pull Yama locking fix from James Morris:
    "Fix for the Yama LSM"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
    Yama: fix double-spinlock and user access in atomic context

    Linus Torvalds
     

26 May, 2016

26 commits

  • As flexfiles has FF_FLAGS_NO_READ_IO, there is a need to generically
    support enforcing that a IOMODE_RW segment will not allow READ I/O.

    Signed-off-by: Tom Haynes
    Signed-off-by: Anna Schumaker

    Tom Haynes
     
  • Signed-off-by: Tom Haynes
    Signed-off-by: Anna Schumaker

    Tom Haynes
     
  • It appears the website for maxim-ic.com changed to
    maximintegrated.com.

    Signed-off-by: Glenn Dayton
    Signed-off-by: Jean Delvare

    Glenn Dayton
     
  • "apd" was intended here instead of "init".

    Signed-off-by: Dan Carpenter
    Signed-off-by: Jean Delvare

    Dan Carpenter
     
  • Pull x86 fixes from Ingo Molnar:
    "Misc fixes: EFI, entry code, pkeys and MPX fixes, TASK_SIZE cleanups
    and a tsc frequency table fix"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mm: Switch from TASK_SIZE to TASK_SIZE_MAX in the page fault code
    x86/fsgsbase/64: Use TASK_SIZE_MAX for FSBASE/GSBASE upper limits
    x86/mm/mpx: Work around MPX erratum SKD046
    x86/entry/64: Fix stack return address retrieval in thunk
    x86/efi: Fix 7-parameter efi_call()s
    x86/cpufeature, x86/mm/pkeys: Fix broken compile-time disabling of pkeys
    x86/tsc: Add missing Cherrytrail frequency to the table

    Linus Torvalds
     
  • Pull scheduler fixes from Ingo Molnar:
    "Two fixes: one for a lost wakeup, the other to fix the compiler
    optimizing out preempt operations on ARM64 (and possibly other non-x86
    architectures)"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/core: Fix remote wakeups
    sched/preempt: Fix preempt_count manipulations

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "Mostly tooling and PMU driver fixes, but also a number of late updates
    such as the reworking of the call-chain size limiting logic to make
    call-graph recording more robust, plus tooling side changes for the
    new 'backwards ring-buffer' extension to the perf ring-buffer"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits)
    perf record: Read from backward ring buffer
    perf record: Rename variable to make code clear
    perf record: Prevent reading invalid data in record__mmap_read
    perf evlist: Add API to pause/resume
    perf trace: Use the ptr->name beautifier as default for "filename" args
    perf trace: Use the fd->name beautifier as default for "fd" args
    perf report: Add srcline_from/to branch sort keys
    perf evsel: Record fd into perf_mmap
    perf evsel: Add overwrite attribute and check write_backward
    perf tools: Set buildid dir under symfs when --symfs is provided
    perf trace: Only auto set call-graph to "dwarf" when syscalls are being traced
    perf annotate: Sort list of recognised instructions
    perf annotate: Fix identification of ARM blt and bls instructions
    perf tools: Fix usage of max_stack sysctl
    perf callchain: Stop validating callchains by the max_stack sysctl
    perf trace: Fix exit_group() formatting
    perf top: Use machine->kptr_restrict_warned
    perf trace: Warn when trying to resolve kernel addresses with kptr_restrict=1
    perf machine: Do not bail out if not managing to read ref reloc symbol
    perf/x86/intel/p4: Trival indentation fix, remove space
    ...

    Linus Torvalds
     
  • Commit 8a56038c2aef ("Yama: consolidate error reporting") causes lockups
    when someone hits a Yama denial. Call chain:

    process_vm_readv -> process_vm_rw -> process_vm_rw_core -> mm_access
    -> ptrace_may_access
    task_lock(...) is taken
    __ptrace_may_access -> security_ptrace_access_check
    -> yama_ptrace_access_check -> report_access -> kstrdup_quotable_cmdline
    -> get_cmdline -> access_process_vm -> get_task_mm
    task_lock(...) is taken again

    task_lock(p) just calls spin_lock(&p->alloc_lock), so at this point,
    spin_lock() is called on a lock that is already held by the current
    process.

    Also: Since the alloc_lock is a spinlock, sleeping inside
    security_ptrace_access_check hooks is probably not allowed at all? So it's
    not even possible to print the cmdline from in there because that might
    involve paging in userspace memory.

    It would be tempting to rewrite ptrace_may_access() to drop the alloc_lock
    before calling the LSM, but even then, ptrace_may_access() itself might be
    called from various contexts in which you're not allowed to sleep; for
    example, as far as I understand, to be able to hold a reference to another
    task, usually an RCU read lock will be taken (see e.g. kcmp() and
    get_robust_list()), so that also prohibits sleeping. (And using e.g. FUSE,
    a user can cause pagefault handling to take arbitrary amounts of time -
    see https://bugs.chromium.org/p/project-zero/issues/detail?id=808.)

    Therefore, AFAIK, in order to print the name of a process below
    security_ptrace_access_check(), you'd have to either grab a reference to
    the mm_struct and defer the access violation reporting or just use the
    "comm" value that's stored in kernelspace and accessible without big
    complications. (Or you could try to use some kind of atomic remote VM
    access that fails if the memory isn't paged in, similar to
    copy_from_user_inatomic(), and if necessary fall back to comm, but
    that'd be kind of ugly because the comm/cmdline choice would look
    pretty random to the user.)

    Fix it by deferring reporting of the access violation until current
    exits kernelspace the next time.

    v2: Don't oops on PTRACE_TRACEME, call report_access under
    task_lock(current). Also fix nonsensical comment. And don't use
    GPF_ATOMIC for memory allocation with no locks held.
    This patch is tested both for ptrace attach and ptrace traceme.

    Fixes: 8a56038c2aef ("Yama: consolidate error reporting")
    Signed-off-by: Jann Horn
    Acked-by: Kees Cook
    Signed-off-by: James Morris

    Jann Horn
     
  • Pull objtool build fix from Ingo Molnar:
    "An libtool fix for older libelf versions"

    * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    objtool: Allow building with older libelf

    Linus Torvalds
     
  • Pull vfs iov_iter regression fix from Al Viro:
    "Fix for braino in 'fold checks into iterate_and_advance()'"

    * 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    do "fold checks into iterate_and_advance()" right

    Linus Torvalds
     
  • Pull vfs xattr regression fixes from Al Viro.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    make xattr_resolve_handlers() safe to use with NULL ->s_xattr
    xattr: Fail with -EINVAL for NULL attribute names

    Linus Torvalds
     
  • Pull ACPI fix from Rafael Wysocki:
    "Additional ACPI update for v4.7-rc1

    Just one fix for incorrect async_synchronize_cookie() usage in the
    ACPI battery driver (Chris Wilson)"

    * tag 'acpi-4.7-rc1-more' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / battery: Correctly serialise with the pending async probe

    Linus Torvalds
     
  • Pull more power management updates from Rafael Wysocki:
    "These are two stable-candidate fixes (PM core, cpuidle) and a bunch of
    cpufreq cleanups.

    Specifics:

    - Stable-candidate cpuidle fix to make it check the right variable
    when deciding whether or not to enable interrupts on the local CPU
    so as to avoid enabling iterrupts too early in some cases if the
    system has both coupled and per-core idle states (Daniel Lezcano).

    - Stable-candidate PM core fix to make it handle failures at the
    "late suspend" stage of device suspend consistently for all devices
    regardless of whether or not async suspend/resume is enabled for
    them (Rafael Wysocki).

    - Cleanups in the cpufreq core, the schedutil governor and the
    intel_pstate driver (Rafael Wysocki, Pankaj Gupta, Viresh Kumar)"

    * tag 'pm-4.7-rc1-more' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    PM / sleep: Handle failures in device_suspend_late() consistently
    cpufreq: schedutil: Improve prints messages with pr_fmt
    cpuidle: Fix cpuidle_state_is_coupled() argument in cpuidle_enter()
    cpufreq: simplified goto out in cpufreq_register_driver()
    cpufreq: governor: CPUFREQ_GOV_STOP never fails
    cpufreq: governor: CPUFREQ_GOV_POLICY_EXIT never fails
    intel_pstate: Simplify conditional in intel_pstate_set_policy()

    Linus Torvalds
     
  • the only case when we should skip the iterate_and_advance() guts
    is when nothing's left in the iterator, _not_ just when requested
    amount is 0. Said guts will do nothing in the latter case anyway;
    the problem we tried to deal with in the aforementioned commit is
    that when there's nothing left *and* the amount requested is 0,
    we might end up deferencing one iovec too many; the value we fetch
    from there is discarded in that case, but theoretically it might
    oops if the iovec array ends exactly at the end of page with the
    next page not mapped.

    Bailing out on zero size requested had an unexpected side effect -
    zero-length segment in the beginning of iovec array ended up
    throwing do_loop_readv_writev() into infinite spin; we do not
    advance past the empty segment at all. Reproducer is trivial:
    echo '#include ' >a.c
    echo 'main() {char c; struct iovec v[] = {{&c,0},{&c,1}}; readv(0,v,2);}' >>a.c
    cc a.c && ./a.out

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • Commit 98e9cb57 improved the xattr name checks in xattr_resolve_name but
    didn't update the NULL attribute name check appropriately, so NULL
    attribute names lead to NULL pointer dereferences. Turn that into
    -EINVAL results instead.

    Signed-off-by: Andreas Gruenbacher
    fs/xattr.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)
    Signed-off-by: Al Viro

    Andreas Gruenbacher
     
  • * acpi-battery:
    ACPI / battery: Correctly serialise with the pending async probe

    Rafael J. Wysocki
     
  • * pm-cpufreq:
    cpufreq: schedutil: Improve prints messages with pr_fmt
    cpufreq: simplified goto out in cpufreq_register_driver()
    cpufreq: governor: CPUFREQ_GOV_STOP never fails
    cpufreq: governor: CPUFREQ_GOV_POLICY_EXIT never fails
    intel_pstate: Simplify conditional in intel_pstate_set_policy()

    * pm-cpuidle:
    cpuidle: Fix cpuidle_state_is_coupled() argument in cpuidle_enter()

    * pm-core:
    PM / sleep: Handle failures in device_suspend_late() consistently

    Rafael J. Wysocki
     
  • …erry.reding/linux-pwm

    Pull pwm updates from Thierry Reding:
    "This set of changes introduces an atomic API to the PWM subsystem.
    This is influenced by the DRM atomic API that was introduced a while
    back, though it is obviously a lot simpler. The fundamental idea
    remains the same, though: drivers provide a single callback to
    implement the atomic configuration of a PWM channel.

    As a side-effect the PWM subsystem gains the ability for initial state
    retrieval, so that the logical state mirrors that of the hardware.
    Many use-cases don't care about this, but for others it is essential.

    These new features require changes in all users, which these patches
    take care of. The core is transitioned to use the atomic callback if
    available and provides a fallback mechanism for other drivers.

    Changes to transition users and drivers to the atomic API are
    postponed to v4.8"

    * tag 'pwm/for-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (30 commits)
    pwm: Add information about polarity, duty cycle and period to debugfs
    pwm: Switch to the atomic API
    pwm: Update documentation
    pwm: Add core infrastructure to allow atomic updates
    pwm: Add hardware readout infrastructure
    pwm: Move the enabled/disabled info into pwm_state
    pwm: Introduce the pwm_state concept
    pwm: Keep PWM state in sync with hardware state
    ARM: Explicitly apply PWM config extracted from pwm_args
    drm: i915: Explicitly apply PWM config extracted from pwm_args
    input: misc: pwm-beeper: Explicitly apply PWM config extracted from pwm_args
    input: misc: max8997: Explicitly apply PWM config extracted from pwm_args
    backlight: lm3630a: explicitly apply PWM config extracted from pwm_args
    backlight: lp855x: Explicitly apply PWM config extracted from pwm_args
    backlight: lp8788: Explicitly apply PWM config extracted from pwm_args
    backlight: pwm_bl: Use pwm_get_args() where appropriate
    fbdev: ssd1307fb: Use pwm_get_args() where appropriate
    regulator: pwm: Use pwm_get_args() where appropriate
    leds: pwm: Use pwm_get_args() where appropriate
    input: misc: max77693: Use pwm_get_args() where appropriate
    ...

    Linus Torvalds
     
  • The mds can inform the client not to use the IOMODE_RW layout
    segment for doing READs. I.e., it is basically a
    IOMODE_WRITE layout segment.

    It would do this to not interfere with the WRITEs.

    Signed-off-by: Tom Haynes
    Signed-off-by: Anna Schumaker

    Tom Haynes
     
  • Pull watchdog updates from Wim Van Sebroeck:

    - add support for Fintek F81865 Super-IO chip

    - add support for watchdogs (RWDT and SWDT) found on RCar Gen3 based
    SoCs from Renesas

    - octeon: Handle the FROZEN hot plug notifier actions

    - f71808e_wdt fixes and cleanups

    - some small improvements in code and documentation

    * git://www.linux-watchdog.org/linux-watchdog:
    MAINTAINERS: Add file patterns for watchdog device tree bindings
    Documentation: Add ebc-c384_wdt watchdog-parameters.txt entry
    watchdog: shwdt: Use setup_timer()
    watchdog: cpwd: Use setup_timer()
    arm64: defconfig: enable Renesas Watchdog Timer
    watchdog: renesas-wdt: add driver
    watchdog: remove error message when unable to allocate watchdog device
    watchdog: f71808e_wdt: Fix WDTMOUT_STS register read
    watchdog: f71808e_wdt: Fix typo
    watchdog: f71808e_wdt: Add F81865 support
    watchdog: sp5100_tco: properly check for new register layouts
    watchdog: core: Fix circular locking dependency
    watchdog: core: fix trivial typo in a comment
    watchdog: hpwdt: Adjust documentation to match latest kernel module parameters.
    watchdog: imx2_wdt: add external reset support via dt prop
    watchdog: octeon: Handle the FROZEN hot plug notifier actions.
    watchdog: qcom: Report reboot reason

    Linus Torvalds
     
  • Since the patch "NFS: Allow multiple commit requests in flight per file"
    we can run multiple simultaneous commits on the same inode. This
    introduced a race over collecting pages to commit that made it possible
    to call nfs_init_commit() with an empty list - which causes crashes like
    the one below.

    The fix is to catch this race and avoid calling nfs_init_commit and
    initiate_commit when there is no work to do.

    Here is the crash:

    [600522.076832] BUG: unable to handle kernel NULL pointer dereference at 0000000000000040
    [600522.078475] IP: [] nfs_init_commit+0x22/0x130 [nfs]
    [600522.078745] PGD 4272b1067 PUD 4272cb067 PMD 0
    [600522.078972] Oops: 0000 [#1] SMP
    [600522.079204] Modules linked in: nfsv3 nfs_layout_flexfiles rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache dcdbas ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_security iptable_raw vmw_vsock_vmci_transport vsock bonding ipmi_devintf ipmi_msghandler coretemp crct10dif_pclmul crc32_pclmul ghash_clmulni_intel ppdev vmw_balloon parport_pc parport acpi_cpufreq vmw_vmci i2c_piix4 shpchp nfsd auth_rpcgss nfs_acl lockd grace sunrpc xfs libcrc32c vmwgfx drm_kms_helper ttm drm crc32c_intel serio_raw vmxnet3
    [600522.081380] vmw_pvscsi ata_generic pata_acpi
    [600522.081809] CPU: 3 PID: 15667 Comm: /usr/bin/python Not tainted 4.1.9-100.pd.88.el7.x86_64 #1
    [600522.082281] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 09/30/2014
    [600522.082814] task: ffff8800bbbfa780 ti: ffff88042ae84000 task.ti: ffff88042ae84000
    [600522.083378] RIP: 0010:[] [] nfs_init_commit+0x22/0x130 [nfs]
    [600522.083973] RSP: 0018:ffff88042ae87438 EFLAGS: 00010246
    [600522.084571] RAX: 0000000000000000 RBX: ffff880003485e40 RCX: ffff88042ae87588
    [600522.085188] RDX: 0000000000000000 RSI: ffff88042ae874b0 RDI: ffff880003485e40
    [600522.085756] RBP: ffff88042ae87448 R08: ffff880003486010 R09: ffff88042ae874b0
    [600522.086332] R10: 0000000000000000 R11: 0000000000000005 R12: ffff88042ae872d0
    [600522.086905] R13: ffff88042ae874b0 R14: ffff880003485e40 R15: ffff88042704c840
    [600522.087484] FS: 00007f4728ff2740(0000) GS:ffff88043fd80000(0000) knlGS:0000000000000000
    [600522.088070] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [600522.088663] CR2: 0000000000000040 CR3: 000000042b6aa000 CR4: 00000000001406e0
    [600522.089327] Stack:
    [600522.089926] 0000000000000001 ffff88042ae87588 ffff88042ae874f8 ffffffffa04f09fa
    [600522.090549] 0000000000017840 0000000000017840 ffff88042ae87588 ffff8803258d9930
    [600522.091169] ffff88042ae87578 ffffffffa0563d80 0000000000000000 ffff88042704c840
    [600522.091789] Call Trace:
    [600522.092420] [] pnfs_generic_commit_pagelist+0x1da/0x320 [nfsv4]
    [600522.093052] [] ? ff_layout_commit_prepare_v3+0x30/0x30 [nfs_layout_flexfiles]
    [600522.093696] [] ff_layout_commit_pagelist+0x15/0x20 [nfs_layout_flexfiles]
    [600522.094359] [] nfs_generic_commit_list+0xe8/0x120 [nfs]
    [600522.095032] [] nfs_commit_inode+0xba/0x110 [nfs]
    [600522.095719] [] nfs_release_page+0x44/0xd0 [nfs]
    [600522.096410] [] try_to_release_page+0x32/0x50
    [600522.097109] [] shrink_page_list+0x961/0xb30
    [600522.097812] [] shrink_inactive_list+0x1cd/0x550
    [600522.098530] [] shrink_lruvec+0x635/0x840
    [600522.099250] [] shrink_zone+0xf0/0x2f0
    [600522.099974] [] do_try_to_free_pages+0x192/0x470
    [600522.100709] [] try_to_free_pages+0xda/0x170
    [600522.101464] [] __alloc_pages_nodemask+0x588/0x970
    [600522.102235] [] alloc_pages_vma+0xb5/0x230
    [600522.103000] [] ? cpumask_any_but+0x39/0x50
    [600522.103774] [] wp_page_copy.isra.55+0x95/0x490
    [600522.104558] [] ? __wake_up+0x48/0x60
    [600522.105357] [] do_wp_page+0xab/0x4f0
    [600522.106137] [] ? release_task+0x36b/0x470
    [600522.106902] [] ? eventfd_ctx_read+0x67/0x1c0
    [600522.107659] [] handle_mm_fault+0xc78/0x1900
    [600522.108431] [] __do_page_fault+0x181/0x420
    [600522.109173] [] ? __audit_syscall_exit+0x1e6/0x280
    [600522.109893] [] do_page_fault+0x30/0x80
    [600522.110594] [] ? syscall_trace_leave+0xc6/0x120
    [600522.111288] [] page_fault+0x28/0x30
    [600522.111947] Code: 5d c3 0f 1f 80 00 00 00 00 0f 1f 44 00 00 55 4c 8d 87 d0 01 00 00 48 89 e5 53 48 89 fb 48 83 ec 08 4c 8b 0e 49 8b 41 18 4c 39 ce 8b 40 40 4c 8b 50 30 74 24 48 8b 87 d0 01 00 00 48 8b 7e 08
    [600522.113343] RIP [] nfs_init_commit+0x22/0x130 [nfs]
    [600522.114003] RSP
    [600522.114636] CR2: 0000000000000040

    Fixes: af7cf057 (NFS: Allow multiple commit requests in flight per file)
    CC: stable@vger.kernel.org
    Signed-off-by: Weston Andros Adamson
    Signed-off-by: Anna Schumaker

    Weston Andros Adamson
     
  • Pull VFIO updates from Alex Williamson:

    - Hide INTx on certain known broken devices (Alex Williamson)

    - Additional backdoor reset detection (Alex Williamson)

    - Remove unused iommudata reference (Alexey Kardashevskiy)

    - Use cfg_size to avoid probing extended config space (Alexey
    Kardashevskiy)

    * tag 'vfio-v4.7-rc1' of git://github.com/awilliam/linux-vfio:
    vfio_pci: Test for extended capabilities if config space > 256 bytes
    vfio_iommu_spapr_tce: Remove unneeded iommu_group_get_iommudata
    vfio/pci: Add test for BAR restore
    vfio/pci: Hide broken INTx support from user

    Linus Torvalds
     
  • Pull header warning fix from Dave Airlie:
    "Here is the C++ guards warning fix from Arnd"

    [ Background: there are 'extern "C" { }' guards in include/uapi for the
    GPU headers.

    They should arguably be wrapped somehow, but as it is they caused
    checkpatch to warn because it would trigger on the 'extern' and think
    it's exporting a function or variable from the kernel to user space.

    This just fixes checkpatch. Whether we wrap the C++ guards some way
    in the future will be an independent issue. ]

    * tag 'drm-4.7-rc1-headers-fix' of git://people.freedesktop.org/~airlied/linux:
    headers_check: don't warn about c++ guards

    Linus Torvalds
     
  • Pull parisc updates from Helge Deller:

    - Add native high-resolution timing code for sched_clock() and other
    timing functions based on the processor internal cr16 cycle counters

    - Add syscall tracepoint support

    - Add regset support

    - Speed up get_user() and put_user() functions

    - Updated futex.h to match generic implementation (John David Anglin)

    - A few smaller ftrace build fixes

    - Fixed thuge-gen kernel self test to utilize architectured MAP_HUGETLB
    value

    - Added parisc architecture to seccomp_bpf kernel self test

    - Various typo fixes (Andrea Gelmini)

    * 'parisc-4.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
    parisc: Whitespace cleanups in unistd.h
    parisc: Use long jump to reach ftrace_return_to_handler()
    parisc: Fix typo in fpudispatch.c
    parisc: Fix typos in eisa_eeprom.h
    parisc: Fix typo in ldcw.h
    parisc: Fix typo in pdc.h
    parisc: Update futex.h to match generic implementation
    parisc: Merge ftrace C-helper and assembler functions into .text.hot section
    selftests/thuge-gen: Use platform specific MAP_HUGETLB value
    parisc: Add native high-resolution sched_clock() implementation
    parisc: Add ARCH_TRACEHOOK and regset support
    parisc: Add 64bit get_user() and put_user() for 32bit kernel
    parisc: Simplify and speed up get_user() and put_user()
    parisc: Add syscall tracepoint support

    Linus Torvalds
     
  • nfs_create_request() doesn't return NULL, it returns error pointers.

    Fixes: 67911c8f18b5 ('NFS: Add nfs_commit_file()')
    Signed-off-by: Dan Carpenter
    Signed-off-by: Anna Schumaker

    Dan Carpenter
     

25 May, 2016

1 commit