09 Jan, 2017

2 commits

  • Pull char/misc fixes from Greg KH:
    "Here are a few small char/misc driver fixes for 4.10-rc3.

    Two MEI driver fixes, and three NVMEM patches for reported issues, and
    a new Hyper-V driver MAINTAINER update. Nothing major at all, all have
    been in linux-next with no reported issues"

    * tag 'char-misc-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    hyper-v: Add myself as additional MAINTAINER
    nvmem: fix nvmem_cell_read() return type doc
    nvmem: imx-ocotp: Fix wrong register size
    nvmem: qfprom: Allow single byte accesses for read/write
    mei: move write cb to completion on credentials failures
    mei: bus: fix mei_cldev_enable KDoc

    Linus Torvalds
     
  • Pull staging/IIO fixes from Greg KH:
    "Here are some staging and IIO driver fixes for 4.10-rc3.

    Most of these are minor IIO fixes of reported issues, along with one
    network driver fix to resolve an issue. And a MAINTAINERS update with
    a new mailing list. All of these, except the MAINTAINERS file update,
    have been in linux-next with no reported issues (the MAINTAINERS patch
    happened on Friday...)"

    * tag 'staging-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    MAINTAINERS: add greybus subsystem mailing list
    staging: octeon: Call SET_NETDEV_DEV()
    iio: accel: st_accel: fix LIS3LV02 reading and scaling
    iio: common: st_sensors: fix channel data parsing
    iio: max44000: correct value in illuminance_integration_time_available
    iio: adc: TI_AM335X_ADC should depend on HAS_DMA
    iio: bmi160: Fix time needed to sleep after command execution
    iio: 104-quad-8: Fix active level mismatch for the preset enable option
    iio: 104-quad-8: Fix off-by-one errors when addressing IOR
    iio: 104-quad-8: Fix index control configuration

    Linus Torvalds
     

08 Jan, 2017

4 commits

  • Several people report seeing warnings about inconsistent radix tree
    nodes followed by crashes in the workingset code, which all looked like
    use-after-free access from the shadow node shrinker.

    Dave Jones managed to reproduce the issue with a debug patch applied,
    which confirmed that the radix tree shrinking indeed frees shadow nodes
    while they are still linked to the shadow LRU:

    WARNING: CPU: 2 PID: 53 at lib/radix-tree.c:643 delete_node+0x1e4/0x200
    CPU: 2 PID: 53 Comm: kswapd0 Not tainted 4.10.0-rc2-think+ #3
    Call Trace:
    delete_node+0x1e4/0x200
    __radix_tree_delete_node+0xd/0x10
    shadow_lru_isolate+0xe6/0x220
    __list_lru_walk_one.isra.4+0x9b/0x190
    list_lru_walk_one+0x23/0x30
    scan_shadow_nodes+0x2e/0x40
    shrink_slab.part.44+0x23d/0x5d0
    shrink_node+0x22c/0x330
    kswapd+0x392/0x8f0

    This is the WARN_ON_ONCE(!list_empty(&node->private_list)) placed in the
    inlined radix_tree_shrink().

    The problem is with 14b468791fa9 ("mm: workingset: move shadow entry
    tracking to radix tree exceptional tracking"), which passes an update
    callback into the radix tree to link and unlink shadow leaf nodes when
    tree entries change, but forgot to pass the callback when reclaiming a
    shadow node.

    While the reclaimed shadow node itself is unlinked by the shrinker, its
    deletion from the tree can cause the left-most leaf node in the tree to
    be shrunk. If that happens to be a shadow node as well, we don't unlink
    it from the LRU as we should.

    Consider this tree, where the s are shadow entries:

    root->rnode
    |
    [0 n]
    | |
    [s ] [sssss]

    Now the shadow node shrinker reclaims the rightmost leaf node through
    the shadow node LRU:

    root->rnode
    |
    [0 ]
    |
    [s ]

    Because the parent of the deleted node is the first level below the
    root and has only one child in the left-most slot, the intermediate
    level is shrunk and the node containing the single shadow is put in
    its place:

    root->rnode
    |
    [s ]

    The shrinker again sees a single left-most slot in a first level node
    and thus decides to store the shadow in root->rnode directly and free
    the node - which is a leaf node on the shadow node LRU.

    root->rnode
    |
    s

    Without the update callback, the freed node remains on the shadow LRU,
    where it causes later shrinker runs to crash.

    Pass the node updater callback into __radix_tree_delete_node() in case
    the deletion causes the left-most branch in the tree to collapse too.

    Also add warnings when linked nodes are freed right away, rather than
    wait for the use-after-free when the list is scanned much later.

    Fixes: 14b468791fa9 ("mm: workingset: move shadow entry tracking to radix tree exceptional tracking")
    Reported-by: Dave Chinner
    Reported-by: Hugh Dickins
    Reported-by: Andrea Arcangeli
    Reported-and-tested-by: Dave Jones
    Signed-off-by: Johannes Weiner
    Cc: Christoph Hellwig
    Cc: Chris Leech
    Cc: Lee Duncan
    Cc: Jan Kara
    Cc: Kirill A. Shutemov
    Cc: Matthew Wilcox
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • 4.10-rc loadtest (even on x86, and even without THPCache) fails with
    "fork: Cannot allocate memory" or some such; and /proc/meminfo shows
    PageTables growing.

    Commit 953c66c2b22a ("mm: THP page cache support for ppc64") that got
    merged in rc1 removed the freeing of an unused preallocated pagetable
    after do_fault_around() has called map_pages().

    This is usually a good optimization, so that the followup doesn't have
    to reallocate one; but it's not sufficient to shift the freeing into
    alloc_set_pte(), since there are failure cases (most commonly
    VM_FAULT_RETRY) which never reach finish_fault().

    Check and free it at the outer level in do_fault(), then we don't need
    to worry in alloc_set_pte(), and can restore that to how it was (I
    cannot find any reason to pte_free() under lock as it was doing).

    And fix a separate pagetable leak, or crash, introduced by the same
    change, that could only show up on some ppc64: why does do_set_pmd()'s
    failure case attempt to withdraw a pagetable when it never deposited
    one, at the same time overwriting (so leaking) the vmf->prealloc_pte?
    Residue of an earlier implementation, perhaps? Delete it.

    Fixes: 953c66c2b22a ("mm: THP page cache support for ppc64")
    Cc: Aneesh Kumar K.V
    Cc: Kirill A. Shutemov
    Cc: Michael Ellerman
    Cc: Benjamin Herrenschmidt
    Cc: Michael Neuling
    Cc: Paul Mackerras
    Cc: Balbir Singh
    Cc: Andrew Morton
    Signed-off-by: Hugh Dickins
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • Pull kbuild fix from Michal Marek:
    "The asm-prototypes.h file added in the last merge window results in
    invalid code with CONFIG_KMEMCHECK=y. The net result is that genksyms
    segfaults.

    This pull request fixes the header, the genksyms fix is in my kbuild
    branch for 4.11"

    * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    asm-prototypes: Clear any CPP defines before declaring the functions

    Linus Torvalds
     
  • The Greybus driver subsystem has a mailing list, so list it in the
    MAINTAINERS file so that people know to send patches there as well.

    Signed-off-by: Greg Kroah-Hartman
    Acked-by: Johan Hovold
    Reviewed-by: Viresh Kumar
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

07 Jan, 2017

11 commits

  • Pull sound fixes from Takashi Iwai:
    "Nothing particular stands out, only a few small fixes for USB-audio,
    HD-audio and Firewire. The USB-audio fix is the respin of the previous
    race fix after a revert due to the regression"

    * tag 'sound-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    Revert "ALSA: firewire-lib: change structure member with proper type"
    ALSA: usb-audio: test EP_FLAG_RUNNING at urb completion
    ALSA: usb-audio: Fix irq/process data synchronization
    ALSA: hda - Apply asus-mode8 fixup to ASUS X71SL
    ALSA: hda - Fix up GPIO for ASUS ROG Ranger
    ALSA: firewire-lib: change structure member with proper type
    ALSA: firewire-tascam: Fix to handle error from initialization of stream data
    ALSA: fireworks: fix asymmetric API call at unit removal

    Linus Torvalds
     
  • Pull clk fixes from Stephen Boyd:
    "One fix for a broken driver on Renesas RZ/A1 SoCs with bootloaders
    that don't turn all the clks on and another fix for stm32f4 SoCs where
    we have multiple drivers attaching to the same DT node"

    * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
    clk: stm32f4: Use CLK_OF_DECLARE_DRIVER initialization method
    clk: renesas: mstp: Support 8-bit registers for r7s72100

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

    Pull hwmon fix from Guenter Roeck:
    "Fix temp1_max_alarm attribute in lm90 driver"

    * tag 'hwmon-for-linus-v4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: (lm90) fix temp1_max_alarm attribute

    Linus Torvalds
     
  • Pull KVM fixes from Radim Krčmář:
    "MIPS:
    - fix host kernel crashes when receiving a signal with 64-bit
    userspace

    - flush instruction cache on all vcpus after generating entry code

    (both for stable)

    x86:
    - fix NULL dereference in MMU caused by SMM transitions (for stable)

    - correct guest instruction pointer after emulating some VMX errors

    - minor cleanup"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: VMX: remove duplicated declaration
    KVM: MIPS: Flush KVM entry code from icache globally
    KVM: MIPS: Don't clobber CP0_Status.UX
    KVM: x86: reset MMU on KVM_SET_VCPU_EVENTS
    KVM: nVMX: fix instruction skipping during emulated vm-entry

    Linus Torvalds
     
  • Pull arm64 fixes from Catalin Marinas:

    - re-introduce the arm64 get_current() optimisation

    - KERN_CONT fallout fix in show_pte()

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: restore get_current() optimisation
    arm64: mm: fix show_pte KERN_CONT fallout

    Linus Torvalds
     
  • Pull VFIO fixes from Alex Williamson:
    - Add mtty sample driver properly into build system (Alex Williamson)
    - Restore type1 mapping performance after mdev (Alex Williamson)
    - Fix mdev device race (Alex Williamson)
    - Cleanups to the mdev ABI used by vendor drivers (Alex Williamson)
    - Build fix for old compilers (Arnd Bergmann)
    - Fix sample driver error path (Dan Carpenter)
    - Handle pci_iomap() error (Arvind Yadav)
    - Fix mdev ioctl return type (Paul Gortmaker)

    * tag 'vfio-v4.10-rc3' of git://github.com/awilliam/linux-vfio:
    vfio-mdev: fix non-standard ioctl return val causing i386 build fail
    vfio-pci: Handle error from pci_iomap
    vfio-mdev: fix some error codes in the sample code
    vfio-pci: use 32-bit comparisons for register address for gcc-4.5
    vfio-mdev: Make mdev_device private and abstract interfaces
    vfio-mdev: Make mdev_parent private
    vfio-mdev: de-polute the namespace, rename parent_device & parent_ops
    vfio-mdev: Fix remove race
    vfio/type1: Restore mapping performance with mdev support
    vfio-mdev: Fix mtty sample driver building

    Linus Torvalds
     
  • Pull swiotlb fixes from Konrad Rzeszutek Wilk:
    "This has one fix to make i915 work when using Xen SWIOTLB, and a
    feature from Geert to aid in debugging of devices that can't do DMA
    outside the 32-bit address space.

    The feature from Geert is on top of v4.10 merge window commit
    (specifically you pulling my previous branch), as his changes were
    dependent on the Documentation/ movement patches.

    I figured it would just easier than me trying than to cherry-pick the
    Documentation patches to satisfy git.

    The patches have been soaking since 12/20, albeit I updated the last
    patch due to linux-next catching an compiler error and adding an
    Tested-and-Reported-by tag"

    * 'stable/for-linus-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb:
    swiotlb: Export swiotlb_max_segment to users
    swiotlb: Add swiotlb=noforce debug option
    swiotlb: Convert swiotlb_force from int to enum
    x86, swiotlb: Simplify pci_swiotlb_detect_override()

    Linus Torvalds
     
  • Pull IOMMU fixes from Joerg Roedel:
    "Three fixes queued up:

    - fix an issue with command buffer overflow handling in the AMD IOMMU
    driver

    - add an additional context entry flush to the Intel VT-d driver to
    make sure any old context entry from kdump copying is flushed out
    of the cache

    - correct the encoding of the PASID table size in the Intel VT-d
    driver"

    * tag 'iommu-fixes-v4.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
    iommu/amd: Fix the left value check of cmd buffer
    iommu/vt-d: Fix pasid table size encoding
    iommu/vt-d: Flush old iommu caches for kdump when the device gets context mapped

    Linus Torvalds
     
  • Pull ACPI fixes from Rafael Wysocki:
    "These fix a device enumeration problem related to _ADR matching and an
    IOMMU initialization issue related to the DMAR table missing, remove
    an excessive function call from the core ACPI code, update an error
    message in the ACPI WDAT watchdog driver and add a way to work around
    problems with unhandled GPE notifications.

    Specifics:

    - Fix a device enumeration issue leading to incorrect associations
    between ACPI device objects and platform device objects
    representing physical devices if the given device object has both
    _ADR and _HID (Rafael Wysocki).

    - Avoid passing NULL to acpi_put_table() during IOMMU initialization
    which triggers a (rightful) warning from ACPICA (Rafael Wysocki).

    - Drop an excessive call to acpi_dma_deconfigure() from the core code
    that binds ACPI device objects to device objects representing
    physical devices (Lorenzo Pieralisi).

    - Update an error message in the ACPI WDAT watchdog driver to make it
    provide more useful information (Mika Westerberg).

    - Add a mechanism to work around issues with unhandled GPE
    notifications that occur during system initialization and cannot be
    prevented by means of sysfs (Lv Zheng)"

    * tag 'acpi-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / DMAR: Avoid passing NULL to acpi_put_table()
    ACPI / scan: Prefer devices without _HID/_CID for _ADR matching
    ACPI / watchdog: Print out error number when device creation fails
    ACPI / sysfs: Provide quirk mechanism to prevent GPE flooding
    ACPI: Drop misplaced acpi_dma_deconfigure() call from acpi_bind_one()

    Linus Torvalds
     
  • Pull power management fixes from Rafael Wysocki:
    "These fix a few issues in the intel_pstate driver, a documetation
    issue, a false-positive compiler warning in the generic power domains
    framework and two problems in the devfreq subsystem. They also update
    the MAINTAINERS entry for devfreq and add a new "compatible" string to
    the generic cpufreq-dt driver.

    Specifics:

    - Fix a few intel_pstate driver issues: add missing locking it two
    places, avoid exposing a useless debugfs interface and keep the
    attribute values in sysfs in sync (Rafael Wysocki).

    - Drop confusing kernel-doc references related to power management
    and ACPI from the driver API manual (Rafael Wysocki).

    - Make a false-positive compiler warning in the generic power domains
    framework go away (Augusto Mecking Caringi).

    - Fix two initialization issues in the devfreq subsystem and update
    the MAINTAINERS entry for it (Chanwoo Choi).

    - Add a new "compatible" string for APM X-Gene 2 to the generic DT
    cpufreq driver (Hoan Tran)"

    * tag 'pm-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    cpufreq: dt: Add support for APM X-Gene 2
    PM / devfreq: exynos-bus: Fix the wrong return value
    PM / devfreq: Fix the bug of devfreq_add_device when governor is NULL
    MAINTAINERS: Add myself as reviewer for DEVFREQ subsystem support
    PM / docs: Drop confusing kernel-doc references from infrastructure.rst
    PM / domains: Fix 'may be used uninitialized' build warning
    cpufreq: intel_pstate: Always keep all limits settings in sync
    cpufreq: intel_pstate: Use locking in intel_cpufreq_verify_policy()
    cpufreq: intel_pstate: Use locking in intel_pstate_resume()
    cpufreq: intel_pstate: Do not expose PID parameters in passive mode

    Linus Torvalds
     
  • So they can figure out what is the optimal number of pages
    that can be contingously stitched together without fear of
    bounce buffer.

    We also expose an mechanism for sub-users of SWIOTLB API, such
    as Xen-SWIOTLB to set the max segment value. And lastly
    if swiotlb=force is set (which mandates we bounce buffer everything)
    we set max_segment so at least we can bounce buffer one 4K page
    instead of a giant 512KB one for which we may not have space.

    Signed-off-by: Konrad Rzeszutek Wilk
    Reported-and-Tested-by: Juergen Gross

    Konrad Rzeszutek Wilk
     

06 Jan, 2017

12 commits

  • * acpi-scan:
    ACPI / scan: Prefer devices without _HID/_CID for _ADR matching
    ACPI: Drop misplaced acpi_dma_deconfigure() call from acpi_bind_one()

    * acpi-sysfs:
    ACPI / sysfs: Provide quirk mechanism to prevent GPE flooding

    * acpi-wdat:
    ACPI / watchdog: Print out error number when device creation fails

    * acpi-tables:
    ACPI / DMAR: Avoid passing NULL to acpi_put_table()

    Rafael J. Wysocki
     
  • * pm-domains:
    PM / domains: Fix 'may be used uninitialized' build warning

    * pm-docs:
    PM / docs: Drop confusing kernel-doc references from infrastructure.rst

    * pm-devfreq:
    PM / devfreq: exynos-bus: Fix the wrong return value
    PM / devfreq: Fix the bug of devfreq_add_device when governor is NULL
    MAINTAINERS: Add myself as reviewer for DEVFREQ subsystem support

    Rafael J. Wysocki
     
  • * pm-cpufreq:
    cpufreq: dt: Add support for APM X-Gene 2
    cpufreq: intel_pstate: Always keep all limits settings in sync
    cpufreq: intel_pstate: Use locking in intel_cpufreq_verify_policy()
    cpufreq: intel_pstate: Use locking in intel_pstate_resume()
    cpufreq: intel_pstate: Do not expose PID parameters in passive mode

    Rafael J. Wysocki
     
  • …/linux-platform-drivers-x86

    Pull x86 platform driver fixes from Darren Hart:
    "Just two small fixes for platform drivers x86:

    - use brightness_set_blocking for LED-setting callbacks on Fujitsu
    laptops

    - fix surface3_button build errors"

    * tag 'platform-drivers-x86-v4.10-3' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
    platform/x86: fujitsu-laptop: use brightness_set_blocking for LED-setting callbacks
    platform/x86: fix surface3_button build errors

    Linus Torvalds
     
  • Pull audit fixes from Paul Moore:
    "Two small fixes relating to audit's use of fsnotify.

    The first patch plugs a leak and the second fixes some lock
    shenanigans. The patches are small and I banged on this for an
    afternoon with our testsuite and didn't see anything odd"

    * 'stable-4.10' of git://git.infradead.org/users/pcmoore/audit:
    audit: Fix sleep in atomic
    fsnotify: Remove fsnotify_duplicate_mark()

    Linus Torvalds
     
  • Pull i915 drm fixes from Jani Nikula:
    "Here's a bunch of drm/i915 fixes for v4.10-rc3. It includes GVT-g
    fixes.

    My new year's resolution is to start using signed tags for pulls. If
    that feels like a déjà vu, it's ((new year's) resolution), not (new
    (year's resolution))"

    [ Taking this directly from Jani because Dave Airlie is only partially
    connected right now. - Linus ]

    * tag 'drm-intel-fixes-2017-01-05' of git://anongit.freedesktop.org/git/drm-intel:
    drm/i915: Prevent timeline updates whilst performing reset
    drm/i915: Silence allocation failure during sg_trim()
    drm/i915: Don't clflush before release phys object
    drm/i915: Fix oops in overlay due to frontbuffer tracking
    drm/i915: Fix oopses in the overlay code due to i915_gem_active stuff
    drm/i915: Initialize overlay->last_flip properly
    drm/i915: Move the min_pixclk[] handling to the end of readout
    drm/i915: Force VDD off on the new power seqeuencer before starting to use it
    drm/i915/gvt: fix typo in cfg_space range check
    drm/i915/gvt: fix an issue in emulating cfg space PCI_COMMAND
    drm/i915/gvt/kvmgt: trival: code cleanup
    drm/i915/gvt/kvmgt: prevent double-release of vgpu
    drm/i915/gvt/kvmgt: check returned slot for gfn
    drm/i915/gvt/kvmgt: dereference the pointer within lock
    drm/i915/gvt: reset the GGTT entry when vGPU created
    drm/i915/gvt: fix an error in opregion handling

    Linus Torvalds
     
  • Pull pin control fixes from Linus Walleij:
    "Three small pin control fixes for the v4.10 series. Very little to say
    about them, just driver fixes.

    - one fix to the AMD pinctrl ACPI glue

    - fix requests on the Meson driver

    - fix bitfield widths on Samsungs Exynos 5433"

    * tag 'pinctrl-v4.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
    pinctrl: samsung: Fix the width of PINCFG_TYPE_DRV bitfields for Exynos5433
    pinctrl: meson: fix gpio request disabling other modes
    pinctrl/amd: Set the level based on ACPI tables

    Linus Torvalds
     
  • Pull ARM SoC fixes from Arnd Bergmann:
    "This is a rather large set of bugfixes, as we just returned from the
    Christmas break. Most of these are relatively unimportant fixes for
    regressions introduced during the merge window, and about half of the
    changes are for mach-omap2.

    A couple of patches are just cleanups and dead code removal that I
    would not normally have considered for merging after -rc2, but I
    decided to take them along with the fixes this time.

    Notable fixes include:

    - removing the skeleton.dtsi include broke a number of machines, and
    we have to put empty /chosen nodes back to be able to pass kernel
    command lines as before

    - enabling Samsung platforms no longer hardwires CONFIG_HZ to 200, as
    it had been for no good reason for a long time"

    * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (46 commits)
    MAINTAINERS: extend PSCI entry to cover the newly add PSCI checker code
    drivers: psci: annotate timer on stack to silence odebug messages
    ARM64: defconfig: enable DRM_MESON as module
    ARM64: dts: meson-gx: Add Graphic Controller nodes
    ARM64: dts: meson-gxl: fix GPIO include
    ARM: dts: imx6: Disable "weim" node in the dtsi files
    ARM: dts: qcom: apq8064: Add missing scm clock
    ARM: davinci: da8xx: Fix sleeping function called from invalid context
    ARM: davinci: Make __clk_{enable,disable} functions public
    ARM: davinci: da850: don't add emac clock to lookup table twice
    ARM: davinci: da850: fix infinite loop in clk_set_rate()
    ARM: i.MX: remove map_io callback
    ARM: dts: vf610-zii-dev-rev-b: Add missing newline
    ARM: dts: imx6qdl-nitrogen6x: remove duplicate iomux entry
    ARM: dts: imx31: fix AVIC base address
    ARM: dts: am572x-idk: Add gpios property to control PCIE_RESETn
    arm64: dts: vexpress: Support GICC_DIR operations
    ARM: dts: vexpress: Support GICC_DIR operations
    firmware: arm_scpi: fix reading sensor values on pre-1.0 SCPI firmwares
    arm64: dts: msm8996: Add required memory carveouts
    ...

    Linus Torvalds
     
  • Pull xen fixes and cleanups from Juergen Gross:

    - small fixes for xenbus driver

    - one fix for xen dom0 boot on huge system

    - small cleanups

    * tag 'for-linus-4.10-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    Xen: ARM: Zero reserved fields of xatp before making hypervisor call
    xen: events: Replace BUG() with BUG_ON()
    xen: remove stale xs_input_avail() from header
    xen: return xenstore command failures via response instead of rc
    xen: xenbus driver must not accept invalid transaction ids
    xen/evtchn: use rb_entry()
    xen/setup: Don't relocate p2m over existing one

    Linus Torvalds
     
  • Update the Hyper-V MAINTAINERS to include myself.

    Signed-off-by: Stephen Hemminger
    Acked-by: K. Y. Srinivasan
    Signed-off-by: Greg Kroah-Hartman

    Stephen Hemminger
     
  • Rather than keep a list of all possible compression types in the
    Makefile, set the target explicitly from Kconfig.

    Reviewed-by: Francisco Blas Izquierdo Riera (klondike)
    Signed-off-by: Nicholas Piggin
    Signed-off-by: Linus Torvalds

    Nicholas Piggin
     
  • When using initramfs compression, the data file compression suffix
    gets quotes pulled in from Kconfig, e.g., initramfs_data.cpio".gz"
    which make does not match a target and causes rebuild.

    Fix this by filtering out quotes from the Kconfig string.

    Fixes: 35e669e1a254 ("initramfs: select builtin initram compression algorithm on KConfig instead of Makefile")
    Reviewed-by: Francisco Blas Izquierdo Riera (klondike)
    Signed-off-by: Nicholas Piggin
    Signed-off-by: Linus Torvalds

    Nicholas Piggin
     

05 Jan, 2017

11 commits

  • Linus reported that commit 174cc7187e6f "ACPICA: Tables: Back port
    acpi_get_table_with_size() and early_acpi_os_unmap_memory() from
    Linux kernel" added a new warning on his desktop system:

    ACPI Warning: Table ffffffff9fe6c0a0, Validation count is zero before decrement

    which turns out to come from the acpi_put_table() in
    detect_intel_iommu().

    This happens if the DMAR table is not present in which case NULL is
    passed to acpi_put_table() which doesn't check against that and
    attempts to handle it regardless.

    For this reason, check the pointer passed to acpi_put_table()
    before invoking it.

    Reported-by: Linus Torvalds
    Tested-by: Paul E. McKenney
    Fixes: 6b11d1d67713 ("ACPI / osl: Remove acpi_get_table_with_size()/early_acpi_os_unmap_memory() users")
    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • Declaration of VMX_VPID_EXTENT_SUPPORTED_MASK occures twice in the code.
    Probably, it was happened after unsuccessful merge.

    Signed-off-by: Jan Dakinevich
    Signed-off-by: Radim Krčmář

    Jan Dakinevich
     
  • Flush the KVM entry code from the icache on all CPUs, not just the one
    that built the entry code.

    Signed-off-by: James Hogan
    Cc: Paolo Bonzini
    Cc: "Radim Krčmář"
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Cc: # 3.16.x-
    Signed-off-by: Radim Krčmář

    James Hogan
     
  • On 64-bit kernels, MIPS KVM will clear CP0_Status.UX to prevent the
    guest (running in user mode) from accessing the 64-bit memory segments.
    However the previous value of CP0_Status.UX is never restored when
    exiting from the guest.

    If the user process uses 64-bit addressing (the n64 ABI) this can result
    in address error exceptions from the kernel if it needs to deliver a
    signal before returning to user mode, as the kernel will need to write a
    sigframe to high user addresses on the user stack which are disallowed
    by CP0_Status.UX=0.

    This is fixed by explicitly setting SX and UX again when exiting from
    the guest, and explicitly clearing those bits when returning to the
    guest. Having the SX and UX bits set when handling guest exits (rather
    than only when exiting to userland) will be helpful when we support VZ,
    since we shouldn't need to directly read or write guest memory, so it
    will be valid for cache management IPIs to access host user addresses.

    Signed-off-by: James Hogan
    Cc: Paolo Bonzini
    Cc: "Radim Krčmář"
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Cc: # 4.8.x-
    Signed-off-by: Radim Krčmář

    James Hogan
     
  • The asm-prototypes.h file is used to provide dummy function declarations
    for genksyms, when processing asm files with EXPORT_SYMBOL. Make sure
    that any architecture defines get out of our way. x86 currently has an
    issue with memcpy on 64bit with CONFIG_KMEMCHECK=y and with
    memset/__memset on 32bit:

    $ cat init/test.c
    #include
    $ make -s init/test.o
    In file included from ./arch/x86/include/asm/string.h:4:0,
    from ./include/linux/string.h:18,
    from ./include/linux/bitmap.h:8,
    from ./include/linux/cpumask.h:11,
    from ./arch/x86/include/asm/cpumask.h:4,
    from ./arch/x86/include/asm/msr.h:10,
    from ./arch/x86/include/asm/processor.h:20,
    from ./arch/x86/include/asm/cpufeature.h:4,
    from ./arch/x86/include/asm/thread_info.h:52,
    from ./include/linux/thread_info.h:25,
    from ./arch/x86/include/asm/preempt.h:6,
    from ./include/linux/preempt.h:59,
    from ./include/linux/spinlock.h:50,
    from ./include/linux/seqlock.h:35,
    from ./include/linux/time.h:5,
    from ./include/uapi/linux/timex.h:56,
    from ./include/linux/timex.h:56,
    from ./include/linux/sched.h:19,
    from ./include/linux/uaccess.h:4,
    from ./arch/x86/include/asm/asm-prototypes.h:2,
    from init/test.c:1:
    ./arch/x86/include/asm/string_64.h:52:47: error: expected declaration specifiers or ‘...’ before ‘(’ token
    #define memcpy(dst, src, len) __inline_memcpy((dst), (src), (len))
    ./include/asm-generic/asm-prototypes.h:6:14: note: in expansion of macro ‘memcpy’
    extern void *memcpy(void *, const void *, __kernel_size_t);

    ^
    ...

    During real build, this manifests itself by genksyms segfaulting.

    Fixes: 334bb7738764 ("x86/kbuild: enable modversions for symbols exported from asm")
    Reported-and-tested-by: Borislav Petkov
    Cc: Adam Borowski
    Signed-off-by: Michal Marek

    Michal Marek
     
  • This reverts commit 6b7e95d1336b9eb0d4c6db190ce756480496bd13. This commit
    is based on a concern about value of the given parameter. It's expected
    to be ORed value with some enumeration-constants, thus often it can not be
    one of the enumeration-constants. I understood that this is out of
    specification and causes implementation-dependent issues.

    In C language specification, enumerated type can be interpreted as an
    integer type, in which all of enumeration-constants in corresponding
    enumerator-list can be stored. Implementations can select one of char,
    signed int and unsigned int as its type, and this selection is
    implementation-dependent.

    In GCC, a signed integer is selected when at least one of
    enumeration-constants has negative value, else an unsigned integer is
    selected. This behaviour can be switched by -fshort-enums to short type.
    Anyway, the type can be decided after scanning all of
    enumeration-constants.

    Totally, there's no rules to constrain the value of enumerated type to
    be one of enumeration-constants. In short, in enumerated type, decision
    of actual type for the type is the most important and
    enumeration-constants are just used for the decision, thus it's permitted
    to have an integer value in a range of enumeration-constants. In our case,
    actual type for the type is currently deterministic to be either char or
    unsigned int. Under GCC, it's unsigned int.

    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     
  • Testing EP_FLAG_RUNNING in snd_complete_urb() before running the completion
    logic allows us to save a few cpu cycles by returning early, skipping the
    pending urb in case the stream was stopped; the stop logic handles the urb
    and sets the completion callbacks to NULL.

    Signed-off-by: Ioan-Adrian Ratiu
    Signed-off-by: Takashi Iwai

    Ioan-Adrian Ratiu
     
  • Commit 16200948d83 ("ALSA: usb-audio: Fix race at stopping the stream") was
    incomplete causing another more severe kernel panic, so it got reverted.
    This fixes both the original problem and its fallout kernel race/crash.

    The original fix is to move the endpoint member NULL clearing logic inside
    wait_clear_urbs() so the irq triggering the urb completion doesn't call
    retire_capture/playback_urb() after the NULL clearing and generate a panic.

    However this creates a new race between snd_usb_endpoint_start()'s call
    to wait_clear_urbs() and the irq urb completion handler which again calls
    retire_capture/playback_urb() leading to a new NULL dereference.

    We keep the EP deactivation code in snd_usb_endpoint_start() because
    removing it will break the EP reference counting (see [1] [2] for info),
    however we don't need the "can_sleep" mechanism anymore because a new
    function was introduced (snd_usb_endpoint_sync_pending_stop()) which
    synchronizes pending stops and gets called inside the pcm prepare callback.

    It also makes sense to remove can_sleep because it was also removed from
    deactivate_urbs() signature in [3] so we benefit from more simplification.

    [1] commit 015618b90 ("ALSA: snd-usb: Fix URB cancellation at stream start")
    [2] commit e9ba389c5 ("ALSA: usb-audio: Fix scheduling-while-atomic bug in PCM capture stream")
    [3] commit ccc1696d5 ("ALSA: usb-audio: simplify endpoint deactivation code")

    Fixes: f8114f8583bb ("Revert "ALSA: usb-audio: Fix race at stopping the stream"")

    Signed-off-by: Ioan-Adrian Ratiu
    Signed-off-by: Takashi Iwai

    Ioan-Adrian Ratiu
     
  • Pull xfs fixes from Darrick Wong:

    - fixes for crashes and double-cleanup errors

    - XFS maintainership handover

    - fix to prevent absurdly large block reservations

    - fix broken sysfs getter/setters

    * tag 'xfs-for-linus-4.10-rc3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
    xfs: fix max_retries _show and _store functions
    xfs: update MAINTAINERS
    xfs: fix crash and data corruption due to removal of busy COW extents
    xfs: use the actual AG length when reserving blocks
    xfs: fix double-cleanup when CUI recovery fails

    Linus Torvalds
     
  • Add the compatible string for supporting the generic device tree cpufreq-dt
    driver on APM's X-Gene 2 SoC.

    Signed-off-by: Hoan Tran
    Acked-by: Viresh Kumar
    Signed-off-by: Rafael J. Wysocki

    Hoan Tran
     
  • Pull networking fixes from David Miller:

    1) stmmac_drv_probe() can race with stmmac_open() because we register
    the netdevice too early. Fix from Florian Fainelli.

    2) UFO handling in __ip6_append_data() and ip6_finish_output() use
    different tests for deciding whether a frame will be fragmented or
    not, put them in sync. Fix from Zheng Li.

    3) The rtnetlink getstats handlers need to validate that the netlink
    request is large enough, fix from Mathias Krause.

    4) Use after free in mlx4 driver, from Jack Morgenstein.

    5) Fix setting of garbage UID value in sockets during setattr() calls,
    from Eric Biggers.

    6) Packet drop_monitor doesn't format the netlink messages properly
    such that nlmsg_next fails to work, fix from Reiter Wolfgang.

    7) Fix handling of wildcard addresses in l2tp lookups, from Guillaume
    Nault.

    8) __skb_flow_dissect() can crash on pptp packets, from Ian Kumlien.

    9) IGMP code doesn't reset group query timers properly, from Michal
    Tesar.

    10) Fix overzealous MAIN/LOCAL route table combining in ipv4, from
    Alexander Duyck.

    11) vxlan offload check needs to be more strict in be2net driver, from
    Sabrina Dubroca.

    12) Moving l3mdev to packet hooks lost RX stat counters unintentionally,
    fix from David Ahern.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (52 commits)
    sh_eth: enable RX descriptor word 0 shift on SH7734
    sfc: don't report RX hash keys to ethtool when RSS wasn't enabled
    dpaa_eth: Initialize CGR structure before init
    dpaa_eth: cleanup after init_phy() failure
    net: systemport: Pad packet before inserting TSB
    net: systemport: Utilize skb_put_padto()
    LiquidIO VF: s/select/imply/ for PTP_1588_CLOCK
    libcxgb: fix error check for ip6_route_output()
    net: usb: asix_devices: add .reset_resume for USB PM
    net: vrf: Add missing Rx counters
    drop_monitor: consider inserted data in genlmsg_end
    benet: stricter vxlan offloading check in be_features_check
    ipv4: Do not allow MAIN to be alias for new LOCAL w/ custom rules
    net: macb: Updated resource allocation function calls to new version of API.
    net: stmmac: dwmac-oxnas: use generic pm implementation
    net: stmmac: dwmac-oxnas: fix fixed-link-phydev leaks
    net: stmmac: dwmac-oxnas: fix of-node leak
    Documentation/networking: fix typo in mpls-sysctl
    igmp: Make igmp group member RFC 3376 compliant
    flow_dissector: Update pptp handling to avoid null pointer deref.
    ...

    Linus Torvalds