04 Jul, 2015

11 commits

  • Pull user namespace updates from Eric Biederman:
    "Long ago and far away when user namespaces where young it was realized
    that allowing fresh mounts of proc and sysfs with only user namespace
    permissions could violate the basic rule that only root gets to decide
    if proc or sysfs should be mounted at all.

    Some hacks were put in place to reduce the worst of the damage could
    be done, and the common sense rule was adopted that fresh mounts of
    proc and sysfs should allow no more than bind mounts of proc and
    sysfs. Unfortunately that rule has not been fully enforced.

    There are two kinds of gaps in that enforcement. Only filesystems
    mounted on empty directories of proc and sysfs should be ignored but
    the test for empty directories was insufficient. So in my tree
    directories on proc, sysctl and sysfs that will always be empty are
    created specially. Every other technique is imperfect as an ordinary
    directory can have entries added even after a readdir returns and
    shows that the directory is empty. Special creation of directories
    for mount points makes the code in the kernel a smidge clearer about
    it's purpose. I asked container developers from the various container
    projects to help test this and no holes were found in the set of mount
    points on proc and sysfs that are created specially.

    This set of changes also starts enforcing the mount flags of fresh
    mounts of proc and sysfs are consistent with the existing mount of
    proc and sysfs. I expected this to be the boring part of the work but
    unfortunately unprivileged userspace winds up mounting fresh copies of
    proc and sysfs with noexec and nosuid clear when root set those flags
    on the previous mount of proc and sysfs. So for now only the atime,
    read-only and nodev attributes which userspace happens to keep
    consistent are enforced. Dealing with the noexec and nosuid
    attributes remains for another time.

    This set of changes also addresses an issue with how open file
    descriptors from /proc//ns/* are displayed. Recently readlink of
    /proc//fd has been triggering a WARN_ON that has not been
    meaningful since it was added (as all of the code in the kernel was
    converted) and is not now actively wrong.

    There is also a short list of issues that have not been fixed yet that
    I will mention briefly.

    It is possible to rename a directory from below to above a bind mount.
    At which point any directory pointers below the renamed directory can
    be walked up to the root directory of the filesystem. With user
    namespaces enabled a bind mount of the bind mount can be created
    allowing the user to pick a directory whose children they can rename
    to outside of the bind mount. This is challenging to fix and doubly
    so because all obvious solutions must touch code that is in the
    performance part of pathname resolution.

    As mentioned above there is also a question of how to ensure that
    developers by accident or with purpose do not introduce exectuable
    files on sysfs and proc and in doing so introduce security regressions
    in the current userspace that will not be immediately obvious and as
    such are likely to require breaking userspace in painful ways once
    they are recognized"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
    vfs: Remove incorrect debugging WARN in prepend_path
    mnt: Update fs_fully_visible to test for permanently empty directories
    sysfs: Create mountpoints with sysfs_create_mount_point
    sysfs: Add support for permanently empty directories to serve as mount points.
    kernfs: Add support for always empty directories.
    proc: Allow creating permanently empty directories that serve as mount points
    sysctl: Allow creating permanently empty directories that serve as mountpoints.
    fs: Add helper functions for permanently empty directories.
    vfs: Ignore unlocked mounts in fs_fully_visible
    mnt: Modify fs_fully_visible to deal with locked ro nodev and atime
    mnt: Refactor the logic for mounting sysfs and proc in a user namespace

    Linus Torvalds
     
  • Pull remoteproc updates from Ohad Ben-Cohen:

    - remoteproc fixes/cleanups from Suman Anna

    - new remoteproc TI Wakeup M3 driver from Dave Gerlach

    - remoteproc core support for TI's Wakeup M3 driver from both Dave and Suman

    - tiny remoteproc build fix from myself

    * tag 'remoteproc-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc:
    remoteproc: fix !CONFIG_OF build breakage
    remoteproc/wkup_m3: add a remoteproc driver for TI Wakeup M3
    Documentation: dt: add bindings for TI Wakeup M3 processor
    remoteproc: add a rproc ops for performing address translation
    remoteproc: introduce rproc_get_by_phandle API
    remoteproc: fix various checkpatch warnings
    remoteproc/davinci: fix quoted split string checkpatch warning
    remoteproc/ste: add blank lines after declarations

    Linus Torvalds
     
  • Pull hwspinlock updates from Ohad Ben-Cohen:

    - hwspinlock core DT support from Suman Anna

    - OMAP hwspinlock DT support from Suman Anna

    - QCOM hwspinlock DT support from Bjorn Andersson

    - a new CSR atlas7 hwspinlock driver from Wei Chen

    - CSR atlas7 hwspinlock DT binding document from Wei Chen

    - a tiny QCOM hwspinlock driver fix from Bjorn Andersson

    * tag 'hwspinlock-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/hwspinlock:
    hwspinlock: qcom: Correct msb in regmap_field
    DT: hwspinlock: add the CSR atlas7 hwspinlock bindings document
    hwspinlock: add a CSR atlas7 driver
    hwspinlock: qcom: Add support for Qualcomm HW Mutex block
    DT: hwspinlock: Add binding documentation for Qualcomm hwmutex
    hwspinlock/omap: add support for dt nodes
    Documentation: dt: add the omap hwspinlock bindings document
    hwspinlock/core: add device tree support
    Documentation: dt: add common bindings for hwspinlock

    Linus Torvalds
     
  • Pull arm64 fixes (and cleanups) from Catalin Marinas:
    "Various arm64 fixes:

    - suspicious RCU usage warning
    - BPF (out of bounds array read and endianness conversion)
    - perf (of_node usage after of_node_put, cpu_pmu->plat_device
    assignment)
    - huge pmd/pud check for value 0
    - rate-limiting should only take unhandled signals into account

    Clean-up:

    - incorrect use of pgprot_t type
    - unused header include
    - __init annotation to arm_cpuidle_init
    - pr_debug instead of pr_error for disabled GICC entries in
    ACPI/MADT"

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: Fix show_unhandled_signal_ratelimited usage
    ARM64 / SMP: Switch pr_err() to pr_debug() for disabled GICC entry
    arm64: cpuidle: add __init section marker to arm_cpuidle_init
    arm64: Don't report clear pmds and puds as huge
    arm64: perf: fix unassigned cpu_pmu->plat_device when probing PMU PPIs
    arm64: perf: Don't use of_node after putting it
    arm64: fix incorrect use of pgprot_t variable
    arm64/hw_breakpoint.c: remove unnecessary header
    arm64: bpf: fix endianness conversion bugs
    arm64: bpf: fix out-of-bounds read in bpf2a64_offset()
    ARM64: smp: Fix suspicious RCU usage with ipi tracepoints

    Linus Torvalds
     
  • Pull nios2 update from Ley Foon Tan:
    "Check number of timer instances"

    * tag 'nios2-v4.2' of git://git.rocketboards.org/linux-socfpga-next:
    nios2: check number of timer instances

    Linus Torvalds
     
  • Pull more hwmon updates from Jean Delvare.

    * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
    hwmon: (w83627ehf) Use swap() in w82627ehf_swap_tempreg()
    hwmon: Document which I2C addresses can be probed
    hwmon: (w83792d) Additional PWM outputs support

    Linus Torvalds
     
  • Pull block fixes from Jens Axboe:
    "Mainly sending this off now for the writeback fixes, since they fix a
    real regression introduced with the cgroup writeback changes. The
    NVMe fix could wait for next pull for this series, but it's simple
    enough that we might as well include it.

    This contains:

    - two cgroup writeback fixes from Tejun, fixing a user reported issue
    with luks crypt devices hanging when being closed.

    - NVMe error cleanup fix from Jon Derrick, fixing a case where we'd
    attempt to free an unregistered IRQ"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    NVMe: Fix irq freeing when queue_request_irq fails
    writeback: don't drain bdi_writeback_congested on bdi destruction
    writeback: don't embed root bdi_writeback_congested in bdi_writeback

    Linus Torvalds
     
  • Pull fbdev fix from Tomi Valkeinen:
    "Fix display regression on TI AM4xxx boards"

    * tag 'fbdev-fixes-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux:
    OMAPDSS: fix probing if rfbi device is enabled

    Linus Torvalds
     
  • Pull EDAC fix from Borislav Petkov:
    "A build fix for octeon_edac from Aaro Koskinen"

    * tag 'edac_urgent_for_4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
    EDAC, octeon: Fix broken build due to model helper renames

    Linus Torvalds
     
  • Signed-off-by: Stephen Rothwell
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • Commit 86dca36e6ba introduced ratelimited usage for
    'unhandled_signal' messages.
    The commit checks the ratelimit irrespective of whether
    the signal is handled or not, which is wrong and leads
    to false reports like the below in dmesg :

    __do_user_fault: 127 callbacks suppressed

    Do the ratelimit check only if the signal is unhandled.

    Fixes: 86dca36e6ba0 ("arm64: use private ratelimit state along with show_unhandled_signals")
    Cc: Vladimir Murzin
    Signed-off-by: Suzuki K. Poulose
    Signed-off-by: Catalin Marinas

    Suzuki K. Poulose
     

03 Jul, 2015

27 commits

  • Use kernel.h macro definition.

    Thanks to Julia Lawall for Coccinelle scripting support.

    Signed-off-by: Fabian Frederick
    Signed-off-by: Jean Delvare

    Fabian Frederick
     
  • Add an item to the checklist when submitting a new hwmon driver: only
    some I2C addresses can be probed, others should not for safety
    reasons.

    Signed-off-by: Jean Delvare
    Reviewed-by: Guenter Roeck

    Jean Delvare
     
  • Add pwm[4-7] and the associated pwm[4-7]_mode attributes.

    Signed-off-by: Roger Lucas
    Signed-off-by: Jean Delvare

    Roger Lucas
     
  • It is normal that firmware presents GICC entry or entries (processors)
    with disabled flag in ACPI MADT, taking a system of 16 cpus for example,
    ACPI firmware may present 8 ebabled first with another 8 cpus disabled
    in MADT, the disabled cpus can be hot-added later.

    Firmware may also present more cpus than the hardware actually has, but
    disabled the unused ones, and easily enable it when the hardware has such
    cpus to make the firmware code scalable.

    So that's not an error for disabled cpus in MADT, we can switch pr_err()
    to pr_debug() to make the boot a little quieter by default.

    Since hwid for disabled cpus often are invalid, and we check invalid hwid
    first in the code, for use case that hot add cpus later will be filtered
    out and will not be counted in possible cups, so move this check before
    the hwid one to prepare the code to count for disabeld cpus when cpu
    hot-plug is introduced.

    Signed-off-by: Hanjun Guo
    Reviewed-by: Al Stone
    Signed-off-by: Catalin Marinas

    Hanjun Guo
     
  • Pull ACPICA updates from Rafael Wysocki:
    "Additional ACPICA material for v4.2-rc1

    This will update the ACPICA code in the kernel to upstream revision
    20150619 (a bug-fix release mostly including stable-candidate fixes)
    and restore an earlier ACPICA commit that had to be reverted due to a
    regression introduced by it (the regression is addressed by
    blacklisting the only known system affected by it to date).

    The only new feature added by this update is the support for
    overriding objects in the ACPI namespace and a new ACPI table that can
    be used for that called the Override System Definition Table (OSDT).
    That should allow us to "patch" the ACPI namespace built from
    incomplete or incorrect ACPI System Definition tables (DSDT, SSDT)
    during system startup without the need to provide replacements for all
    of those tables in the future.

    Specifics:

    - Fix system resume problems related to 32-bit and 64-bit versions of
    the Firmware ACPI Control Structure (FACS) in the firmare (Lv
    Zheng)

    - Fix double initialization of the FACS (Lv Zheng)

    - Add _CLS object processing code to ACPICA (Suravee Suthikulpanit)

    - Add support for the (currently missing) new GIC version field in
    the Multiple APIC Description Table (MADT) (Hanjun Guo)

    - Add support for overriding objects in the ACPI namespace to ACPICA
    and OSDT support (Lv Zheng, Bob Moore, Zhang Rui)

    - Updates related to the TCPA and TPM2 ACPI tables (Bob Moore)

    - Restore the commit modifying _REV to always return "2" (as required
    by ACPI 6) and add a blacklisting mechanism for systems that may be
    affected by that change (Rafael J Wysocki)

    - Assorted fixes and cleanups (Bob Moore, Lv Zheng, Sascha Wildner)"

    * tag 'acpica-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (28 commits)
    Revert 'Revert "ACPICA: Permanently set _REV to the value '2'."'
    ACPI / init: Make it possible to override _REV
    ACPICA: Update version to 20150619
    ACPICA: Comment update, no functional change
    ACPICA: Update TPM2 ACPI table
    ACPICA: Update definitions for the TCPA and TPM2 ACPI tables
    ACPICA: Split C library prototypes to new header
    ACPICA: De-macroize calls to standard C library functions
    ACPI / acpidump: Update acpidump manual
    ACPICA: acpidump: Convert the default behavior to dump from /sys/firmware/acpi/tables
    ACPICA: acpidump: Allow customized tables to be dumped without accessing /dev/mem
    ACPICA: Cleanup output for the ASL Debug object
    ACPICA: Update for acpi_install_table memory types
    ACPICA: Namespace: Change namespace override to avoid node deletion
    ACPICA: Namespace: Add support of OSDT table
    ACPICA: Namespace: Add support to allow overriding objects
    ACPICA: ACPI 6.0: Add values for MADT GIC version field
    ACPICA: Utilities: Add _CLS processing
    ACPICA: Add dragon_fly support to unix file mapping file
    ACPICA: EFI: Add EFI interface definitions to eliminate dependency of GNU EFI
    ...

    Linus Torvalds
     
  • It's a bug in our Makefile rules, make it show what the changing
    certificate list was, and make it a warning so that people actually see
    it.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Revert commit ff284f37fc0e (Revert "ACPICA: Permanently set _REV to
    the value '2'.) as the regression introduced by commit b1ef29725865
    reverted by it is now addressed via a blacklist entry.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • The platform firmware on some systems expects Linux to return "5" as
    the supported ACPI revision which makes it expose system configuration
    information in a special way.

    For example, based on what ACPI exports as the supported revision,
    Dell XPS 13 (2015) configures its audio device to either work in HDA
    mode or in I2S mode, where the former is supposed to be used on Linux
    until the latter is fully supported (in the kernel as well as in user
    space).

    Since ACPI 6 mandates that _REV should return "2" if ACPI 2 or later
    is supported by the OS, a subsequent change will make that happen, so
    make it possible to override that on systems where "5" is expected to
    be returned for Linux to work correctly one them (such as the Dell
    machine mentioned above).

    Original-by: Dominik Brodowski
    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • Pull kbuild updates from Michal Marek:
    "Just a few kbuild core commits this time:

    - kallsyms fix for CONFIG_XIP_KERNEL

    - bashisms in scripts/link-vmlinux.sh fixed

    - workaround to make DEBUG_INFO_REDUCED more useful yet still space
    efficient

    - clang is not wrongly detected when cross-compiling"

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    kbuild: include core debug info when DEBUG_INFO_REDUCED
    scripts: link-vmlinux: Don't pass page offset to kallsyms if XIP Kernel
    scripts: fix link-vmlinux.sh bash-ism
    Makefile: Fix detection of clang when cross-compiling

    Linus Torvalds
     
  • Pull kconfig updates from Michal Marek:

    - kconfig conditions can use usual less/greater than comparisons

    - kconfig warns about stray characters in Kconfig files

    - bogus expression simplification removed

    - some minor fixes

    * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    kconfig: re-generate *.c_shipped files after previous change
    kconfig: allow use of relations other than (in)equality
    kconfig: don't silently ignore unhandled characters
    kconfig: Wrap long "make help" text lines
    scripts/kconfig/Makefile: Cosmetic fixes
    scripts/kconfig/Makefile: Fix spelling of Qt
    Kconfig: Remove bad inference rules expr_eliminate_dups2()

    Linus Torvalds
     
  • …l/git/groeck/linux-staging

    Pull hwmon fixes from Guenter Roeck:
    "Two patches headed for stable:
    - Fix broken output scaling in mcp3021 driver
    - Fix attribute visibility in nct7802 driver

    One regression:
    - Fix name attribute in dell-smm-hwmon driver"

    * tag 'hwmon-for-linus-v4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: (mcp3021) Fix broken output scaling
    hwmon: (nct7802) fix visibility of temp3
    hwmon: (dell-smm-hwmon) Use a valid name attribute

    Linus Torvalds
     
  • Pull ia64 boot noise reduction fix from Tony Luck:
    "Remove some boot noise from a now-invalid check that pages are
    reserved"

    * tag 'please-pull-put_kernel_page' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    [IA64] Drop debug test/printk that some special pages are marked reserved

    Linus Torvalds
     
  • Pull ARM SoC late fixes and dependencies from Kevin Hilman:
    "This is a collection of a few late fixes and other misc stuff that had
    dependencies on things being merged from other trees.

    Other than the fixes, the primary feature being added is the
    conversion of some OMAP drivers to the new generic wakeirq interface"

    * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: multi_v7_defconfig: Enable BRCMNAND driver
    ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND
    ARM: at91/dt: update udc compatible strings
    ARM: at91/dt: trivial: fix USB udc compatible string
    arm64: dts: Add APM X-Gene standby GPIO controller DTS entries
    soc: qcom: spm: Fix idle on THUMB2 kernels
    ARM: dove: fix legacy dove IRQ numbers
    ARM: mvebu: fix suspend to RAM on big-endian configurations
    ARM: mvebu: adjust Armada XP DT spi muxing after pinctrl function rename
    serial: 8250_omap: Move wake-up interrupt to generic wakeirq
    serial: omap: Switch wake-up interrupt to generic wakeirq
    mmc: omap_hsmmc: Change wake-up interrupt to use generic wakeirq

    Linus Torvalds
     
  • Pull radeon and amdgpu fixes from Alex Deucher:
    "First round of fixes for 4.2 for radeon and amdgpu. Stuff all over
    the place:

    - hibernation, suspend fixes for radeon and amdgpu
    - radeon audio fix
    - amdgpu ioctl optimzations and fixes
    - amdgpu VCE cs checker improvements
    - misc bug fixes"

    [ Dave on vacation, pulling directly ]

    * 'drm-next-4.2' of git://people.freedesktop.org/~agd5f/linux: (30 commits)
    drm/radeon: only check the sink type on DP connectors
    drm/amdgpu: add flag to delay VM updates
    drm/amdgpu: add optional dependencies to the CS IOCTL v2
    drm/amdgpu: recreate fence from user seq
    gpu/drm/amdgpu: Fix build when CONFIG_DEBUG_FS is not set
    Revert "drm/radeon: dont switch vt on suspend"
    drm/amdgpu: disable enable_nb_ps_policy temporarily
    drm/amdgpu: correct define SMU_EnabledFeatureScoreboard_SclkDpmOn
    drm/amdgpu: allocate ip_block_enabled memory in common code
    drm/amdgpu: remove unnecessary check before kfree
    drm/amdgpu: use kzalloc for allocating one thing
    drm/radeon: fix adding all VAs to the freed list on remove v2
    drm/amdgpu: add chunk id validity check
    drm/amdgpu: fix crash on invalid CS IOCTL
    drm/amdgpu: reset wptr at cp compute resume (v2)
    drm/amdgpu: check VCE feedback and bitstream index
    drm/amdgpu: make VCE handle check more strict
    drm/amdgpu: check VCE relocation buffer range
    drm/amdgpu: silence invalid error message
    drm/amdgpu: fix wrong type
    ...

    Linus Torvalds
     
  • Pull intel drm fixes from Jani Nikula:
    "Almost all of it is regression fixes all around, with cc: stable, and
    then there's Ander's fix for one of the warnings you reported. We're
    still working on the rest"

    [ Dave is on vacation, and Jani is heading out on vacation too ]

    * tag 'drm-intel-next-fixes-2015-07-02' of git://anongit.freedesktop.org/drm-intel:
    drm/i915: Clear pipe's pll hw state in hsw_dp_set_ddi_pll_sel()
    drm/i915: fix backlight after resume on 855gm
    agp/intel: Fix typo in needs_ilk_vtd_wa()
    drm/i915/ppgtt: Break loop in gen8_ppgtt_clear_range failure path
    drm/i915: Fix IPS related flicker

    Linus Torvalds
     
  • In commit 92923ca3aace "mm: meminit: only set page reserved in the memblock region"
    we dropped setting the reserved bits for all pages. This results in some warnings
    on ia64:

    put_kernel_page: page at 0xe000000005588000 not in reserved memory
    put_kernel_page: page at 0xe000000005588000 not in reserved memory
    put_kernel_page: page at 0xe000000005580000 not in reserved memory
    put_kernel_page: page at 0xe000000005580000 not in reserved memory
    put_kernel_page: page at 0xe000000005580000 not in reserved memory
    put_kernel_page: page at 0xe000000005580000 not in reserved memory

    the two different pages match up with two objects from the loaded kernel
    that get mapped by arch/ia64/mm/init.c:setup_gate()

    a000000101588000 D __start_gate_section
    a000000101580000 D empty_zero_page

    In a discussion with Mel Gorman:
    http://lkml.kernel.org/r/20150526102219.GB13750%40suse.de
    he suggested that while the preferred approach might be to
    set the reserved bit for these pages, it would also be OK
    to just drop the test:
    "as it's a debugging check that is ia-64 specific"

    After hunting around a bit and failin to find a good place to mark these
    pages as reserved - I decided to just delete the test.

    Signed-off-by: Tony Luck

    Tony Luck
     
  • Pull Ceph updates from Sage Weil:
    "We have a pile of bug fixes from Ilya, including a few patches that
    sync up the CRUSH code with the latest from userspace.

    There is also a long series from Zheng that fixes various issues with
    snapshots, inline data, and directory fsync, some simplification and
    improvement in the cap release code, and a rework of the caching of
    directory contents.

    To top it off there are a few small fixes and cleanups from Benoit and
    Hong"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (40 commits)
    rbd: use GFP_NOIO in rbd_obj_request_create()
    crush: fix a bug in tree bucket decode
    libceph: Fix ceph_tcp_sendpage()'s more boolean usage
    libceph: Remove spurious kunmap() of the zero page
    rbd: queue_depth map option
    rbd: store rbd_options in rbd_device
    rbd: terminate rbd_opts_tokens with Opt_err
    ceph: fix ceph_writepages_start()
    rbd: bump queue_max_segments
    ceph: rework dcache readdir
    crush: sync up with userspace
    crush: fix crash from invalid 'take' argument
    ceph: switch some GFP_NOFS memory allocation to GFP_KERNEL
    ceph: pre-allocate data structure that tracks caps flushing
    ceph: re-send flushing caps (which are revoked) in reconnect stage
    ceph: send TID of the oldest pending caps flush to MDS
    ceph: track pending caps flushing globally
    ceph: track pending caps flushing accurately
    libceph: fix wrong name "Ceph filesystem for Linux"
    ceph: fix directory fsync
    ...

    Linus Torvalds
     
  • Pull NFS client updates from Trond Myklebust:
    "Highlights include:

    Stable patches:
    - Fix a crash in the NFSv4 file locking code.
    - Fix an fsync() regression, where we were failing to retry I/O in
    some circumstances.
    - Fix an infinite loop in NFSv4.0 OPEN stateid recovery
    - Fix a memory leak when an attempted pnfs fails.
    - Fix a memory leak in the backchannel code
    - Large hostnames were not supported correctly in NFSv4.1
    - Fix a pNFS/flexfiles bug that was impeding error reporting on I/O.
    - Fix a couple of credential issues in pNFS/flexfiles

    Bugfixes + cleanups:
    - Open flag sanity checks in the NFSv4 atomic open codepath
    - More NFSv4 delegation related bugfixes
    - Various NFSv4.1 backchannel bugfixes and cleanups
    - Fix the NFS swap socket code
    - Various cleanups of the NFSv4 SETCLIENTID and EXCHANGE_ID code
    - Fix a UDP transport deadlock issue

    Features:
    - More RDMA client transport improvements
    - NFSv4.2 LAYOUTSTATS functionality for pnfs flexfiles"

    * tag 'nfs-for-4.2-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (87 commits)
    nfs: Remove invalid tk_pid from debug message
    nfs: Remove invalid NFS_ATTR_FATTR_V4_REFERRAL checking in nfs4_get_rootfh
    nfs: Drop bad comment in nfs41_walk_client_list()
    nfs: Remove unneeded micro checking of CONFIG_PROC_FS
    nfs: Don't setting FILE_CREATED flags always
    nfs: Use remove_proc_subtree() instead remove_proc_entry()
    nfs: Remove unused argument in nfs_server_set_fsinfo()
    nfs: Fix a memory leak when meeting an unsupported state protect
    nfs: take extra reference to fl->fl_file when running a LOCKU operation
    NFSv4: When returning a delegation, don't reclaim an incompatible open mode.
    NFSv4.2: LAYOUTSTATS is optional to implement
    NFSv4.2: Fix up a decoding error in layoutstats
    pNFS/flexfiles: Fix the reset of struct pgio_header when resending
    pNFS/flexfiles: Turn off layoutcommit for servers that don't need it
    pnfs/flexfiles: protect ktime manipulation with mirror lock
    nfs: provide pnfs_report_layoutstat when NFS42 is disabled
    nfs: verify open flags before allowing open
    nfs: always update creds in mirror, even when we have an already connected ds
    nfs: fix potential credential leak in ff_layout_update_mirror_cred
    pnfs/flexfiles: report layoutstat regularly
    ...

    Linus Torvalds
     
  • Pull overlayfs updates from Miklos Szeredi:
    "This relaxes the requirements on the lower layer filesystem: now ones
    that implement .d_revalidate, such as NFS, can be used.

    Upper layer filesystems still has the "no .d_revalidate" requirement.

    Also a bad interaction with jffs2 locking has been fixed"

    * 'overlayfs-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
    ovl: lookup whiteouts outside iterate_dir()
    ovl: allow distributed fs as lower layer
    ovl: don't traverse automount points

    Linus Torvalds
     
  • Pull fuse updates from Miklos Szeredi:
    "This is the start of improving fuse scalability.

    An input queue and a processing queue is split out from the monolithic
    fuse connection, each of those having their own spinlock. The end of
    the patchset adds the ability to clone a fuse connection. This means,
    that instead of having to read/write requests/answers on a single fuse
    device fd, the fuse daemon can have multiple distinct file descriptors
    open. Each of those can be used to receive requests and send answers,
    currently the only constraint is that a request must be answered on
    the same fd as it was read from.

    This can be extended further to allow binding a device clone to a
    specific CPU or NUMA node.

    Based on a patchset by Srinivas Eeda and Ashish Samant. Thanks to
    Ashish for the review of this series"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: (40 commits)
    fuse: update MAINTAINERS entry
    fuse: separate pqueue for clones
    fuse: introduce per-instance fuse_dev structure
    fuse: device fd clone
    fuse: abort: no fc->lock needed for request ending
    fuse: no fc->lock for pqueue parts
    fuse: no fc->lock in request_end()
    fuse: cleanup request_end()
    fuse: request_end(): do once
    fuse: add req flag for private list
    fuse: pqueue locking
    fuse: abort: group pqueue accesses
    fuse: cleanup fuse_dev_do_read()
    fuse: move list_del_init() from request_end() into callers
    fuse: duplicate ->connected in pqueue
    fuse: separate out processing queue
    fuse: simplify request_wait()
    fuse: no fc->lock for iqueue parts
    fuse: allow interrupt queuing without fc->lock
    fuse: iqueue locking
    ...

    Linus Torvalds
     
  • Pull init.h/module.h fragility fixes from Paul Gortmaker:
    "Fixup various init.h misuses that are fragile wrt code moving to
    module.h

    What started as a removal of no longer required include
    due to the earlier __cpuinit and __devinit removal led to the
    observation that some module specfic support was living in init.h
    itself, thus preventing the full removal from introducing compile
    regressions.

    This series includes a few final fixups needed prior to the relocation
    of the modular init code from to . These are
    things that weren't easily categorized into any of the other previous
    series categories already requested for pull.

    That said, each fixup branch (including this one) is independent and
    there are no ordering constraints. Only the final code relocation
    (which is NOT in this pull) requires that all my cleanup branches be
    merged first"

    * tag 'module-misc-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
    tile: add init.h to usb.c to avoid compile failure
    arm: fix implicit #include in entry asm.
    x86: replace __init_or_module with __init in non-modular vsmp_64.c

    Linus Torvalds
     
  • …/kernel/git/paulg/linux

    Pull module_platform_driver replacement from Paul Gortmaker:
    "Replace module_platform_driver with builtin_platform driver in non
    modules.

    We see an increasing number of non-modular drivers using
    modular_driver() type register functions. There are several downsides
    to letting this continue unchecked:

    - The code can appear modular to a reader of the code, and they won't
    know if the code really is modular without checking the Makefile
    and Kconfig to see if compilation is governed by a bool or
    tristate.

    - Coders of drivers may be tempted to code up an __exit function that
    is never used, just in order to satisfy the required three args of
    the modular registration function.

    - Non-modular code ends up including the <module.h> which increases
    CPP overhead that they don't need.

    - It hinders us from performing better separation of the module init
    code and the generic init code.

    So here we introduce similar macros for builtin drivers. Then we
    convert builtin drivers (controlled by a bool Kconfig) by making the
    following type of mapping:

    module_platform_driver() ---> builtin_platform_driver()
    module_platform_driver_probe() ---> builtin_platform_driver_probe().

    The set of drivers that are converted here are just the ones that
    showed up as relying on an implicit include of <module.h> during a
    pending header cleanup. So we convert them here vs adding an include
    of <module.h> to non-modular code to avoid compile fails. Additonal
    conversions can be done asynchronously at any time.

    Once again, an unused module_exit function that is removed here
    appears in the diffstat as an outlier wrt all the other changes"

    * tag 'module-builtin_driver-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
    drivers/clk: convert sunxi/clk-mod0.c to use builtin_platform_driver
    drivers/power: Convert non-modular syscon-reboot to use builtin_platform_driver
    drivers/soc: Convert non-modular soc-realview to use builtin_platform_driver
    drivers/soc: Convert non-modular tegra/pmc to use builtin_platform_driver
    drivers/cpufreq: Convert non-modular s5pv210-cpufreq.c to use builtin_platform_driver
    drivers/cpuidle: Convert non-modular drivers to use builtin_platform_driver
    drivers/platform: Convert non-modular pdev_bus to use builtin_platform_driver
    platform_device: better support builtin boilerplate avoidance

    Linus Torvalds
     
  • …scm/linux/kernel/git/paulg/linux

    Pull module_init replacement part two from Paul Gortmaker:
    "Replace module_init with appropriate alternate initcall in non
    modules.

    This series converts non-modular code that is using the module_init()
    call to hook itself into the system to instead use one of our
    alternate priority initcalls.

    Unlike the previous series that used device_initcall and hence was a
    runtime no-op, these commits change to one of the alternate initcalls,
    because (a) we have them and (b) it seems like the right thing to do.

    For example, it would seem logical to use arch_initcall for arch
    specific setup code and fs_initcall for filesystem setup code.

    This does mean however, that changes in the init ordering will be
    taking place, and so there is a small risk that some kind of implicit
    init ordering issue may lie uncovered. But I think it is still better
    to give these ones sensible priorities than to just assign them all to
    device_initcall in order to exactly preserve the old ordering.

    Thad said, we have already made similar changes in core kernel code in
    commit c96d6660dc65 ("kernel: audit/fix non-modular users of
    module_init in core code") without any regressions reported, so this
    type of change isn't without precedent. It has also got the same
    local testing and linux-next coverage as all the other pull requests
    that I'm sending for this merge window have got.

    Once again, there is an unused module_exit function removal that shows
    up as an outlier upon casual inspection of the diffstat"

    * tag 'module_init-alternate_initcall-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
    x86: perf_event_intel_pt.c: use arch_initcall to hook in enabling
    x86: perf_event_intel_bts.c: use arch_initcall to hook in enabling
    mm/page_owner.c: use late_initcall to hook in enabling
    lib/list_sort: use late_initcall to hook in self tests
    arm: use subsys_initcall in non-modular pl320 IPC code
    powerpc: don't use module_init for non-modular core hugetlb code
    powerpc: use subsys_initcall for Freescale Local Bus
    x86: don't use module_init for non-modular core bootflag code
    netfilter: don't use module_init/exit in core IPV4 code
    fs/notify: don't use module_init for non-modular inotify_user code
    mm: replace module_init usages with subsys_initcall in nommu.c

    Linus Torvalds
     
  • …/linux/kernel/git/paulg/linux

    Pull module_init replacement part one from Paul Gortmaker:
    "Replace module_init with equivalent device_initcall in non modules.

    This series of commits converts non-modular code that is using the
    module_init() call to hook itself into the system to instead use
    device_initcall().

    The conversion is a runtime no-op, since module_init actually becomes
    __initcall in the non-modular case, and that in turn gets mapped onto
    device_initcall. A couple files show a larger negative diffstat,
    representing ones that had a module_exit function that we remove here
    vs previously relying on the linker to dispose of it.

    We make this conversion now, so that we can relocate module_init from
    init.h into module.h in the future.

    The files changed here are just limited to those that would otherwise
    have to add module.h to obviously non-modular code, in order to avoid
    a compile fail, as testing has shown"

    * tag 'module_init-device_initcall-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
    MIPS: don't use module_init in non-modular cobalt/mtd.c file
    drivers/leds: don't use module_init in non-modular leds-cobalt-raq.c
    cris: don't use module_init for non-modular core eeprom.c code
    tty/metag_da: Avoid module_init/module_exit in non-modular code
    drivers/clk: don't use module_init in clk-nomadik.c which is non-modular
    xtensa: don't use module_init for non-modular core network.c code
    sh: don't use module_init in non-modular psw.c code
    mn10300: don't use module_init in non-modular flash.c code
    parisc64: don't use module_init for non-modular core perf code
    parisc: don't use module_init for non-modular core pdc_cons code
    cris: don't use module_init for non-modular core intmem.c code
    ia64: don't use module_init in non-modular sim/simscsi.c code
    ia64: don't use module_init for non-modular core kernel/mca.c code
    arm: don't use module_init in non-modular mach-vexpress/spc.c code
    powerpc: don't use module_init in non-modular 83xx suspend code
    powerpc: use device_initcall for registering rtc devices
    x86: don't use module_init in non-modular devicetree.c code
    x86: don't use module_init in non-modular intel_mid_vrtc.c

    Linus Torvalds
     
  • Pull implicit module.h fixes from Paul Gortmaker:
    "Fix up implicit users that will break later.

    The files changed here are simply modular source files that are
    implicitly relying on being present. We fix them up now,
    so that we can decouple some of the module related init code from the
    core init code in the future.

    The addition of the module.h include to several files here is also a
    no-op from a code generation point of view, else there would already
    be compile issues with these files today.

    There may be lots more implicit includes of in tree, but
    these are the ones that extensive build test coverage has shown that
    must be fixed in order to avoid build breakage fallout for the pending
    module.h init.h code relocation we desire to complete"

    * tag 'module-implicit-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
    frv: add module.h to mb93090-mb00/flash.c to avoid compile fail
    drivers/cpufreq: include for modular exynos-cpufreq.c code
    drivers/staging: include for modular android tegra_ion code
    crypto/asymmetric_keys: pkcs7_key_type needs module.h
    sh: mach-highlander/psw.c is tristate and should use module.h
    drivers/regulator: include for modular max77802 code
    drivers/pcmcia: include for modular xxs1500_ss code
    drivers/hsi: include for modular omap_ssi code
    drivers/gpu: include for modular rockchip code
    drivers/gpio: include for modular crystalcove code
    drivers/clk: include for clk-max77xxx modular code

    Linus Torvalds
     
  • Pull __cpuinit removal from Paul Gortmaker:
    "Remove __cpuinit macros and users.

    We removed the __cpuinit stuff in 3.11-rc1 with commit 22f0a2736774
    ("init.h: remove __cpuinit sections from the kernel") but we left some
    no-op stubs as a courtesy to unmerged code.

    Here we get rid of the stubs as well, since (as can be seen in these
    changes) they are enabling use cases to sneak back in, primarily from
    older BSP code that has been living out of tree for some time prior to
    getting mainlined. So we get rid of these "new" users 1st and then
    get rid of the stubs.

    Obviously, getting rid of the stubs can't happen until all the users
    are gone, so I had to keep this together as a series, even though some
    of these commits since got picked up into maintainers trees as well.

    The nature of this change is such that it should have zero impact on
    the generated runtime.

    This is one of several independent cleanup branches aimed at enabling
    better organization in the init.h and module.h code. They have been
    getting coverage in the linux-next tree for the last month, in
    addition to my local testing, which also covers approximately a half
    dozen or more architectures"

    * tag 'cpuinit-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
    init: delete the __cpuinit related stubs
    kernel/cpu.c: remove new instance of __cpuinit that crept back in
    sched/core: remove __cpuinit section tag that crept back in.
    mips/mm/tlbex: remove new instance of __cpuinit that crept back in
    mips/c-r4k: remove legacy __cpuinit section that crept in
    mips/bcm77xx: remove legacy __cpuinit sections that crept in
    mips/ath25: remove legacy __cpuinit section that crept in
    arm/mach-hisi: remove legacy __CPUINIT section that crept in
    arm/mach-rockchip: remove legacy __cpuinit section that crept in
    arm/mach-mvebu: remove legacy __cpuinit sections that crept in
    arm/mach-keystone: remove legacy __cpuinit sections that crept in

    Linus Torvalds
     
  • It is not needed after booting, this patch moves the arm_cpuidle_init()
    function to the __init section.

    Signed-off-by: Jisheng Zhang
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Catalin Marinas

    Jisheng Zhang
     

02 Jul, 2015

2 commits

  • Fixes an issue when queue_reuest_irq fails in nvme_setup_io_queues. This
    patch initializes all vectors to -1 and resets the vector to -1 in the
    case of a failure in queue_request_irq. This avoids the free_irq in
    nvme_suspend_queue if the queue did not get an irq.

    Signed-off-by: Jon Derrick
    Signed-off-by: Jens Axboe

    Jon Derrick
     
  • 52ebea749aae ("writeback: make backing_dev_info host cgroup-specific
    bdi_writebacks") made bdi (backing_dev_info) host per-cgroup wb's
    (bdi_writeback's). As the congested state needs to be per-wb and
    referenced from blkcg side and multiple wbs, the patch made all
    non-root cong's (bdi_writeback_congested's) reference counted and
    indexed on bdi.

    When a bdi is destroyed, cgwb_bdi_destroy() tries to drain all
    non-root cong's; however, this can hang indefinitely because wb's can
    also be referenced from blkcg_gq's which are destroyed after bdi
    destruction is complete.

    This patch fixes the bug by updating bdi destruction to not wait for
    cong's to drain. A cong is unlinked from bdi->cgwb_congested_tree on
    bdi destuction regardless of its reference count as the bdi may go
    away any point after destruction. wb_congested_put() checks whether
    the cong is already unlinked on release.

    Signed-off-by: Tejun Heo
    Reported-by: Jon Christopherson
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=100681
    Fixes: 52ebea749aae ("writeback: make backing_dev_info host cgroup-specific bdi_writebacks")
    Tested-by: Jon Christopherson
    Signed-off-by: Jens Axboe

    Tejun Heo