26 May, 2016

17 commits

  • The ones that are taking it exclusive, that is...

    Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • 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
     
  • 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
     
  • 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
     

25 May, 2016

14 commits

  • Clean up whitespaces and mark unused syscalls as such.

    Signed-off-by: Helge Deller

    Helge Deller
     
  • Pull ARM SoC fixes from Arnd Bergmann:
    "This is a first set of bug fixes on top of what was merged for 4.7.

    Two patches for lpc32xx address a harmless build warning that was just
    introduced, one patch for the mediatek soc driver fixes a warning for
    arm64, and the pxa changes are minor cleanups that should have been
    part of the original pull requests but that I forgot to apply to the
    cleanup-fixes branch earlier"

    * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: lpc32xx: fix NR_IRQS confict
    ARM: lpc32xx: remove legacy irq controller driver
    soc: mtk-pmic-wrap: avoid integer overflow warning
    ARM: pxa: Remove CLK_IS_ROOT
    ARM: pxa: activate pinctrl for device-tree machines

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

    The Renesas R-Car power domain handling, and the Nvidia Tegra USB
    support both hand notable changes that required changing the DT
    binding in a way that only provides compatibility with old DT blobs on
    new kernels but not vice versa. As a consequence, the DT changes are
    based on top of the driver changes and are now in this branch.

    For NXP i.MX and Samsung Exynos, the changes in here depend on other
    changes that got merged through the clk maintainer tree"

    * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (35 commits)
    ARM: dts: exynos: Add support of Bus frequency using VDD_INT for exynos5422-odroidxu3
    ARM: dts: exynos: Add bus nodes using VDD_INT for Exynos542x SoC
    ARM: dts: exynos: Add NoC Probe dt node for Exynos542x SoC
    ARM: dts: exynos: Add support of bus frequency for exynos4412-trats/odroidu3
    ARM: dts: exynos: Expand the voltage range of buck1/3 regulator for exynos4412-odroidu3
    ARM: dts: exynos: Add support of bus frequency using VDD_INT for exynos3250-rinato
    ARM: dts: exynos: Add exynos4412-ppmu-common dtsi to delete duplicate PPMU nodes
    ARM: dts: exynos: Add bus nodes using VDD_MIF for Exynos4210
    ARM: dts: exynos: Add bus nodes using VDD_INT for Exynos4x12
    ARM: dts: exynos: Add bus nodes using VDD_MIF for Exynos4x12
    ARM: dts: exynos: Add bus nodes using VDD_INT for Exynos3250
    ARM: dts: exynos: Add DMC bus frequency for exynos3250-rinato/monk
    ARM: dts: exynos: Add DMC bus node for Exynos3250
    ARM: tegra: Enable XUSB on Nyan
    ARM: tegra: Enable XUSB on Jetson TK1
    ARM: tegra: Enable XUSB on Venice2
    ARM: tegra: Add Tegra124 XUSB controller
    ARM: tegra: Move Tegra124 to the new XUSB pad controller binding
    ARM: dts: r8a7794: Use SYSC "always-on" PM Domain
    ARM: dts: r8a7793: Use SYSC "always-on" PM Domain
    ...

    Linus Torvalds
     
  • Pull asm-generic cleanup from Arnd Bergmann:
    "I have only one patch for asm-generic in this release, this one is
    from James Hogan and updates the generic system call table for
    renameat2 so we don't need to provide both renameat and renameat2 in
    newly added architectures"

    * tag 'asm-generic-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
    asm-generic: Drop renameat syscall from default list

    Linus Torvalds
     
  • Pull nfsd updates from Bruce Fields:
    "A very quiet cycle for nfsd, mainly just an RDMA update from Chuck
    Lever"

    * tag 'nfsd-4.7' of git://linux-nfs.org/~bfields/linux:
    sunrpc: fix stripping of padded MIC tokens
    svcrpc: autoload rdma module
    svcrdma: Generalize svc_rdma_xdr_decode_req()
    svcrdma: Eliminate code duplication in svc_rdma_recvfrom()
    svcrdma: Drain QP before freeing svcrdma_xprt
    svcrdma: Post Receives only for forward channel requests
    svcrdma: Remove superfluous line from rdma_read_chunks()
    svcrdma: svc_rdma_put_context() is invoked twice in Send error path
    svcrdma: Do not add XDR padding to xdr_buf page vector
    svcrdma: Support IPv6 with NFS/RDMA
    nfsd: handle seqid wraparound in nfsd4_preprocess_layout_stateid
    Remove unnecessary allocation

    Linus Torvalds
     
  • Pull ext4 updates from Ted Ts'o:
    "Fix a number of bugs, most notably a potential stale data exposure
    after a crash and a potential BUG_ON crash if a file has the data
    journalling flag enabled while it has dirty delayed allocation blocks
    that haven't been written yet. Also fix a potential crash in the new
    project quota code and a maliciously corrupted file system.

    In addition, fix some DAX-specific bugs, including when there is a
    transient ENOSPC situation and races between writes via direct I/O and
    an mmap'ed segment that could lead to lost I/O.

    Finally the usual set of miscellaneous cleanups"

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (23 commits)
    ext4: pre-zero allocated blocks for DAX IO
    ext4: refactor direct IO code
    ext4: fix race in transient ENOSPC detection
    ext4: handle transient ENOSPC properly for DAX
    dax: call get_blocks() with create == 1 for write faults to unwritten extents
    ext4: remove unmeetable inconsisteny check from ext4_find_extent()
    jbd2: remove excess descriptions for handle_s
    ext4: remove unnecessary bio get/put
    ext4: silence UBSAN in ext4_mb_init()
    ext4: address UBSAN warning in mb_find_order_for_block()
    ext4: fix oops on corrupted filesystem
    ext4: fix check of dqget() return value in ext4_ioctl_setproject()
    ext4: clean up error handling when orphan list is corrupted
    ext4: fix hang when processing corrupted orphaned inode list
    ext4: remove trailing \n from ext4_warning/ext4_error calls
    ext4: fix races between changing inode journal mode and ext4_writepages
    ext4: handle unwritten or delalloc buffers before enabling data journaling
    ext4: fix jbd2 handle extension in ext4_ext_truncate_extend_restart()
    ext4: do not ask jbd2 to write data for delalloc buffers
    jbd2: add support for avoiding data writes during transaction commits
    ...

    Linus Torvalds
     
  • With the change to sparse IRQs, the lpc32xx platform gets a warning about
    conflicting macros:

    In file included from arch/arm/mach-lpc32xx/irq.c:31:0:
    arch/arm/mach-lpc32xx/include/mach/irqs.h:115:0: warning: "NR_IRQS" redefined
    #define NR_IRQS 96
    arch/arm/include/asm/irq.h:9:0: note: this is the location of the previous definition
    #define NR_IRQS NR_IRQS_LEGACY

    One such instance was in the old irq driver that is now removed by
    the previous patch, but any other file including mach/irqs.h still
    has the issue. Since none of them use this constant, we can just
    remove the old definition.

    Signed-off-by: Arnd Bergmann
    Fixes: 8cb17b5ed017 ("irqchip: Add LPC32xx interrupt controller driver")

    Arnd Bergmann
     
  • New NXP LPC32xx irq chip driver is used instead of a legacy one.

    [this also fixes a harmless build warning about the NR_IRQS redefinition]

    Signed-off-by: Vladimir Zapolskiy
    Acked-by: Sylvain Lemieux
    Signed-off-by: Arnd Bergmann

    Vladimir Zapolskiy
     
  • Pull spi updates from Mark Brown:
    "Another quiet release for SPI, almost entirely driver specific changes
    with the diffstat dominated by two new drivers which are about two
    thirds of it in terms of lines of code:

    - new drivers for PIC32 standard and SQI controllers
    - the Cadence driver has had runtime PM support added and quite a few
    fixes and cleanups
    - flash-specific accelerated path support now has a feature query
    interface
    - the pxa2xx driver has been moved to use the core DMA mapping support"

    * tag 'spi-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (48 commits)
    spi: pic32-sqi: Fix linker error, undefined reference to `bad_dma_ops'
    spi: dw-pci: Spelling s/paltforms/platforms/g
    spi: pic32-sqi: Remove pic32_sqi_setup and pic32_sqi_cleanup
    spi: Fix simple typo s/impelment/implement
    spi: rockchip: potential NULL dereference on error
    spi: zynqmp: disable clocks in error paths
    spi: Drop unnecessary dependencies on relaxed I/O accessors
    spi: qup: Add spi_master_put in remove function
    spi: qup: Handle clocks in pm_runtime suspend and resume
    spi: st-ssc4: Fix missing spi_master_put in spi_st_probe error paths
    spi: st-ssc4: Allow compile test build
    spi: omap2-mcspi: Use dma_request_chan() for requesting DMA channel
    spi: davinci: Use dma_request_chan() for requesting DMA channel
    spi: pic32: Fix checking return value of devm_ioremap_resource
    spi: spi-fsl-dspi: Update DT binding documentation
    spi: Drop duplicate code to set master->dev.parent
    spi: pic32: Set proper bits_per_word_mask
    spi: return error if kmap'd buffers passed to spi_map_buf()
    spi: core: add hook flash_read_supported to spi_master
    spi: pic32-sqi: silence array overflow warning
    ...

    Linus Torvalds
     
  • Pull MTD updates from Brian Norris:
    "First cycle with Boris as NAND maintainer! Many (most) bullets stolen
    from him.

    Generic:
    - Migrated NAND LED trigger to be a generic MTD trigger

    NAND:
    - Introduction of the "ECC algorithm" concept, to avoid overloading
    the ECC mode field too much more
    - Replaced the nand_ecclayout infrastructure with something a little
    more flexible (finally!) and future proof
    - Rework of the OMAP GPMC and NAND drivers; the TI folks pulled some
    of this into their own tree as well
    - Prepare the sunxi NAND driver to receive DMA support
    - Handle bitflips in erased pages on GPMI revisions that do not
    support this in hardware.

    SPI NOR:
    - Start using the spi_flash_read() API for SPI drivers that support
    it (i.e., SPI drivers with special memory-mapped flash modes)

    And other small scattered improvments"

    * tag 'for-linus-20160523' of git://git.infradead.org/linux-mtd: (155 commits)
    mtd: spi-nor: support GigaDevice gd25lq64c
    mtd: nand_bch: fix spelling of "probably"
    mtd: brcmnand: respect ECC algorithm set by NAND subsystem
    gpmi-nand: Handle ECC Errors in erased pages
    Documentation: devicetree: deprecate "soft_bch" nand-ecc-mode value
    mtd: nand: add support for "nand-ecc-algo" DT property
    mtd: mtd: drop NAND_ECC_SOFT_BCH enum value
    mtd: drop support for NAND_ECC_SOFT_BCH as "soft_bch" mapping
    mtd: nand: read ECC algorithm from the new field
    mtd: nand: fsmc: validate ECC setup by checking algorithm directly
    mtd: nand: set ECC algorithm to Hamming on fallback
    staging: mt29f_spinand: set ECC algorithm explicitly
    CRIS v32: nand: set ECC algorithm explicitly
    mtd: nand: atmel: set ECC algorithm explicitly
    mtd: nand: davinci: set ECC algorithm explicitly
    mtd: nand: bf5xx: set ECC algorithm explicitly
    mtd: nand: omap2: Fix high memory dma prefetch transfer
    mtd: nand: omap2: Start dma request before enabling prefetch
    mtd: nandsim: add __init attribute
    mtd: nand: move of_get_nand_xxx() helpers into nand_base.c
    ...

    Linus Torvalds
     
  • Pull xen bug fixes from David Vrabel.

    * tag 'for-linus-4.7-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen: use same main loop for counting and remapping pages
    xen/events: Don't move disabled irqs
    xen/x86: actually allocate legacy interrupts on PV guests
    Xen: don't warn about 2-byte wchar_t in efi
    xen/gntdev: reduce copy batch size to 16
    xen/x86: don't lose event interrupts

    Linus Torvalds
     
  • Pull virtio updates from Michael Tsirkin:
    "Looks like a quiet cycle for virtio. There's a new inorder option for
    the ringtest tool, and a bugfix for balloon for ppc platforms when
    using virtio 1 mode"

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    ringtest: pass buf != NULL
    virtio_balloon: fix PFN format for virtio-1
    virtio: add inorder option

    Linus Torvalds
     
  • Pull nios2 update from Ley Foon Tan:
    - add order-only DTC dependency to %.dtb target
    - fix libgcc location detection

    * tag 'nios2-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2:
    nios2: Add order-only DTC dependency to %.dtb target
    nios2: Fix libgcc location detection

    Linus Torvalds
     
  • Pull Microblaze updates from Michal Simek:

    - Wire-up new syscalls

    - Fix link error

    * tag 'microblaze-4.7-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
    microblaze: pci: export isa_io_base to fix link errors
    microblaze: Wire up userfaultfd, membarrier, mlock2 syscalls

    Linus Torvalds
     

24 May, 2016

9 commits

  • Instead of having two functions for cycling through the E820 map in
    order to count to be remapped pages and remap them later, just use one
    function with a caller supplied sub-function called for each region to
    be processed. This eliminates the possibility of a mismatch between
    both loops which showed up in certain configurations.

    Suggested-by: Ed Swierk
    Signed-off-by: Juergen Gross
    Cc:
    Signed-off-by: David Vrabel

    Juergen Gross
     
  • Commit ff1e22e7a638 ("xen/events: Mask a moving irq") open-coded
    irq_move_irq() but left out checking if the IRQ is disabled. This broke
    resuming from suspend since it tries to move a (disabled) irq without
    holding the IRQ's desc->lock. Fix it by adding in a check for disabled
    IRQs.

    The resulting stacktrace was:
    kernel BUG at /build/linux-UbQGH5/linux-4.4.0/kernel/irq/migration.c:31!
    invalid opcode: 0000 [#1] SMP
    Modules linked in: xenfs xen_privcmd ...
    CPU: 0 PID: 9 Comm: migration/0 Not tainted 4.4.0-22-generic #39-Ubuntu
    Hardware name: Xen HVM domU, BIOS 4.6.1-xs125180 05/04/2016
    task: ffff88003d75ee00 ti: ffff88003d7bc000 task.ti: ffff88003d7bc000
    RIP: 0010:[] [] irq_move_masked_irq+0xd2/0xe0
    RSP: 0018:ffff88003d7bfc50 EFLAGS: 00010046
    RAX: 0000000000000000 RBX: ffff88003d40ba00 RCX: 0000000000000001
    RDX: 0000000000000001 RSI: 0000000000000100 RDI: ffff88003d40bad8
    RBP: ffff88003d7bfc68 R08: 0000000000000000 R09: ffff88003d000000
    R10: 0000000000000000 R11: 000000000000023c R12: ffff88003d40bad0
    R13: ffffffff81f3a4a0 R14: 0000000000000010 R15: 00000000ffffffff
    FS: 0000000000000000(0000) GS:ffff88003da00000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007fd4264de624 CR3: 0000000037922000 CR4: 00000000003406f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Stack:
    ffff88003d40ba38 0000000000000024 0000000000000000 ffff88003d7bfca0
    ffffffff814c8d92 00000010813ef89d 00000000805ea732 0000000000000009
    0000000000000024 ffff88003cc39b80 ffff88003d7bfce0 ffffffff814c8f66
    Call Trace:
    [] eoi_pirq+0xb2/0xf0
    [] __startup_pirq+0xe6/0x150
    [] xen_irq_resume+0x319/0x360
    [] xen_suspend+0xb5/0x180
    [] multi_cpu_stop+0xb5/0xe0
    [] ? cpu_stop_queue_work+0x80/0x80
    [] cpu_stopper_thread+0xb0/0x140
    [] ? finish_task_switch+0x76/0x220
    [] ? __raw_callee_save___pv_queued_spin_unlock+0x11/0x20
    [] smpboot_thread_fn+0x105/0x160
    [] ? sort_range+0x30/0x30
    [] kthread+0xd8/0xf0
    [] ? kthread_create_on_node+0x1e0/0x1e0
    [] ret_from_fork+0x3f/0x70
    [] ? kthread_create_on_node+0x1e0/0x1e0

    Signed-off-by: Ross Lagerwall
    Reviewed-by: Boris Ostrovsky
    Cc:
    Signed-off-by: David Vrabel

    Ross Lagerwall
     
  • b4ff8389ed14 is incomplete: relies on nr_legacy_irqs() to get the number
    of legacy interrupts when actually nr_legacy_irqs() returns 0 after
    probe_8259A(). Use NR_IRQS_LEGACY instead.

    Signed-off-by: Stefano Stabellini
    CC: stable@vger.kernel.org

    Stefano Stabellini
     
  • The XEN UEFI code has become available on the ARM architecture
    recently, but now causes a link-time warning:

    ld: warning: drivers/xen/efi.o uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail

    This seems harmless, because the efi code only uses 2-byte
    characters when interacting with EFI, so we don't pass on those
    strings to elsewhere in the system, and we just need to
    silence the warning.

    It is not clear to me whether we actually need to build the file
    with the -fshort-wchar flag, but if we do, then we should also
    pass --no-wchar-size-warning to the linker, to avoid the warning.

    Signed-off-by: Arnd Bergmann
    Reviewed-by: Stefano Stabellini
    Fixes: 37060935dc04 ("ARM64: XEN: Add a function to initialize Xen specific UEFI runtime services")

    Arnd Bergmann
     
  • IOCTL_GNTDEV_GRANT_COPY batches copy operations to reduce the number
    of hypercalls. The stack is used to avoid a memory allocation in a
    hot path. However, a batch size of 24 requires more than 1024 bytes of
    stack which in some configurations causes a compiler warning.

    xen/gntdev.c: In function ‘gntdev_ioctl_grant_copy’:
    xen/gntdev.c:949:1: warning: the frame size of 1248 bytes is
    larger than 1024 bytes [-Wframe-larger-than=]

    This is a harmless warning as there is still plenty of stack spare,
    but people keep trying to "fix" it. Reduce the batch size to 16 to
    reduce stack usage to less than 1024 bytes. This should have minimal
    impact on performance.

    Signed-off-by: David Vrabel

    David Vrabel
     
  • On slow platforms with unreliable TSC, such as QEMU emulated machines,
    it is possible for the kernel to request the next event in the past. In
    that case, in the current implementation of xen_vcpuop_clockevent, we
    simply return -ETIME. To be precise the Xen returns -ETIME and we pass
    it on. However the result of this is a missed event, which simply causes
    the kernel to hang.

    Instead it is better to always ask the hypervisor for a timer event,
    even if the timeout is in the past. That way there are no lost
    interrupts and the kernel survives. To do that, remove the
    VCPU_SSHOTTMR_future flag.

    Signed-off-by: Stefano Stabellini
    Acked-by: Juergen Gross

    Stefano Stabellini
     
  • A recent addition to the DRM tree for 4.7 added 'extern "C"' guards
    for c++ to all the DRM headers, and that now causes warnings
    in 'make headers_check':

    usr/include/drm/amdgpu_drm.h:38: userspace cannot reference function or variable defined in the kernel
    usr/include/drm/drm.h:63: userspace cannot reference function or variable defined in the kernel
    usr/include/drm/drm.h:699: userspace cannot reference function or variable defined in the kernel
    usr/include/drm/drm_fourcc.h:30: userspace cannot reference function or variable defined in the kernel
    usr/include/drm/drm_mode.h:33: userspace cannot reference function or variable defined in the kernel
    usr/include/drm/drm_sarea.h:38: userspace cannot reference function or variable defined in the kernel
    usr/include/drm/exynos_drm.h:21: userspace cannot reference function or variable defined in the kernel
    usr/include/drm/i810_drm.h:7: userspace cannot reference function or variable defined in the kernel

    This changes the headers_check.pl script to not warn about this.
    I'm listing the merge commit as introducing the problem, because
    there are several patches in this branch that each do this for
    one file.

    Signed-off-by: Arnd Bergmann
    Fixes: 7c10ddf87472 ("Merge branch 'drm-uapi-extern-c-fixes' of https://github.com/evelikov/linux into drm-next")
    Reviewed-by: Emil Velikov
    Signed-off-by: Dave Airlie

    Arnd Bergmann
     
  • Merge yet more updates from Andrew Morton:

    - Oleg's "wait/ptrace: assume __WALL if the child is traced". It's a
    kernel-based workaround for existing userspace issues.

    - A few hotfixes

    - befs cleanups

    - nilfs2 updates

    - sys_wait() changes

    - kexec updates

    - kdump

    - scripts/gdb updates

    - the last of the MM queue

    - a few other misc things

    * emailed patches from Andrew Morton : (84 commits)
    kgdb: depends on VT
    drm/amdgpu: make amdgpu_mn_get wait for mmap_sem killable
    drm/radeon: make radeon_mn_get wait for mmap_sem killable
    drm/i915: make i915_gem_mmap_ioctl wait for mmap_sem killable
    uprobes: wait for mmap_sem for write killable
    prctl: make PR_SET_THP_DISABLE wait for mmap_sem killable
    exec: make exec path waiting for mmap_sem killable
    aio: make aio_setup_ring killable
    coredump: make coredump_wait wait for mmap_sem for write killable
    vdso: make arch_setup_additional_pages wait for mmap_sem for write killable
    ipc, shm: make shmem attach/detach wait for mmap_sem killable
    mm, fork: make dup_mmap wait for mmap_sem for write killable
    mm, proc: make clear_refs killable
    mm: make vm_brk killable
    mm, elf: handle vm_brk error
    mm, aout: handle vm_brk failures
    mm: make vm_munmap killable
    mm: make vm_mmap killable
    mm: make mmap_sem for write waits killable for mm syscalls
    MAINTAINERS: add co-maintainer for scripts/gdb
    ...

    Linus Torvalds
     
  • …/git/shuah/linux-kselftest

    Pull kselftest updates from Shuah Khan:
    "This update for Kselftest adds:

    - a new ftrace testcase
    - fixes for ftrace and intel_pstate tests"

    * tag 'linux-kselftest-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    tools: testing: define the _GNU_SOURCE macro
    kselftests/ftrace: Add a test case for event pid filtering
    kselftests/ftrace: Detect tracefs mount point

    Linus Torvalds