30 May, 2018

1 commit

  • When we receive a RMI4 report, we should not unconditionally send an
    input_sync event. Instead, we should let the rmi4 transport layer do it
    for us.

    This fixes a situation where we might receive X in a report and the rest
    in a subsequent one. And this messes up user space.

    Link: https://bugs.freedesktop.org/show_bug.cgi?id=100436

    Signed-off-by: Benjamin Tissoires
    Acked-by: Peter Hutterer
    Tested-by: Oscar Morante
    Signed-off-by: Jiri Kosina

    Benjamin Tissoires
     

10 May, 2018

1 commit

  • Pull HID fixes from Jiri Kosina:

    - quirk for Toshiba Click Mini L9W-B, from Hans de Goede

    - intel-ish-hid and wacom error handling (device freeing) path fixes
    from Arvind Yadav

    - memory corruption fix in intel-ish-hid driver from Hans de Goede

    - a few new device ID additions to hid-lenovo from Peter Ganzhorn

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
    HID: i2c-hid: Add RESEND_REPORT_DESCR quirk for Toshiba Click Mini L9W-B
    HID: intel-ish-hid: use put_device() instead of kfree()
    HID: intel_ish-hid: Stop using a static local buffer in get_report()
    HID: intel_ish-hid: Move header size check to inside the loop
    HID: wacom: Release device resource data obtained by devres_alloc()
    HID: lenovo: Add support for IBM/Lenovo Scrollpoint mice

    Linus Torvalds
     

09 May, 2018

1 commit


08 May, 2018

3 commits

  • Pull libata fixes from Tejun Heo:
    "An earlier commit to add reset control for embedded ahci controllers
    affected some of the hardware specific drivers and got reverted for
    now.

    Other than that, just per-device workarounds and trivial changes"

    * 'for-4.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
    driver core: add __printf verification to __ata_ehi_pushv_desc
    ata: fix spelling mistake: "directon" -> "direction"
    libata: Apply NOLPM quirk for SanDisk SD7UB3Q*G1001 SSDs
    libata: Apply NOLPM quirk for SAMSUNG MZMPC128HBFU-000MV SSD
    ata: ahci: mvebu: override ahci_stop_engine for mvebu AHCI
    libahci: Allow drivers to override stop_engine
    Revert "ata: ahci-platform: add reset control support"

    Linus Torvalds
     
  • Pull pin control fixes from Linus Walleij:
    "Here are three pin control fixes.

    The Intel fixes are the most serious and important things I had queued
    since it affects a large portion of deployed Chromebooks.

    - Two major fixes for the Intel Cherryview and Sunrisepoint pin
    controllers, adjusting numberspaces so that they get aligned with
    various messed-up numbers encoded into the BIOS.

    - A fix for the Meson driver GPIO pin range"

    * tag 'pinctrl-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
    pinctrl: sunrisepoint: Align GPIO number space with Windows
    pinctrl: cherryview: Associate IRQ descriptors to irqdomain
    pinctrl: meson-axg: fix the range of aobus bank

    Linus Torvalds
     
  • Pull GPIO fixes from Linus Walleij:
    "Sorry for lagging behind on sending the first batch of GPIO fixes for
    this cycle. Just too busy conferencing and the weather was too nice.

    Here it is anyway: some real important polishing on the error path
    facing userspace (tagged for stable as well) and some normal driver
    fixes.

    - Fix proper IRQ unmasking in the Aspeed driver.

    - Do not free unrequested descriptors on the errorpath when creating
    line handles from the userspace chardev requested GPIO lines.

    - Also fix the errorpath in the linehandle creation function.

    - Fix the get/set multiple GPIO lines for a few of the funky
    industrial GPIO cards on the ISA bus"

    * tag 'gpio-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
    gpio: pcie-idio-24: Fix off-by-one error in get_multiple loop
    gpio: pcie-idio-24: Fix port memory offset for get_multiple/set_multiple callbacks
    gpio: pci-idio-16: Fix port memory offset for get_multiple callback
    gpio: fix error path in lineevent_create
    gpioib: do not free unrequested descriptors
    gpio: fix aspeed_gpio unmask irq

    Linus Torvalds
     

07 May, 2018

4 commits

  • CONFIG_PRREMPT -> CONFIG_PREEMPT

    Signed-off-by: Florian La Roche
    Signed-off-by: Linus Torvalds

    Florian La Roche
     
  • Pull DeviceTree fixes from Rob Herring:

    - fix path to display timing binding

    - fix some typos in interrupt-names and clock-names

    - fix a resource leak on overlay removal

    - add missing documentation for R8A77965 DMA, serial, and net

    - cleanup sunxi pinctrl description

    - add Kieback & Peter GmbH vendor prefix

    * tag 'devicetree-fixes-for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
    dt-bindings: panel: lvds: Fix path to display timing bindings
    dt-bindings: mvebu-uart: DT fix s/interrupts-names/interrupt-names/
    dt-bindings: meson-uart: DT fix s/clocks-names/clock-names/
    of: overlay: Stop leaking resources on overlay removal
    dtc: checks: drop warning for missing PCI bridge bus-range
    dt-bindings: dmaengine: rcar-dmac: document R8A77965 support
    dt-bindings: serial: sh-sci: Add support for r8a77965 (H)SCIF
    dt-bindings: net: ravb: Add support for r8a77965 SoC
    dt-bindings: pinctrl: sunxi: Fix reference to driver
    doc: Add vendor prefix for Kieback & Peter GmbH

    Linus Torvalds
     
  • __printf is useful to verify format and arguments. Remove the following
    warning (with W=1):

    drivers/ata/libata-eh.c:183:10: warning: function might be possible candidate for ‘gnu_printf’ format attribute [-Wsuggest-attribute=format]

    Signed-off-by: Mathieu Malaterre
    Signed-off-by: Tejun Heo

    Mathieu Malaterre
     
  • Linus Torvalds
     

06 May, 2018

9 commits

  • Pll KVM fixes from Radim Krčmář:
    "ARM:
    - Fix proxying of GICv2 CPU interface accesses
    - Fix crash when switching to BE
    - Track source vcpu git GICv2 SGIs
    - Fix an outdated bit of documentation

    x86:
    - Speed up injection of expired timers (for stable)"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: x86: remove APIC Timer periodic/oneshot spikes
    arm64: vgic-v2: Fix proxying of cpuif access
    KVM: arm/arm64: vgic_init: Cleanup reference to process_maintenance
    KVM: arm64: Fix order of vcpu_write_sys_reg() arguments
    KVM: arm/arm64: vgic: Fix source vcpu issues for GICv2 SGI

    Linus Torvalds
     
  • Pull iommu fixes from Joerg Roedel:

    - fix a compile warning in the AMD IOMMU driver with irq remapping
    disabled

    - fix for VT-d interrupt remapping and invalidation size (caused a
    BUG_ON when trying to invalidate more than 4GB)

    - build fix and a regression fix for broken graphics with old DTS for
    the rockchip iommu driver

    - a revert in the PCI window reservation code which fixes a regression
    with VFIO.

    * tag 'iommu-fixes-v4.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
    iommu: rockchip: fix building without CONFIG_OF
    iommu/vt-d: Use WARN_ON_ONCE instead of BUG_ON in qi_flush_dev_iotlb()
    iommu/vt-d: fix shift-out-of-bounds in bug checking
    iommu/dma: Move PCI window region reservation back into dma specific path.
    iommu/rockchip: Make clock handling optional
    iommu/amd: Hide unused iommu_table_lock
    iommu/vt-d: Fix usage of force parameter in intel_ir_reconfigure_irte()

    Linus Torvalds
     
  • Pull x86 fix from Thomas Gleixner:
    "Unbreak the CPUID CPUID_8000_0008_EBX reload which got dropped when
    the evaluation of physical and virtual bits which uses the same CPUID
    leaf was moved out of get_cpu_cap()"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/cpu: Restore CPUID_8000_0008_EBX reload

    Linus Torvalds
     
  • Pull clocksource fixes from Thomas Gleixner:
    "The recent addition of the early TSC clocksource breaks on machines
    which have an unstable TSC because in case that TSC is disabled, then
    the clocksource selection logic falls back to the early TSC which is
    obviously bogus.

    That also unearthed a few robustness issues in the clocksource
    derating code which are addressed as well"

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    clocksource: Rework stale comment
    clocksource: Consistent de-rate when marking unstable
    x86/tsc: Fix mark_tsc_unstable()
    clocksource: Initialize cs->wd_list
    clocksource: Allow clocksource_mark_unstable() on unregistered clocksources
    x86/tsc: Always unregister clocksource_tsc_early

    Linus Torvalds
     
  • Pull irq fix from Thomas Gleixner:
    "A single fix to prevent false positives in the spurious interrupt
    detector when more than a single demultiplex register is evaluated in
    the Qualcom irq combiner driver"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    irqchip/qcom: Fix check for spurious interrupts

    Linus Torvalds
     
  • Pull x86 platform driver fixes from Darren Hart:

    - We missed a case in the Dell config dependencies resulting in a
    possible bad configuration, resolve it by giving up on trying to keep
    DELL_LAPTOP visible in the menu and make it depend on DELL_SMBIOS.

    - Fix a null pointer dereference at module unload for the asus-wireless
    driver.

    * tag 'platform-drivers-x86-v4.17-2' of git://git.infradead.org/linux-platform-drivers-x86:
    platform/x86: Kconfig: Fix dell-laptop dependency chain.
    platform/x86: asus-wireless: Fix NULL pointer dereference

    Linus Torvalds
     
  • Pull USB fixes from Greg KH:
    "Here are some USB driver fixes for 4.17-rc4.

    The majority of them are some USB gadget fixes that missed my last
    pull request. The "largest" patch in here is a fix for the old visor
    driver that syzbot found 6 months or so ago and I finally remembered
    to fix it.

    All of these have been in linux-next with no reported issues"

    * tag 'usb-4.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    Revert "usb: host: ehci: Use dma_pool_zalloc()"
    usb: typec: tps6598x: handle block reads separately with plain-I2C adapters
    usb: typec: tcpm: Release the role mux when exiting
    USB: Accept bulk endpoints with 1024-byte maxpacket
    xhci: Fix use-after-free in xhci_free_virt_device
    USB: serial: visor: handle potential invalid device configuration
    USB: serial: option: adding support for ublox R410M
    usb: musb: trace: fix NULL pointer dereference in musb_g_tx()
    usb: musb: host: fix potential NULL pointer dereference
    usb: gadget: composite Allow for larger configuration descriptors
    usb: dwc3: gadget: Fix list_del corruption in dwc3_ep_dequeue
    usb: dwc3: gadget: dwc3_gadget_del_and_unmap_request() can be static
    usb: dwc2: pci: Fix error return code in dwc2_pci_probe()
    usb: dwc2: WA for Full speed ISOC IN in DDMA mode.
    usb: dwc2: dwc2_vbus_supply_init: fix error check
    usb: gadget: f_phonet: fix pn_net_xmit()'s return type

    Linus Torvalds
     
  • Since the commit "8003c9ae204e: add APIC Timer periodic/oneshot mode VMX
    preemption timer support", a Windows 10 guest has some erratic timer
    spikes.

    Here the results on a 150000 times 1ms timer without any load:
    Before 8003c9ae204e | After 8003c9ae204e
    Max 1834us | 86000us
    Mean 1100us | 1021us
    Deviation 59us | 149us
    Here the results on a 150000 times 1ms timer with a cpu-z stress test:
    Before 8003c9ae204e | After 8003c9ae204e
    Max 32000us | 140000us
    Mean 1006us | 1997us
    Deviation 140us | 11095us

    The root cause of the problem is starting hrtimer with an expiry time
    already in the past can take more than 20 milliseconds to trigger the
    timer function. It can be solved by forward such past timers
    immediately, rather than submitting them to hrtimer_start().
    In case the timer is periodic, update the target expiration and call
    hrtimer_start with it.

    v2: Check if the tsc deadline is already expired. Thank you Mika.
    v3: Execute the past timers immediately rather than submitting them to
    hrtimer_start().
    v4: Rearm the periodic timer with advance_periodic_target_expiration() a
    simpler version of set_target_expiration(). Thank you Paolo.

    Cc: Mika Penttilä
    Cc: Wanpeng Li
    Cc: Paolo Bonzini
    Cc: stable@vger.kernel.org
    Signed-off-by: Anthoine Bourgeois
    8003c9ae204e ("KVM: LAPIC: add APIC Timer periodic/oneshot mode VMX preemption timer support")
    Signed-off-by: Radim Krčmář

    Anthoine Bourgeois
     
  • KVM/arm fixes for 4.17, take #2

    - Fix proxying of GICv2 CPU interface accesses
    - Fix crash when switching to BE
    - Track source vcpu git GICv2 SGIs
    - Fix an outdated bit of documentation

    Radim Krčmář
     

05 May, 2018

17 commits

  • …masahiroy/linux-kbuild

    Pull Kbuild fixes from Masahiro Yamada:

    - remove state comment in modpost

    - extend MAINTAINERS entry to cover modpost and more makefiles

    - fix missed building of SANCOV gcc-plugin

    - replace left-over 'bison' with $(YACC)

    - display short log when generating parer of genksyms

    * tag 'kbuild-fixes-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    genksyms: fix typo in parse.tab.{c,h} generation rules
    kbuild: replace hardcoded bison in cmd_bison_h with $(YACC)
    gcc-plugins: fix build condition of SANCOV plugin
    MAINTAINERS: Update Kbuild entry with a few paths
    modpost: delete stale comment

    Linus Torvalds
     
  • Pull clk fixes froom Stephen Boyd:
    "A handful of fixes for the stm32mp1 clk driver came in during the
    merge window for the driver that got merged in the merge window.

    Plus a warning fix for unused PM ops and a couple fixes for the meson
    clk driver clk names that went unnoticed with the regmap rework.

    There's also another fix in here for the mux rounding flag which
    wasn't doing what it said it did, but now it does"

    * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
    clk: meson: meson8b: fix meson8b_cpu_clk parent clock name
    clk: meson: meson8b: fix meson8b_fclk_div3_div clock name
    clk: meson: drop meson_aoclk_gate_regmap_ops
    clk: meson: honor CLK_MUX_ROUND_CLOSEST in clk_regmap
    clk: honor CLK_MUX_ROUND_CLOSEST in generic clk mux
    clk: cs2000: mark resume function as __maybe_unused
    clk: stm32mp1: remove ck_apb_dbg clock
    clk: stm32mp1: set stgen_k clock as critical
    clk: stm32mp1: add missing tzc2 clock
    clk: stm32mp1: fix SAI3 & SAI4 clocks
    clk: stm32mp1: remove unused dfsdm_src[] const
    clk: stm32mp1: add missing static

    Linus Torvalds
     
  • Pull remoteproc and rpmsg fixes from Bjorn Andersson:

    - fix screw-up when reversing boolean for rproc_stop()

    - add missing OF node refcounting dereferences

    - add missing MODULE_ALIAS in rpmsg_char

    * tag 'rproc-v4.17-1' of git://github.com/andersson/remoteproc:
    rpmsg: added MODULE_ALIAS for rpmsg_char
    remoteproc: qcom: Fix potential device node leaks
    remoteproc: fix crashed parameter logic on stop call

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "vmwgfx, i915, vc4, vga dac fixes.

    This seems eerily quiet, so I expect it will explode next week or
    something.

    One i915 model firmware, two vmwgfx fixes, one vc4 fix and one bridge
    leak fix"

    * tag 'drm-fixes-for-v4.17-rc4' of git://people.freedesktop.org/~airlied/linux:
    drm/bridge: vga-dac: Fix edid memory leak
    drm/vc4: Make sure vc4_bo_{inc,dec}_usecnt() calls are balanced
    drm/i915/glk: Add MODULE_FIRMWARE for Geminilake
    drm/vmwgfx: Fix a buffer object leak
    drm/vmwgfx: Clean up fbdev modeset locking

    Linus Torvalds
     
  • Pull tracing fixes from Steven Rostedt:
    "Some of the files in the tracing directory show file mode 0444 when
    they are writable by root. To fix the confusion, they should be 0644.
    Note, either case root can still write to them.

    Zhengyuan asked why I never applied that patch (the first one is from
    2014!). I simply forgot about it. /me lowers head in shame"

    * tag 'trace-v4.17-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    tracing: Fix the file mode of stack tracer
    ftrace: Have set_graph_* files have normal file modes

    Linus Torvalds
     
  • Pull rdma fixes from Doug Ledford:
    "This is our first pull request of the rc cycle. It's not that it's
    been overly quiet, we were just waiting on a few things before sending
    this off.

    For instance, the 6 patch series from Intel for the hfi1 driver had
    actually been pulled in on Tuesday for a Wednesday pull request, only
    to have Jason notice something I missed, so we held off for some
    testing, and then on Thursday had to respin the series because the
    very first patch needed a minor fix (unnecessary cast is all).

    There is a sizable hns patch series in here, as well as a reasonably
    largish hfi1 patch series, then all of the lines of uapi updates are
    just the change to the new official Linux-OpenIB SPDX tag (a bunch of
    our files had what amounts to a BSD-2-Clause + MIT Warranty statement
    as their license as a result of the initial code submission years ago,
    and the SPDX folks decided it was unique enough to warrant a unique
    tag), then the typical mlx4 and mlx5 updates, and finally some cxgb4
    and core/cache/cma updates to round out the bunch.

    None of it was overly large by itself, but in the 2 1/2 weeks we've
    been collecting patches, it has added up :-/.

    As best I can tell, it's been through 0day (I got a notice about my
    last for-next push, but not for my for-rc push, but Jason seems to
    think that failure messages are prioritized and success messages not
    so much). It's also been through linux-next. And yes, we did notice in
    the context portion of the CMA query gid fix patch that there is a
    dubious BUG_ON() in the code, and have plans to audit our BUG_ON usage
    and remove it anywhere we can.

    Summary:

    - Various build fixes (USER_ACCESS=m and ADDR_TRANS turned off)

    - SPDX license tag cleanups (new tag Linux-OpenIB)

    - RoCE GID fixes related to default GIDs

    - Various fixes to: cxgb4, uverbs, cma, iwpm, rxe, hns (big batch),
    mlx4, mlx5, and hfi1 (medium batch)"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (52 commits)
    RDMA/cma: Do not query GID during QP state transition to RTR
    IB/mlx4: Fix integer overflow when calculating optimal MTT size
    IB/hfi1: Fix memory leak in exception path in get_irq_affinity()
    IB/{hfi1, rdmavt}: Fix memory leak in hfi1_alloc_devdata() upon failure
    IB/hfi1: Fix NULL pointer dereference when invalid num_vls is used
    IB/hfi1: Fix loss of BECN with AHG
    IB/hfi1 Use correct type for num_user_context
    IB/hfi1: Fix handling of FECN marked multicast packet
    IB/core: Make ib_mad_client_id atomic
    iw_cxgb4: Atomically flush per QP HW CQEs
    IB/uverbs: Fix kernel crash during MR deregistration flow
    IB/uverbs: Prevent reregistration of DM_MR to regular MR
    RDMA/mlx4: Add missed RSS hash inner header flag
    RDMA/hns: Fix a couple misspellings
    RDMA/hns: Submit bad wr
    RDMA/hns: Update assignment method for owner field of send wqe
    RDMA/hns: Adjust the order of cleanup hem table
    RDMA/hns: Only assign dqpn if IB_QP_PATH_DEST_QPN bit is set
    RDMA/hns: Remove some unnecessary attr_mask judgement
    RDMA/hns: Only assign mtu if IB_QP_PATH_MTU bit is set
    ...

    Linus Torvalds
     
  • Pull block fixes from Jens Axboe:
    "A collection of fixes that should to into this release. This contains:

    - Set of bcache fixes from Coly, fixing regression in patches that
    went into this series.

    - Set of NVMe fixes by way of Keith.

    - Set of bdi related fixes, one from Jan and two from Tetsuo Handa,
    fixing various issues around device addition/removal.

    - Two block inflight fixes from Omar, fixing issues around the
    transition to using tags for blk-mq inflight accounting that we
    did a few releases ago"

    * tag 'for-linus-20180504' of git://git.kernel.dk/linux-block:
    bdi: Fix oops in wb_workfn()
    nvmet: switch loopback target state to connecting when resetting
    nvme/multipath: Fix multipath disabled naming collisions
    nvme/multipath: Disable runtime writable enabling parameter
    nvme: Set integrity flag for user passthrough commands
    nvme: fix potential memory leak in option parsing
    bdi: Fix use after free bug in debugfs_remove()
    bdi: wake up concurrent wb_shutdown() callers.
    bcache: use pr_info() to inform duplicated CACHE_SET_IO_DISABLE set
    bcache: set dc->io_disable to true in conditional_stop_bcache_device()
    bcache: add wait_for_kthread_stop() in bch_allocator_thread()
    bcache: count backing device I/O error for writeback I/O
    bcache: set CACHE_SET_IO_DISABLE in bch_cached_dev_error()
    bcache: store disk name in struct cache and struct cached_dev
    blk-mq: fix sysfs inflight counter
    blk-mq: count allocated but not started requests in iostats inflight

    Linus Torvalds
     
  • Pull xfs fixes from Darrick Wong:
    "I've got one more bug fix for xfs for 4.17-rc4, which caps the amount
    of data we try to handle in one dedupe request so that userspace can't
    livelock the kernel.

    This series has been run through a full xfstests run during the week
    and through a quick xfstests run against this morning's master, with
    no ajor failures reported.

    Summary:

    - Cap the maximum length of a deduplication request at MAX_RW_COUNT/2
    to avoid kernel livelock due to excessively large IO requests"

    * tag 'xfs-4.17-fixes-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
    xfs: cap the length of deduplication requests

    Linus Torvalds
     
  • Pull btrfs fixes from David Sterba:
    "Two regression fixes and one fix for stable"

    * tag 'for-4.17-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
    Btrfs: send, fix missing truncate for inode with prealloc extent past eof
    btrfs: Take trans lock before access running trans in check_delayed_ref
    btrfs: Fix wrong first_key parameter in replace_path

    Linus Torvalds
     
  • 'quet' is replaced by 'quiet' in scripts/genksyms/Makefile

    Signed-off-by: Mauro Rossi
    Signed-off-by: Masahiro Yamada

    Mauro Rossi
     
  • Commit 73a4f6dbe70a ("kbuild: add LEX and YACC variables") missed to
    update cmd_bison_h somehow.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Since commit d677a4d60193 ("Makefile: support flag
    -fsanitizer-coverage=trace-cmp"), you miss to build the SANCOV
    plugin under some circumstances.

    CONFIG_KCOV=y
    CONFIG_KCOV_ENABLE_COMPARISONS=y
    Your compiler does not support -fsanitize-coverage=trace-pc
    Your compiler does not support -fsanitize-coverage=trace-cmp

    Under this condition, $(CFLAGS_KCOV) is not empty but contains a
    space, so the following ifeq-conditional is false.

    ifeq ($(CFLAGS_KCOV),)

    Then, scripts/Makefile.gcc-plugins misses to add sancov_plugin.so to
    gcc-plugin-y while the SANCOV plugin is necessary as an alternative
    means.

    Fixes: d677a4d60193 ("Makefile: support flag -fsanitizer-coverage=trace-cmp")
    Signed-off-by: Masahiro Yamada
    Acked-by: Kees Cook

    Masahiro Yamada
     
  • I managed to send some modpost patches to old addresses of both
    Masahiro and Michal, and omitted linux-kbuild from cc, because my
    tried and trusted scripts/get_maintainer wrapper failed me. Add the
    modpost directory to the MAINTAINERS entry, and while at it make the
    Makefile glob match scripts/Makefile itself, and add one matching the
    Kbuild.include file as well.

    Signed-off-by: Rasmus Villemoes
    Signed-off-by: Masahiro Yamada

    Rasmus Villemoes
     
  • …it/johan/usb-serial into usb-linus

    Johan writes:

    USB-serial fixes for v4.17-rc4

    Here's a fix for a long-standing issue in the visor driver, which could
    have security implications. Included is also a new modem device id.

    Both commits have been in linux-next for a couple of days with no
    reported issues.

    Signed-off-by: Johan Hovold <johan@kernel.org>

    Greg Kroah-Hartman
     
  • This reverts commit 22072e83ebd510fb6a090aef9d65ccfda9b1e7e4 as it is
    broken.

    Alan writes:
    What you can't see just from reading the patch is that in both
    cases (ehci->itd_pool and ehci->sitd_pool) there are two
    allocation paths -- the two branches of an "if" statement -- and
    only one of the paths calls dma_pool_[z]alloc. However, the
    memset is needed for both paths, and so it can't be eliminated.
    Given that it must be present, there's no advantage to calling
    dma_pool_zalloc rather than dma_pool_alloc.

    Reported-by: Erick Cafferata
    Cc: Alan Stern
    Cc: Souptick Joarder
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • As reported by Randy Dunlap:
    >> WARNING: unmet direct dependencies detected for DELL_SMBIOS
    >> Depends on [m]: X86 [=y] && X86_PLATFORM_DEVICES [=y]
    >> && (DCDBAS [=m] ||
    >> DCDBAS [=m]=n) && (ACPI_WMI [=n] || ACPI_WMI [=n]=n)
    >> Selected by [y]:
    >> - DELL_LAPTOP [=y] && X86 [=y] && X86_PLATFORM_DEVICES [=y]
    >> && DMI [=y]
    >> && BACKLIGHT_CLASS_DEVICE [=y] && (ACPI_VIDEO [=n] ||
    >> ACPI_VIDEO [=n]=n)
    >> && (RFKILL [=n] || RFKILL [=n]=n) && SERIO_I8042 [=y]
    >>

    Right now it's possible to set dell laptop to compile in but this
    causes dell-smbios to compile in which breaks if dcdbas is a module.

    Dell laptop shouldn't select dell-smbios anymore, but depend on it.

    Fixes: 32d7b19bad96 (platform/x86: dell-smbios: Resolve dependency error on DCDBAS)
    Reported-by: Randy Dunlap
    Signed-off-by: Mario Limonciello
    Cc: stable@vger.kernel.org
    Signed-off-by: Darren Hart (VMware)

    Mario Limonciello
     
  • When the module is removed the led workqueue is destroyed in the remove
    callback, before the led device is unregistered from the led subsystem.

    This leads to a NULL pointer derefence when the led device is
    unregistered automatically later as part of the module removal cleanup.
    Bellow is the backtrace showing the problem.

    BUG: unable to handle kernel NULL pointer dereference at (null)
    IP: __queue_work+0x8c/0x410
    PGD 0 P4D 0
    Oops: 0000 [#1] SMP NOPTI
    Modules linked in: ccm edac_mce_amd kvm_amd kvm irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc aesni_intel aes_x86_64 joydev crypto_simd asus_nb_wmi glue_helper uvcvideo snd_hda_codec_conexant snd_hda_codec_generic snd_hda_codec_hdmi snd_hda_intel asus_wmi snd_hda_codec cryptd snd_hda_core sparse_keymap videobuf2_vmalloc arc4 videobuf2_memops snd_hwdep input_leds videobuf2_v4l2 ath9k psmouse videobuf2_core videodev ath9k_common snd_pcm ath9k_hw media fam15h_power ath k10temp snd_timer mac80211 i2c_piix4 r8169 mii mac_hid cfg80211 asus_wireless(-) snd soundcore wmi shpchp 8250_dw ip_tables x_tables amdkfd amd_iommu_v2 amdgpu radeon chash i2c_algo_bit drm_kms_helper syscopyarea serio_raw sysfillrect sysimgblt fb_sys_fops ahci ttm libahci drm video
    CPU: 3 PID: 2177 Comm: rmmod Not tainted 4.15.0-5-generic #6+dev94.b4287e5bem1-Endless
    Hardware name: ASUSTeK COMPUTER INC. X555DG/X555DG, BIOS 5.011 05/05/2015
    RIP: 0010:__queue_work+0x8c/0x410
    RSP: 0018:ffffbe8cc249fcd8 EFLAGS: 00010086
    RAX: ffff992ac6810800 RBX: 0000000000000000 RCX: 0000000000000008
    RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffff992ac6400e18
    RBP: ffffbe8cc249fd18 R08: ffff992ac6400db0 R09: 0000000000000000
    R10: 0000000000000040 R11: ffff992ac6400dd8 R12: 0000000000002000
    R13: ffff992abd762e00 R14: ffff992abd763e38 R15: 000000000001ebe0
    FS: 00007f318203e700(0000) GS:ffff992aced80000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000000000 CR3: 00000001c720e000 CR4: 00000000001406e0
    Call Trace:
    queue_work_on+0x38/0x40
    led_state_set+0x2c/0x40 [asus_wireless]
    led_set_brightness_nopm+0x14/0x40
    led_set_brightness+0x37/0x60
    led_trigger_set+0xfc/0x1d0
    led_classdev_unregister+0x32/0xd0
    devm_led_classdev_release+0x11/0x20
    release_nodes+0x109/0x1f0
    devres_release_all+0x3c/0x50
    device_release_driver_internal+0x16d/0x220
    driver_detach+0x3f/0x80
    bus_remove_driver+0x55/0xd0
    driver_unregister+0x2c/0x40
    acpi_bus_unregister_driver+0x15/0x20
    asus_wireless_driver_exit+0x10/0xb7c [asus_wireless]
    SyS_delete_module+0x1da/0x2b0
    entry_SYSCALL_64_fastpath+0x24/0x87
    RIP: 0033:0x7f3181b65fd7
    RSP: 002b:00007ffe74bcbe18 EFLAGS: 00000206 ORIG_RAX: 00000000000000b0
    RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f3181b65fd7
    RDX: 000000000000000a RSI: 0000000000000800 RDI: 0000555ea2559258
    RBP: 0000555ea25591f0 R08: 00007ffe74bcad91 R09: 000000000000000a
    R10: 0000000000000000 R11: 0000000000000206 R12: 0000000000000003
    R13: 00007ffe74bcae00 R14: 0000000000000000 R15: 0000555ea25591f0
    Code: 01 00 00 02 0f 85 7d 01 00 00 48 63 45 d4 48 c7 c6 00 f4 fa 87 49 8b 9d 08 01 00 00 48 03 1c c6 4c 89 f7 e8 87 fb ff ff 48 85 c0 8b 3b 0f 84 c5 01 00 00 48 39 f8 0f 84 bc 01 00 00 48 89 c7
    RIP: __queue_work+0x8c/0x410 RSP: ffffbe8cc249fcd8
    CR2: 0000000000000000
    ---[ end trace 7aa4f4a232e9c39c ]---

    Unregistering the led device on the remove callback before destroying the
    workqueue avoids this problem.

    https://bugzilla.kernel.org/show_bug.cgi?id=196097

    Reported-by: Dun Hum
    Cc: stable@vger.kernel.org
    Signed-off-by: João Paulo Rechi Vita
    Signed-off-by: Darren Hart (VMware)

    João Paulo Rechi Vita
     

04 May, 2018

4 commits

  • Pull xen cleanup from Juergen Gross:
    "One cleanup to remove VLAs from the kernel"

    * tag 'for-linus-4.17-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    x86/xen: Remove use of VLAs

    Linus Torvalds
     
  • Proxying the cpuif accesses at EL2 makes use of vcpu_data_guest_to_host
    and co, which check the endianness, which call into vcpu_read_sys_reg...
    which isn't mapped at EL2 (it was inlined before, and got moved OoL
    with the VHE optimizations).

    The result is of course a nice panic. Let's add some specialized
    cruft to keep the broken platforms that require this hack alive.

    But, this code used vcpu_data_guest_to_host(), which expected us to
    write the value to host memory, instead we have trapped the guest's
    read or write to an mmio-device, and are about to replay it using the
    host's readl()/writel() which also perform swabbing based on the host
    endianness. This goes wrong when both host and guest are big-endian,
    as readl()/writel() will undo the guest's swabbing, causing the
    big-endian value to be written to device-memory.

    What needs doing?
    A big-endian guest will have pre-swabbed data before storing, undo this.
    If its necessary for the host, writel() will re-swab it.

    For a read a big-endian guest expects to swab the data after the load.
    The hosts's readl() will correct for host endianness, giving us the
    device-memory's value in the register. For a big-endian guest, swab it
    as if we'd only done the load.

    For a little-endian guest, nothing needs doing as readl()/writel() leave
    the correct device-memory value in registers.

    Tested on Juno with that rarest of things: a big-endian 64K host.
    Based on a patch from Marc Zyngier.

    Reported-by: Suzuki K Poulose
    Fixes: bf8feb39642b ("arm64: KVM: vgic-v2: Add GICV access from HYP")
    Signed-off-by: James Morse
    Signed-off-by: Marc Zyngier

    James Morse
     
  • One comment still mentioned process_maintenance operations after
    commit af0614991ab6 ("KVM: arm/arm64: vgic: Get rid of unnecessary
    process_maintenance operation")

    Update the comment to point to vgic_fold_lr_state instead, which
    is where maintenance interrupts are taken care of.

    Acked-by: Christoffer Dall
    Signed-off-by: Valentin Schneider
    Signed-off-by: Marc Zyngier

    Valentin Schneider
     
  • A typo in kvm_vcpu_set_be()'s call:
    | vcpu_write_sys_reg(vcpu, SCTLR_EL1, sctlr)
    causes us to use the 32bit register value as an index into the sys_reg[]
    array, and sail off the end of the linear map when we try to bring up
    big-endian secondaries.

    | Unable to handle kernel paging request at virtual address ffff80098b982c00
    | Mem abort info:
    | ESR = 0x96000045
    | Exception class = DABT (current EL), IL = 32 bits
    | SET = 0, FnV = 0
    | EA = 0, S1PTW = 0
    | Data abort info:
    | ISV = 0, ISS = 0x00000045
    | CM = 0, WnR = 1
    | swapper pgtable: 4k pages, 48-bit VAs, pgdp = 000000002ea0571a
    | [ffff80098b982c00] pgd=00000009ffff8803, pud=0000000000000000
    | Internal error: Oops: 96000045 [#1] PREEMPT SMP
    | Modules linked in:
    | CPU: 2 PID: 1561 Comm: kvm-vcpu-0 Not tainted 4.17.0-rc3-00001-ga912e2261ca6-dirty #1323
    | Hardware name: ARM Juno development board (r1) (DT)
    | pstate: 60000005 (nZCv daif -PAN -UAO)
    | pc : vcpu_write_sys_reg+0x50/0x134
    | lr : vcpu_write_sys_reg+0x50/0x134

    | Process kvm-vcpu-0 (pid: 1561, stack limit = 0x000000006df4728b)
    | Call trace:
    | vcpu_write_sys_reg+0x50/0x134
    | kvm_psci_vcpu_on+0x14c/0x150
    | kvm_psci_0_2_call+0x244/0x2a4
    | kvm_hvc_call_handler+0x1cc/0x258
    | handle_hvc+0x20/0x3c
    | handle_exit+0x130/0x1ec
    | kvm_arch_vcpu_ioctl_run+0x340/0x614
    | kvm_vcpu_ioctl+0x4d0/0x840
    | do_vfs_ioctl+0xc8/0x8d0
    | ksys_ioctl+0x78/0xa8
    | sys_ioctl+0xc/0x18
    | el0_svc_naked+0x30/0x34
    | Code: 73620291 604d00b0 00201891 1ab10194 (957a33f8)
    |---[ end trace 4b4a4f9628596602 ]---

    Fix the order of the arguments.

    Fixes: 8d404c4c24613 ("KVM: arm64: Rewrite system register accessors to read/write functions")
    CC: Christoffer Dall
    Signed-off-by: James Morse
    Signed-off-by: Marc Zyngier

    James Morse