16 Oct, 2016

2 commits

  • Pull gcc plugins update from Kees Cook:
    "This adds a new gcc plugin named "latent_entropy". It is designed to
    extract as much possible uncertainty from a running system at boot
    time as possible, hoping to capitalize on any possible variation in
    CPU operation (due to runtime data differences, hardware differences,
    SMP ordering, thermal timing variation, cache behavior, etc).

    At the very least, this plugin is a much more comprehensive example
    for how to manipulate kernel code using the gcc plugin internals"

    * tag 'gcc-plugins-v4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    latent_entropy: Mark functions with __latent_entropy
    gcc-plugins: Add latent_entropy plugin

    Linus Torvalds
     
  • Pull MIPS updates from Ralf Baechle:
    "This is the main MIPS pull request for 4.9:

    MIPS core arch code:
    - traps: 64bit kernels should read CP0_EBase 64bit
    - traps: Convert ebase to KSEG0
    - c-r4k: Drop bc_wback_inv() from icache flush
    - c-r4k: Split user/kernel flush_icache_range()
    - cacheflush: Use __flush_icache_user_range()
    - uprobes: Flush icache via kernel address
    - KVM: Use __local_flush_icache_user_range()
    - c-r4k: Fix flush_icache_range() for EVA
    - Fix -mabi=64 build of vdso.lds
    - VDSO: Drop duplicated -I*/-E* aflags
    - tracing: move insn_has_delay_slot to a shared header
    - tracing: disable uprobe/kprobe on compact branch instructions
    - ptrace: Fix regs_return_value for kernel context
    - Squash lines for simple wrapper functions
    - Move identification of VP(E) into proc.c from smp-mt.c
    - Add definitions of SYNC barrierstype values
    - traps: Ensure full EBase is written
    - tlb-r4k: If there are wired entries, don't use TLBINVF
    - Sanitise coherentio semantics
    - dma-default: Don't check hw_coherentio if device is non-coherent
    - Support per-device DMA coherence
    - Adjust MIPS64 CAC_BASE to reflect Config.K0
    - Support generating Flattened Image Trees (.itb)
    - generic: Introduce generic DT-based board support
    - generic: Convert SEAD-3 to a generic board
    - Enable hardened usercopy
    - Don't specify STACKPROTECTOR in defconfigs

    Octeon:
    - Delete dead code and files across the platform.
    - Change to use all memory into use by default.
    - Rename upper case variables in setup code to lowercase.
    - Delete legacy hack for broken bootloaders.
    - Leave maintaining the link state to the actual ethernet/PHY drivers.
    - Add DTS for D-Link DSR-500N.
    - Fix PCI interrupt routing on D-Link DSR-500N.

    Pistachio:
    - Remove ANDROID_TIMED_OUTPUT from defconfig

    TX39xx:
    - Move GPIO setup from .mem_setup() to .arch_init()
    - Convert to Common Clock Framework

    TX49xx:
    - Move GPIO setup from .mem_setup() to .arch_init()
    - Convert to Common Clock Framework

    txx9wdt:
    - Add missing clock (un)prepare calls for CCF

    BMIPS:
    - Add PW, GPIO SDHCI and NAND device node names
    - Support APPENDED_DTB
    - Add missing bcm97435svmb to DT_NONE
    - Rename bcm96358nb4ser to bcm6358-neufbox4-sercom
    - Add DT examples for BCM63268, BCM3368 and BCM6362
    - Add support for BCM3368 and BCM6362

    PCI
    - Reduce stack frame usage
    - Use struct list_head lists
    - Support for CONFIG_PCI_DOMAINS_GENERIC
    - Make pcibios_set_cache_line_size an initcall
    - Inline pcibios_assign_all_busses
    - Split pci.c into pci.c & pci-legacy.c
    - Introduce CONFIG_PCI_DRIVERS_LEGACY
    - Support generic drivers

    CPC
    - Convert bare 'unsigned' to 'unsigned int'
    - Avoid lock when MIPS CM >= 3 is present

    GIC:
    - Delete unused file smp-gic.c

    mt7620:
    - Delete unnecessary assignment for the field "owner" from PCI

    BCM63xx:
    - Let clk_disable() return immediately if clk is NULL

    pm-cps:
    - Change FSB workaround to CPU blacklist
    - Update comments on barrier instructions
    - Use MIPS standard lightweight ordering barrier
    - Use MIPS standard completion barrier
    - Remove selection of sync types
    - Add MIPSr6 CPU support
    - Support CM3 changes to Coherence Enable Register

    SMP:
    - Wrap call to mips_cpc_lock_other in mips_cm_lock_other
    - Introduce mechanism for freeing and allocating IPIs

    cpuidle:
    - cpuidle-cps: Enable use with MIPSr6 CPUs.

    SEAD3:
    - Rewrite to use DT and generic kernel feature.

    USB:
    - host: ehci-sead3: Remove SEAD-3 EHCI code

    FBDEV:
    - cobalt_lcdfb: Drop SEAD3 support

    dt-bindings:
    - Document a binding for simple ASCII LCDs

    auxdisplay:
    - img-ascii-lcd: driver for simple ASCII LCD displays

    irqchip i8259:
    - i8259: Add domain before mapping parent irq
    - i8259: Allow platforms to override poll function
    - i8259: Remove unused i8259A_irq_pending

    Malta:
    - Rewrite to use DT

    of/platform:
    - Probe "isa" busses by default

    CM:
    - Print CM error reports upon bus errors

    Module:
    - Migrate exception table users off module.h and onto extable.h
    - Make various drivers explicitly non-modular:
    - Audit and remove any unnecessary uses of module.h

    mailmap:
    - Canonicalize to Qais' current email address.

    Documentation:
    - MIPS supports HAVE_REGS_AND_STACK_ACCESS_API

    Loongson1C:
    - Add CPU support for Loongson1C
    - Add board support
    - Add defconfig
    - Add RTC support for Loongson1C board

    All this except one Documentation fix has sat in linux-next and has
    survived Imagination's automated build test system"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (127 commits)
    Documentation: MIPS supports HAVE_REGS_AND_STACK_ACCESS_API
    MIPS: ptrace: Fix regs_return_value for kernel context
    MIPS: VDSO: Drop duplicated -I*/-E* aflags
    MIPS: Fix -mabi=64 build of vdso.lds
    MIPS: Enable hardened usercopy
    MIPS: generic: Convert SEAD-3 to a generic board
    MIPS: generic: Introduce generic DT-based board support
    MIPS: Support generating Flattened Image Trees (.itb)
    MIPS: Adjust MIPS64 CAC_BASE to reflect Config.K0
    MIPS: Print CM error reports upon bus errors
    MIPS: Support per-device DMA coherence
    MIPS: dma-default: Don't check hw_coherentio if device is non-coherent
    MIPS: Sanitise coherentio semantics
    MIPS: PCI: Support generic drivers
    MIPS: PCI: Introduce CONFIG_PCI_DRIVERS_LEGACY
    MIPS: PCI: Split pci.c into pci.c & pci-legacy.c
    MIPS: PCI: Inline pcibios_assign_all_busses
    MIPS: PCI: Make pcibios_set_cache_line_size an initcall
    MIPS: PCI: Support for CONFIG_PCI_DOMAINS_GENERIC
    MIPS: PCI: Use struct list_head lists
    ...

    Linus Torvalds
     

15 Oct, 2016

9 commits

  • Pull more misc uaccess and vfs updates from Al Viro:
    "The rest of the stuff from -next (more uaccess work) + assorted fixes"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    score: traps: Add missing include file to fix build error
    fs/super.c: don't fool lockdep in freeze_super() and thaw_super() paths
    fs/super.c: fix race between freeze_super() and thaw_super()
    overlayfs: Fix setting IOP_XATTR flag
    iov_iter: kernel-doc import_iovec() and rw_copy_check_uvector()
    blackfin: no access_ok() for __copy_{to,from}_user()
    arm64: don't zero in __copy_from_user{,_inatomic}
    arm: don't zero in __copy_from_user_inatomic()/__copy_from_user()
    arc: don't leak bits of kernel stack into coredump
    alpha: get rid of tail-zeroing in __copy_user()

    Linus Torvalds
     
  • Al Viro
     
  • score images fail to build as follows.

    arch/score/kernel/traps.c: In function 'show_stack':
    arch/score/kernel/traps.c:55:3: error:
    implicit declaration of function '__get_user'

    __get_user() is declared in asm/uaccess.h, which was previously included
    through asm/module.h.

    Cc: Al Viro
    Fixes: 88dd4a748da7 ("score: separate extable.h, switch module.h to it")
    Signed-off-by: Guenter Roeck
    Signed-off-by: Al Viro

    Guenter Roeck
     
  • Pull kbuild updates from Michal Marek:

    - EXPORT_SYMBOL for asm source by Al Viro.

    This does bring a regression, because genksyms no longer generates
    checksums for these symbols (CONFIG_MODVERSIONS). Nick Piggin is
    working on a patch to fix this.

    Plus, we are talking about functions like strcpy(), which rarely
    change prototypes.

    - Fixes for PPC fallout of the above by Stephen Rothwell and Nick
    Piggin

    - fixdep speedup by Alexey Dobriyan.

    - preparatory work by Nick Piggin to allow architectures to build with
    -ffunction-sections, -fdata-sections and --gc-sections

    - CONFIG_THIN_ARCHIVES support by Stephen Rothwell

    - fix for filenames with colons in the initramfs source by me.

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (22 commits)
    initramfs: Escape colons in depfile
    ppc: there is no clear_pages to export
    powerpc/64: whitelist unresolved modversions CRCs
    kbuild: -ffunction-sections fix for archs with conflicting sections
    kbuild: add arch specific post-link Makefile
    kbuild: allow archs to select link dead code/data elimination
    kbuild: allow architectures to use thin archives instead of ld -r
    kbuild: Regenerate genksyms lexer
    kbuild: genksyms fix for typeof handling
    fixdep: faster CONFIG_ search
    ia64: move exports to definitions
    sparc32: debride memcpy.S a bit
    [sparc] unify 32bit and 64bit string.h
    sparc: move exports to definitions
    ppc: move exports to definitions
    arm: move exports to definitions
    s390: move exports to definitions
    m68k: move exports to definitions
    alpha: move exports to actual definitions
    x86: move exports to actual definitions
    ...

    Linus Torvalds
     
  • Pull percpu updates from Tejun Heo:

    - Nick improved generic implementations of percpu operations which
    modify the variable and return so that they calculate the physical
    address only once.

    - percpu_ref percpu atomic mode switching improvements. The
    patchset was originally posted about a year ago but fell through the
    crack.

    - misc non-critical fixes.

    * 'for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
    mm/percpu.c: fix potential memory leakage for pcpu_embed_first_chunk()
    mm/percpu.c: correct max_distance calculation for pcpu_embed_first_chunk()
    percpu: eliminate two sparse warnings
    percpu: improve generic percpu modify-return implementation
    percpu-refcount: init ->confirm_switch member properly
    percpu_ref: allow operation mode switching operations to be called concurrently
    percpu_ref: restructure operation mode switching
    percpu_ref: unify staggered atomic switching wait behavior
    percpu_ref: reorganize __percpu_ref_switch_to_atomic() and relocate percpu_ref_switch_to_atomic()
    percpu_ref: remove unnecessary RCU grace period for staggered atomic switching confirmation

    Linus Torvalds
     
  • Pull libata updates from Tejun Heo:
    - Write same support added
    - Minor ahci MSIX irq handling updates
    - Non-critical SCSI command translation fixes
    - Controller specific changes

    * 'for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
    ahci: qoriq: Revert "ahci: qoriq: Disable NCQ on ls2080a SoC"
    libata: remove
    libata: remove unused definitions from
    pata_at91: Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR
    ata: Replace BUG() with BUG_ON().
    ata: sata_mv: Replacing dma_pool_alloc and memset with a single call dma_pool_zalloc.
    libata: Some drives failing on SCT Write Same
    ahci: use pci_alloc_irq_vectors
    libata: SCT Write Same handle ATA_DFLAG_PIO
    libata: SCT Write Same / DSM Trim
    libata: Add support for SCT Write Same
    libata: Safely overwrite attached page in WRITE SAME xlat
    ahci: also use a per-port lock for the multi-MSIX case
    ARM: dts: STiH407-family: Add ports-implemented property in sata nodes
    ahci: st: Add ports-implemented property in support
    ahci: qoriq: enable snoopable sata read and write
    ahci: qoriq: adjust sata parameter
    libata-scsi: fix MODE SELECT translation for Control mode page
    libata-scsi: use u8 array to store mode page copy

    Linus Torvalds
     
  • Pull metag architecture fix from James Hogan:
    "A simple build fix for irqsoff atomics which has started hitting
    meta1_defconfig during the 4.9 merge window"

    * tag 'metag-for-v4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag:
    metag: Only define atomic_dec_if_positive conditionally

    Linus Torvalds
     
  • Pull more powerpc updates from Michael Ellerman:
    "Some more powerpc updates for 4.9:

    Freescale updates from Scott Wood:
    - qbman support (a prerequisite for datapath drivers such as ethernet)
    - a PCI DMA fix+improvement
    - reset handler changes
    - more 8xx optimizations
    - some cleanups and fixes.'

    Fixes:
    - selftests/powerpc: Add missing binaries to .gitignores (Michael Ellerman)
    - selftests/powerpc: Fix build break caused by EXPORT_SYMBOL changes (Michael Ellerman)
    - powerpc/pseries: Fix stack corruption in htpe code (Laurent Dufour)
    - powerpc/64s: Fix power4_fixup_nap placement (Nicholas Piggin)
    - powerpc/64: Fix incorrect return value from __copy_tofrom_user (Paul Mackerras)
    - powerpc/mm/hash64: Fix might_have_hea() check (Michael Ellerman)

    Other:
    - MAINTAINERS: Remove myself from PA Semi entries (Olof Johansson)
    - MAINTAINERS: Drop separate pseries entry (Michael Ellerman)
    - MAINTAINERS: Update powerpc website & add selftests (Michael Ellerman):

    * tag 'powerpc-4.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (35 commits)
    powerpc/mm/hash64: Fix might_have_hea() check
    powerpc/64: Fix incorrect return value from __copy_tofrom_user
    powerpc/64s: Fix power4_fixup_nap placement
    powerpc/pseries: Fix stack corruption in htpe code
    selftests/powerpc: Fix build break caused by EXPORT_SYMBOL changes
    MAINTAINERS: Update powerpc website & add selftests
    MAINTAINERS: Drop separate pseries entry
    MAINTAINERS: Remove myself from PA Semi entries
    selftests/powerpc: Add missing binaries to .gitignores
    arch/powerpc: Add CONFIG_FSL_DPAA to corenetXX_smp_defconfig
    soc/qman: Add self-test for QMan driver
    soc/bman: Add self-test for BMan driver
    soc/fsl: Introduce DPAA 1.x QMan device driver
    soc/fsl: Introduce DPAA 1.x BMan device driver
    powerpc/8xx: make user addr DTLB miss the short path
    powerpc/8xx: Move additional DTLBMiss handlers out of exception area
    powerpc/8xx: use r3 to scratch CR in ITLBmiss
    soc/fsl/qe: fix gpio save_regs functions
    powerpc/8xx: add dedicated machine check handler
    powerpc/8xx: add system_reset_exception
    ...

    Linus Torvalds
     
  • Signed-off-by: Marcin Nowakowski
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14380/
    Signed-off-by: Ralf Baechle
    Signed-off-by: Linus Torvalds

    Ralf Baechle
     

13 Oct, 2016

2 commits

  • Pull thermal managament updates from Zhang Rui:

    - Enhance thermal "userspace" governor to export the reason when a
    thermal event is triggered and delivered to user space. From Srinivas
    Pandruvada

    - Introduce a single TSENS thermal driver for the different versions of
    the TSENS IP that exist, on different qcom msm/apq SoCs'. Support for
    msm8916, msm8960, msm8974 and msm8996 families is also added. From
    Rajendra Nayak

    - Introduce hardware-tracked trip points support to the device tree
    thermal sensor framework. The framework supports an arbitrary number
    of trip points. Whenever the current temperature is changed, the trip
    points immediately below and above the current temperature are found,
    driver callback is invoked to program the hardware to get notified
    when either of the two trip points are triggered. Hardware-tracked
    trip points support for rockchip thermal driver is also added at the
    same time. From Sascha Hauer, Caesar Wang

    - Introduce a new thermal driver, which enables TMU (Thermal Monitor
    Unit) on QorIQ platform. From Jia Hongtao

    - Introduce a new thermal driver for Maxim MAX77620. From Laxman
    Dewangan

    - Introduce a new thermal driver for Intel platforms using WhiskeyCove
    PMIC. From Bin Gao

    - Add mt2701 chip support to MTK thermal driver. From Dawei Chien

    - Enhance Tegra thermal driver to enable soctherm node and set
    "critical", "hot" trips, for Tegra124, Tegra132, Tegra210. From Wei
    Ni

    - Add resume support for tango thermal driver. From Marc Gonzalez

    - several small fixes and improvements for rockchip, qcom, imx, rcar,
    mtk thermal drivers and thermal core code. From Caesar Wang, Keerthy,
    Rocky Hao, Wei Yongjun, Peter Robinson, Bui Duc Phuc, Axel Lin, Hugh
    Kang

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (48 commits)
    thermal: int3403: Process trip change notification
    thermal: int340x: New Interface to read trip and notify
    thermal: user_space gov: Add additional information in uevent
    thermal: Enhance thermal_zone_device_update for events
    arm64: tegra: set hot trips for Tegra210
    arm64: tegra: set critical trips for Tegra210
    arm64: tegra: add soctherm node for Tegra210
    arm64: tegra: set hot trips for Tegra132
    arm64: tegra: set critical trips for Tegra132
    arm64: tegra: use tegra132-soctherm for Tegra132
    arm: tegra: set hot trips for Tegra124
    arm: tegra: set critical trips for Tegra124
    thermal: tegra: add hw-throttle for Tegra132
    thermal: tegra: add hw-throttle function
    of: Add bindings of hw throttle for Tegra soctherm
    thermal: mtk_thermal: Check return value of devm_thermal_zone_of_sensor_register
    thermal: Add Mediatek thermal driver for mt2701.
    dt-bindings: thermal: Add binding document for Mediatek thermal controller
    thermal: max77620: Add thermal driver for reporting junction temp
    thermal: max77620: Add DT binding doc for thermal driver
    ...

    Linus Torvalds
     
  • Pull fbdev updates from Tomi Valkeinen:
    "Main changes:

    - amba-cldc: DT backlight support, Nomadik support, Versatile
    improvements, fixes

    - efifb: fix fbcon RGB565 palette

    - exynos: remove unused DSI driver"

    * tag 'fbdev-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (42 commits)
    video: smscufx: remove unused variable
    matroxfb: fix size of memcpy
    fbdev: ssd1307fb: fix a possible NULL dereference
    fbdev: ssd1307fb: constify the device_info pointer
    simplefb: Disable and release clocks and regulators in destroy callback
    video: fbdev: constify fb_fix_screeninfo and fb_var_screeninfo structures
    matroxfb: constify local structures
    video: fbdev: i810: add in missing white space in error message text
    video: fbdev: add missing \n at end of printk error message
    ARM: exynos_defconfig: Remove old non-working MIPI driver
    video: fbdev: exynos: Remove old non-working MIPI driver
    omapfb: fix return value check in dsi_bind()
    MAINTAINERS: update fbdev entries
    video: fbdev: offb: Call pci_enable_device() before using the PCI VGA device
    fbdev: vfb: simplify memory management
    fbdev: vfb: add option for video mode
    fbdev: vfb: add description to module parameters
    video: fbdev: intelfb: remove impossible condition
    fb: adv7393: off by one in probe function
    video: fbdev: pxafb: add missing of_node_put() in of_get_pxafb_mode_info()
    ...

    Linus Torvalds
     

12 Oct, 2016

22 commits

  • Currently regs_return_value always negates reg[2] if it determines
    the syscall has failed, but when called in kernel context this check is
    invalid and may result in returning a wrong value.

    This fixes errors reported by CONFIG_KPROBES_SANITY_TEST

    Fixes: d7e7528bcd45 ("Audit: push audit success and retcode into arch ptrace.h")
    Signed-off-by: Marcin Nowakowski
    Cc: linux-mips@linux-mips.org
    Cc: stable@vger.kernel.org # 3.3+
    Patchwork: https://patchwork.linux-mips.org/patch/14381/
    Signed-off-by: Ralf Baechle

    Marcin Nowakowski
     
  • Pull parisc fixes from Helge Deller:
    "Some final updates and fixes for this merge window for the parisc
    architecture. Changes include:

    - Fix boot problems with new memblock allocator on rp3410 machine

    - Increase initial kernel mapping size for 32- and 64-bit kernels,
    this allows to boot bigger kernels which have many modules built-in

    - Fix kernel layout regarding __gp and move exception table into RO
    section

    - Show trap names in crashes, use extable.h header instead of
    module.h"

    * 'parisc-4.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
    parisc: Show trap name in kernel crash
    parisc: Zero-initialize newly alloced memblock
    parisc: Move exception table into read-only section
    parisc: Fix kernel memory layout regarding position of __gp
    parisc: Increase initial kernel mapping size
    parisc: Migrate exception table users off module.h and onto extable.h

    Linus Torvalds
     
  • Pull uaccess.h prepwork from Al Viro:
    "Preparations to tree-wide switch to use of linux/uaccess.h (which,
    obviously, will allow to start unifying stuff for real). The last step
    there, ie

    PATT='^[[:blank:]]*#[[:blank:]]*include[[:blank:]]*'
    sed -i -e "s!$PATT!#include !" \
    `git grep -l "$PATT"|grep -v ^include/linux/uaccess.h`

    is not taken here - I would prefer to do it once just before or just
    after -rc1. However, everything should be ready for it"

    * 'work.uaccess2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    remove a stray reference to asm/uaccess.h in docs
    sparc64: separate extable_64.h, switch elf_64.h to it
    score: separate extable.h, switch module.h to it
    mips: separate extable.h, switch module.h to it
    x86: separate extable.h, switch sections.h to it
    remove stray include of asm/uaccess.h from cacheflush.h
    mn10300: remove a bogus processor.h->uaccess.h include
    xtensa: split uaccess.h into C and asm sides
    bonding: quit messing with IOCTL
    kill __kernel_ds_p off
    mn10300: finish verify_area() off
    frv: move HAVE_ARCH_UNMAPPED_AREA to pgtable.h
    exceptions: detritus removal

    Linus Torvalds
     
  • Pull drm updates from Dave Airlie:
    "Core:
    - Fence destaging work
    - DRIVER_LEGACY to split off legacy drm drivers
    - drm_mm refactoring
    - Splitting drm_crtc.c into chunks and documenting better
    - Display info fixes
    - rbtree support for prime buffer lookup
    - Simple VGA DAC driver

    Panel:
    - Add Nexus 7 panel
    - More simple panels

    i915:
    - Refactoring GEM naming
    - Refactored vma/active tracking
    - Lockless request lookups
    - Better stolen memory support
    - FBC fixes
    - SKL watermark fixes
    - VGPU improvements
    - dma-buf fencing support
    - Better DP dongle support

    amdgpu:
    - Powerplay for Iceland asics
    - Improved GPU reset support
    - UVD/VEC powergating support for CZ/ST
    - Preinitialised VRAM buffer support
    - Virtual display support
    - Initial SI support
    - GTT rework
    - PCI shutdown callback support
    - HPD IRQ storm fixes

    amdkfd:
    - bugfixes

    tilcdc:
    - Atomic modesetting support

    mediatek:
    - AAL + GAMMA engine support
    - Hook up gamma LUT
    - Temporal dithering support

    imx:
    - Pixel clock from devicetree
    - drm bridge support for LVDS bridges
    - active plane reconfiguration
    - VDIC deinterlacer support
    - Frame synchronisation unit support
    - Color space conversion support

    analogix:
    - PSR support
    - Better panel on/off support

    rockchip:
    - rk3399 vop/crtc support
    - PSR support

    vc4:
    - Interlaced vblank timing
    - 3D rendering CPU overhead reduction
    - HDMI output fixes

    tda998x:
    - HDMI audio ASoC support

    sunxi:
    - Allwinner A33 support
    - better TCON support

    msm:
    - DT binding cleanups
    - Explicit fence-fd support

    sti:
    - remove sti415/416 support

    etnaviv:
    - MMUv2 refactoring
    - GC3000 support

    exynos:
    - Refactoring HDMI DCC/PHY
    - G2D pm regression fix
    - Page fault issues with wait for vblank

    There is no nouveau work in this tree, as Ben didn't get a pull
    request in, and he was fighting moving to atomic and adding mst
    support, so maybe best it waits for a cycle"

    * tag 'drm-for-v4.9' of git://people.freedesktop.org/~airlied/linux: (1412 commits)
    drm/crtc: constify drm_crtc_index parameter
    drm/i915: Fix conflict resolution from backmerge of v4.8-rc8 to drm-next
    drm/i915/guc: Unwind GuC workqueue reservation if request construction fails
    drm/i915: Reset the breadcrumbs IRQ more carefully
    drm/i915: Force relocations via cpu if we run out of idle aperture
    drm/i915: Distinguish last emitted request from last submitted request
    drm/i915: Allow DP to work w/o EDID
    drm/i915: Move long hpd handling into the hotplug work
    drm/i915/execlists: Reinitialise context image after GPU hang
    drm/i915: Use correct index for backtracking HUNG semaphores
    drm/i915: Unalias obj->phys_handle and obj->userptr
    drm/i915: Just clear the mmiodebug before a register access
    drm/i915/gen9: only add the planes actually affected by ddb changes
    drm/i915: Allow PCH DPLL sharing regardless of DPLL_SDVO_HIGH_SPEED
    drm/i915/bxt: Fix HDMI DPLL configuration
    drm/i915/gen9: fix the watermark res_blocks value
    drm/i915/gen9: fix plane_blocks_per_line on watermarks calculations
    drm/i915/gen9: minimum scanlines for Y tile is not always 4
    drm/i915/gen9: fix the WaWmMemoryReadLatency implementation
    drm/i915/kbl: KBL also needs to run the SAGV code
    ...

    Linus Torvalds
     
  • Merge more updates from Andrew Morton:

    - a few block updates that fell in my lap

    - lib/ updates

    - checkpatch

    - autofs

    - ipc

    - a ton of misc other things

    * emailed patches from Andrew Morton : (100 commits)
    mm: split gfp_mask and mapping flags into separate fields
    fs: use mapping_set_error instead of opencoded set_bit
    treewide: remove redundant #include
    hung_task: allow hung_task_panic when hung_task_warnings is 0
    kthread: add kerneldoc for kthread_create()
    kthread: better support freezable kthread workers
    kthread: allow to modify delayed kthread work
    kthread: allow to cancel kthread work
    kthread: initial support for delayed kthread work
    kthread: detect when a kthread work is used by more workers
    kthread: add kthread_destroy_worker()
    kthread: add kthread_create_worker*()
    kthread: allow to call __kthread_create_on_node() with va_list args
    kthread/smpboot: do not park in kthread_create_on_cpu()
    kthread: kthread worker API cleanup
    kthread: rename probe_kthread_data() to kthread_probe_data()
    scripts/tags.sh: enable code completion in VIM
    mm: kmemleak: avoid using __va() on addresses that don't have a lowmem mapping
    kdump, vmcoreinfo: report memory sections virtual addresses
    ipc/sem.c: add cond_resched in exit_sme
    ...

    Linus Torvalds
     
  • Kernel source files need not include explicitly
    because the top Makefile forces to include it with:

    -include $(srctree)/include/linux/kconfig.h

    This commit removes explicit includes except the following:

    * arch/s390/include/asm/facilities_src.h
    * tools/testing/radix-tree/linux/kernel.h

    These two are used for host programs.

    Link: http://lkml.kernel.org/r/1473656164-11929-1-git-send-email-yamada.masahiro@socionext.com
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     
  • A good practice is to prefix the names of functions by the name
    of the subsystem.

    The kthread worker API is a mix of classic kthreads and workqueues. Each
    worker has a dedicated kthread. It runs a generic function that process
    queued works. It is implemented as part of the kthread subsystem.

    This patch renames the existing kthread worker API to use
    the corresponding name from the workqueues API prefixed by
    kthread_:

    __init_kthread_worker() -> __kthread_init_worker()
    init_kthread_worker() -> kthread_init_worker()
    init_kthread_work() -> kthread_init_work()
    insert_kthread_work() -> kthread_insert_work()
    queue_kthread_work() -> kthread_queue_work()
    flush_kthread_work() -> kthread_flush_work()
    flush_kthread_worker() -> kthread_flush_worker()

    Note that the names of DEFINE_KTHREAD_WORK*() macros stay
    as they are. It is common that the "DEFINE_" prefix has
    precedence over the subsystem names.

    Note that INIT() macros and init() functions use different
    naming scheme. There is no good solution. There are several
    reasons for this solution:

    + "init" in the function names stands for the verb "initialize"
    aka "initialize worker". While "INIT" in the macro names
    stands for the noun "INITIALIZER" aka "worker initializer".

    + INIT() macros are used only in DEFINE() macros

    + init() functions are used close to the other kthread()
    functions. It looks much better if all the functions
    use the same scheme.

    + There will be also kthread_destroy_worker() that will
    be used close to kthread_cancel_work(). It is related
    to the init() function. Again it looks better if all
    functions use the same naming scheme.

    + there are several precedents for such init() function
    names, e.g. amd_iommu_init_device(), free_area_init_node(),
    jump_label_init_type(), regmap_init_mmio_clk(),

    + It is not an argument but it was inconsistent even before.

    [arnd@arndb.de: fix linux-next merge conflict]
    Link: http://lkml.kernel.org/r/20160908135724.1311726-1-arnd@arndb.de
    Link: http://lkml.kernel.org/r/1470754545-17632-3-git-send-email-pmladek@suse.com
    Suggested-by: Andrew Morton
    Signed-off-by: Petr Mladek
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Ingo Molnar
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Cc: "Paul E. McKenney"
    Cc: Josh Triplett
    Cc: Thomas Gleixner
    Cc: Jiri Kosina
    Cc: Borislav Petkov
    Cc: Michal Hocko
    Cc: Vlastimil Babka
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Petr Mladek
     
  • KASLR memory randomization can randomize the base of the physical memory
    mapping (PAGE_OFFSET), vmalloc (VMALLOC_START) and vmemmap
    (VMEMMAP_START). Adding these variables on VMCOREINFO so tools can easily
    identify the base of each memory section.

    Link: http://lkml.kernel.org/r/1471531632-23003-1-git-send-email-thgarnie@google.com
    Signed-off-by: Thomas Garnier
    Acked-by: Baoquan He
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H . Peter Anvin"
    Cc: Eric Biederman
    Cc: Xunlei Pang
    Cc: HATAYAMA Daisuke
    Cc: Kees Cook
    Cc: Eugene Surovegin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Garnier
     
  • Daniel Walker reported problems which happens when
    crash_kexec_post_notifiers kernel option is enabled
    (https://lkml.org/lkml/2015/6/24/44).

    In that case, smp_send_stop() is called before entering kdump routines
    which assume other CPUs are still online. As the result, kdump
    routines fail to save other CPUs' registers. Additionally for MIPS
    OCTEON, it misses to stop the watchdog timer.

    To fix this problem, call a new kdump friendly function,
    crash_smp_send_stop(), instead of the smp_send_stop() when
    crash_kexec_post_notifiers is enabled. crash_smp_send_stop() is a
    weak function, and it just call smp_send_stop(). Architecture
    codes should override it so that kdump can work appropriately.
    This patch provides MIPS version.

    Fixes: f06e5153f4ae (kernel/panic.c: add "crash_kexec_post_notifiers" option)
    Link: http://lkml.kernel.org/r/20160810080950.11028.28000.stgit@sysi4-13.yrl.intra.hitachi.co.jp
    Signed-off-by: Hidehiro Kawai
    Reported-by: Daniel Walker
    Cc: Dave Young
    Cc: Baoquan He
    Cc: Vivek Goyal
    Cc: Eric Biederman
    Cc: Masami Hiramatsu
    Cc: Daniel Walker
    Cc: Xunlei Pang
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Borislav Petkov
    Cc: David Vrabel
    Cc: Toshi Kani
    Cc: Ralf Baechle
    Cc: David Daney
    Cc: Aaro Koskinen
    Cc: "Steven J. Hill"
    Cc: Corey Minyard
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hidehiro Kawai
     
  • Daniel Walker reported problems which happens when
    crash_kexec_post_notifiers kernel option is enabled
    (https://lkml.org/lkml/2015/6/24/44).

    In that case, smp_send_stop() is called before entering kdump routines
    which assume other CPUs are still online. As the result, for x86, kdump
    routines fail to save other CPUs' registers and disable virtualization
    extensions.

    To fix this problem, call a new kdump friendly function,
    crash_smp_send_stop(), instead of the smp_send_stop() when
    crash_kexec_post_notifiers is enabled. crash_smp_send_stop() is a weak
    function, and it just call smp_send_stop(). Architecture codes should
    override it so that kdump can work appropriately. This patch only
    provides x86-specific version.

    For Xen's PV kernel, just keep the current behavior.

    NOTES:

    - Right solution would be to place crash_smp_send_stop() before
    __crash_kexec() invocation in all cases and remove smp_send_stop(), but
    we can't do that until all architectures implement own
    crash_smp_send_stop()

    - crash_smp_send_stop()-like work is still needed by
    machine_crash_shutdown() because crash_kexec() can be called without
    entering panic()

    Fixes: f06e5153f4ae (kernel/panic.c: add "crash_kexec_post_notifiers" option)
    Link: http://lkml.kernel.org/r/20160810080948.11028.15344.stgit@sysi4-13.yrl.intra.hitachi.co.jp
    Signed-off-by: Hidehiro Kawai
    Reported-by: Daniel Walker
    Cc: Dave Young
    Cc: Baoquan He
    Cc: Vivek Goyal
    Cc: Eric Biederman
    Cc: Masami Hiramatsu
    Cc: Daniel Walker
    Cc: Xunlei Pang
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Borislav Petkov
    Cc: David Vrabel
    Cc: Toshi Kani
    Cc: Ralf Baechle
    Cc: David Daney
    Cc: Aaro Koskinen
    Cc: "Steven J. Hill"
    Cc: Corey Minyard
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hidehiro Kawai
     
  • Add support for the DMA_ATTR_NO_WARN attribute on powerpc iommu code.

    Link: http://lkml.kernel.org/r/1470092390-25451-3-git-send-email-mauricfo@linux.vnet.ibm.com
    Signed-off-by: Mauricio Faria de Oliveira
    Acked-by: Michael Ellerman
    Cc: Keith Busch
    Cc: Jens Axboe
    Cc: Benjamin Herrenschmidt
    Cc: Krzysztof Kozlowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mauricio Faria de Oliveira
     
  • Currently, all callers to randomize_range() set the length to 0 and
    calculate end by adding a constant to the start address. We can simplify
    the API to remove a bunch of needless checks and variables.

    Use the new randomize_addr(start, range) call to set the requested
    address.

    Link: http://lkml.kernel.org/r/20160803233913.32511-7-jason@lakedaemon.net
    Signed-off-by: Jason Cooper
    Acked-by: Kees Cook
    Cc: "Theodore Ts'o"
    Cc: Guan Xuetao
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jason Cooper
     
  • Currently, all callers to randomize_range() set the length to 0 and
    calculate end by adding a constant to the start address. We can simplify
    the API to remove a bunch of needless checks and variables.

    Use the new randomize_addr(start, range) call to set the requested
    address.

    Link: http://lkml.kernel.org/r/20160803233913.32511-6-jason@lakedaemon.net
    Signed-off-by: Jason Cooper
    Acked-by: Kees Cook
    Cc: "Theodore Ts'o"
    Cc: Chris Metcalf
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jason Cooper
     
  • Currently, all callers to randomize_range() set the length to 0 and
    calculate end by adding a constant to the start address. We can simplify
    the API to remove a bunch of needless checks and variables.

    Use the new randomize_addr(start, range) call to set the requested
    address.

    Link: http://lkml.kernel.org/r/20160803233913.32511-5-jason@lakedaemon.net
    Signed-off-by: Jason Cooper
    Acked-by: Will Deacon
    Acked-by: Kees Cook
    Cc: "Russell King - ARM Linux"
    Cc: Catalin Marinas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jason Cooper
     
  • Currently, all callers to randomize_range() set the length to 0 and
    calculate end by adding a constant to the start address. We can simplify
    the API to remove a bunch of needless checks and variables.

    Use the new randomize_addr(start, range) call to set the requested
    address.

    Link: http://lkml.kernel.org/r/20160803233913.32511-4-jason@lakedaemon.net
    Signed-off-by: Jason Cooper
    Acked-by: Kees Cook
    Cc: "Russell King - ARM Linux"
    Cc: "Theodore Ts'o"
    Cc: Catalin Marinas
    Cc: Will Deacon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jason Cooper
     
  • Currently, all callers to randomize_range() set the length to 0 and
    calculate end by adding a constant to the start address. We can simplify
    the API to remove a bunch of needless checks and variables.

    Use the new randomize_addr(start, range) call to set the requested
    address.

    Link: http://lkml.kernel.org/r/20160803233913.32511-3-jason@lakedaemon.net
    Signed-off-by: Jason Cooper
    Acked-by: Kees Cook
    Cc: "Theodore Ts'o"
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H . Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jason Cooper
     
  • In commit 2b4e3ad8f579 ("powerpc/mm/hash64: Don't test for machine type
    to detect HEA special case") we changed the logic in might_have_hea()
    to check FW_FEATURE_SPLPAR rather than machine_is(pseries).

    However the check was incorrectly negated, leading to crashes on
    machines with HEA adapters, such as:

    mm: Hashing failure ! EA=0xd000080080004040 access=0x800000000000000e current=NetworkManager
    trap=0x300 vsid=0x13d349c ssize=1 base psize=2 psize 2 pte=0xc0003cc033e701ae
    Unable to handle kernel paging request for data at address 0xd000080080004040
    Call Trace:
    .ehea_create_cq+0x148/0x340 [ehea] (unreliable)
    .ehea_up+0x258/0x1200 [ehea]
    .ehea_open+0x44/0x1a0 [ehea]
    ...

    Fix it by removing the negation.

    Fixes: 2b4e3ad8f579 ("powerpc/mm/hash64: Don't test for machine type to detect HEA special case")
    Cc: stable@vger.kernel.org # v4.8+
    Reported-by: Denis Kirjanov
    Reported-by: Jan Stancek
    Signed-off-by: Michael Ellerman

    Michael Ellerman
     
  • Debugging a data corruption issue with virtio-net/vhost-net led to
    the observation that __copy_tofrom_user was occasionally returning
    a value 16 larger than it should. Since the return value from
    __copy_tofrom_user is the number of bytes not copied, this means
    that __copy_tofrom_user can occasionally return a value larger
    than the number of bytes it was asked to copy. In turn this can
    cause higher-level copy functions such as copy_page_to_iter_iovec
    to corrupt memory by copying data into the wrong memory locations.

    It turns out that the failing case involves a fault on the store
    at label 79, and at that point the first unmodified byte of the
    destination is at R3 + 16. Consequently the exception handler
    for that store needs to add 16 to R3 before using it to work out
    how many bytes were not copied, but in this one case it was not
    adding the offset to R3. To fix it, this moves the label 179 to
    the point where we add 16 to R3. I have checked manually all the
    exception handlers for the loads and stores in this code and the
    rest of them are correct (it would be excellent to have an
    automated test of all the exception cases).

    This bug has been present since this code was initially
    committed in May 2002 to Linux version 2.5.20.

    Cc: stable@vger.kernel.org
    Signed-off-by: Paul Mackerras
    Signed-off-by: Michael Ellerman

    Paul Mackerras
     
  • Pull media updates from Mauro Carvalho Chehab:

    - Documentation improvements: conversion of all non-DocBook documents
    to Sphinx and lots of fixes to the uAPI media book

    - New PCI driver for Techwell TW5864 media grabber boards

    - New SoC driver for ATMEL Image Sensor Controller

    - Removal of some obsolete SoC drivers (s5p-tv driver and soc_camera
    drivers)

    - Addition of ST CEC driver

    - Lots of drivers fixes, improvements and additions

    * tag 'media/v4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (464 commits)
    [media] ttusb_dec: avoid the risk of go past buffer
    [media] cx23885: Fix some smatch warnings
    [media] si2165: switch to regmap
    [media] si2165: use i2c_client->dev instead of i2c_adapter->dev for logging
    [media] si2165: Remove legacy attach
    [media] cx231xx: attach si2165 driver via i2c_client
    [media] cx231xx: Prepare for attaching new style i2c_client DVB demod drivers
    [media] cx23885: attach si2165 driver via i2c_client
    [media] si2165: support i2c_client attach
    [media] si2165: avoid division by zero
    [media] rcar-vin: add R-Car gen2 fallback compatibility string
    [media] lgdt3306a: remove 20*50 msec unnecessary timeout
    [media] cx25821: Remove deprecated create_singlethread_workqueue
    [media] cx25821: Drop Freeing of Workqueue
    [media] cxd2841er: force 8MHz bandwidth for DVB-C if specified bw not supported
    [media] redrat3: hardware-specific parameters
    [media] redrat3: remove hw_timeout member
    [media] cxd2841er: BER and SNR reading for ISDB-T
    [media] dvb-usb: avoid link error with dib3000m{b,c|
    [media] dvb-usb: split out common parts of dibusb
    ...

    Linus Torvalds
     
  • Pull IOMMU updates from Joerg Roedel:

    - support for interrupt virtualization in the AMD IOMMU driver. These
    patches were shared with the KVM tree and are already merged through
    that tree.

    - generic DT-binding support for the ARM-SMMU driver. With this the
    driver now makes use of the generic DMA-API code. This also required
    some changes outside of the IOMMU code, but these are acked by the
    respective maintainers.

    - more cleanups and fixes all over the place.

    * tag 'iommu-updates-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (40 commits)
    iommu/amd: No need to wait iommu completion if no dte irq entry change
    iommu/amd: Free domain id when free a domain of struct dma_ops_domain
    iommu/amd: Use standard bitmap operation to set bitmap
    iommu/amd: Clean up the cmpxchg64 invocation
    iommu/io-pgtable-arm: Check for v7s-incapable systems
    iommu/dma: Avoid PCI host bridge windows
    iommu/dma: Add support for mapping MSIs
    iommu/arm-smmu: Set domain geometry
    iommu/arm-smmu: Wire up generic configuration support
    Docs: dt: document ARM SMMU generic binding usage
    iommu/arm-smmu: Convert to iommu_fwspec
    iommu/arm-smmu: Intelligent SMR allocation
    iommu/arm-smmu: Add a stream map entry iterator
    iommu/arm-smmu: Streamline SMMU data lookups
    iommu/arm-smmu: Refactor mmu-masters handling
    iommu/arm-smmu: Keep track of S2CR state
    iommu/arm-smmu: Consolidate stream map entry state
    iommu/arm-smmu: Handle stream IDs more dynamically
    iommu/arm-smmu: Set PRIVCFG in stage 1 STEs
    iommu/arm-smmu: Support non-PCI devices with SMMUv3
    ...

    Linus Torvalds
     
  • Show the real trap name when the kernel crashes.

    Signed-off-by: Helge Deller

    Helge Deller
     
  • Commit 4fe9e1d957e4 ("parisc: Drop bootmem and switch to memblock")
    switched to the memblock allocator, but missed to zero-initialize the
    newly allocated memblocks. This lead to crashes on some machines like
    the rp3410.

    Fixes: 4fe9e1d957e4 ("parisc: Drop bootmem and switch to memblock")
    Signed-off-by: Helge Deller

    Helge Deller
     

11 Oct, 2016

5 commits

  • The aflags-vdso is based on ccflags-vdso, which already contains the -I*
    and -EL/-EB flags from KBUILD_CFLAGS, but those flags are needlessly
    added again to aflags-vdso.

    Drop the duplication.

    Signed-off-by: James Hogan
    Reported-by: Maciej W. Rozycki
    Reviewed-by: Maciej W. Rozycki
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14369/
    Signed-off-by: Ralf Baechle

    James Hogan
     
  • The native ABI vDSO linker script vdso.lds is built by preprocessing
    vdso.lds.S, with the native -mabi flag passed in to get the correct ABI
    definitions. Unfortunately however certain toolchains choke on -mabi=64
    without a corresponding compatible -march flag, for example:

    cc1: error: ‘-march=mips32r2’ is not compatible with the selected ABI
    scripts/Makefile.build:338: recipe for target 'arch/mips/vdso/vdso.lds' failed

    Fix this by including ccflags-vdso in the KBUILD_CPPFLAGS for vdso.lds,
    which includes the appropriate -march flag.

    Fixes: ebb5e78cc634 ("MIPS: Initial implementation of a VDSO")
    Signed-off-by: James Hogan
    Reviewed-by: Maciej W. Rozycki
    Cc: linux-mips@linux-mips.org
    Cc: stable@vger.kernel.org # 4.4.x-
    Patchwork: https://patchwork.linux-mips.org/patch/14368/
    Signed-off-by: Ralf Baechle

    James Hogan
     
  • power4_fixup_nap is called from the "common" handlers, not the virt/real
    handlers, therefore it should itself be a common handler. Placing it
    down in the trampoline space caused it to go out of reach of its
    callers, requiring a trampoline inserted at the start of the text
    section, which breaks the fixed section address calculations.

    Fixes: da2bc4644c75 ("powerpc/64s: Add new exception vector macros")
    Reported-by: Guenter Roeck
    Signed-off-by: Nicholas Piggin
    Signed-off-by: Michael Ellerman

    Nicholas Piggin
     
  • This commit fixes a stack corruption in the pseries specific code dealing
    with the huge pages.

    In __pSeries_lpar_hugepage_invalidate() the buffer used to pass arguments
    to the hypervisor is not large enough. This leads to a stack corruption
    where a previously saved register could be corrupted leading to unexpected
    result in the caller, like the following panic:

    Oops: Kernel access of bad area, sig: 11 [#1]
    SMP NR_CPUS=2048 NUMA pSeries
    Modules linked in: virtio_balloon ip_tables x_tables autofs4
    virtio_blk 8139too virtio_pci virtio_ring 8139cp virtio
    CPU: 11 PID: 1916 Comm: mmstress Not tainted 4.8.0 #76
    task: c000000005394880 task.stack: c000000005570000
    NIP: c00000000027bf6c LR: c00000000027bf64 CTR: 0000000000000000
    REGS: c000000005573820 TRAP: 0300 Not tainted (4.8.0)
    MSR: 8000000000009033 CR: 84822884 XER: 20000000
    CFAR: c00000000010a924 DAR: 420000000014e5e0 DSISR: 40000000 SOFTE: 1
    GPR00: c00000000027bf64 c000000005573aa0 c000000000e02800 c000000004447964
    GPR04: c00000000404de18 c000000004d38810 00000000042100f5 00000000f5002104
    GPR08: e0000000f5002104 0000000000000001 042100f5000000e0 00000000042100f5
    GPR12: 0000000000002200 c00000000fe02c00 c00000000404de18 0000000000000000
    GPR16: c1ffffffffffe7ff 00003fff62000000 420000000014e5e0 00003fff63000000
    GPR20: 0008000000000000 c0000000f7014800 0405e600000000e0 0000000000010000
    GPR24: c000000004d38810 c000000004447c10 c00000000404de18 c000000004447964
    GPR28: c000000005573b10 c000000004d38810 00003fff62000000 420000000014e5e0
    NIP [c00000000027bf6c] zap_huge_pmd+0x4c/0x470
    LR [c00000000027bf64] zap_huge_pmd+0x44/0x470
    Call Trace:
    [c000000005573aa0] [c00000000027bf64] zap_huge_pmd+0x44/0x470 (unreliable)
    [c000000005573af0] [c00000000022bbd8] unmap_page_range+0xcf8/0xed0
    [c000000005573c30] [c00000000022c2d4] unmap_vmas+0x84/0x120
    [c000000005573c80] [c000000000235448] unmap_region+0xd8/0x1b0
    [c000000005573d80] [c0000000002378f0] do_munmap+0x2d0/0x4c0
    [c000000005573df0] [c000000000237be4] SyS_munmap+0x64/0xb0
    [c000000005573e30] [c000000000009560] system_call+0x38/0x108
    Instruction dump:
    fbe1fff8 fb81ffe0 7c7f1b78 7ca32b78 7cbd2b78 f8010010 7c9a2378 f821ffb1
    7cde3378 4bfffea9 7c7b1b79 41820298 48000130 7fa5eb78 7fc4f378

    Most of the time, the bug is surfacing in a caller up in the stack from
    __pSeries_lpar_hugepage_invalidate() which is quite confusing.

    This bug is pending since v3.11 but was hidden if a caller of the
    caller of __pSeries_lpar_hugepage_invalidate() has pushed the corruped
    register (r18 in this case) in the stack and is not using it until
    restoring it. GCC 6.2.0 seems to raise it more frequently.

    This commit also change the definition of the parameter buffer in
    pSeries_lpar_flush_hash_range() to rely on the global define
    PLPAR_HCALL9_BUFSIZE (no functional change here).

    Fixes: 1a5272866f87 ("powerpc: Optimize hugepage invalidate")
    Cc: stable@vger.kernel.org # v3.11+
    Signed-off-by: Laurent Dufour
    Reviewed-by: Aneesh Kumar K.V
    Acked-by: Balbir Singh
    Signed-off-by: Michael Ellerman

    Laurent Dufour
     
  • Freescale updates from Scott:

    "Highlights include qbman support (a prerequisite for datapath drivers
    such as ethernet), a PCI DMA fix+improvement, reset handler changes, more
    8xx optimizations, and some cleanups and fixes."

    Michael Ellerman