30 Apr, 2018

1 commit

  • Pull timer fixes from Thomas Gleixner:
    "Two fixes from the timer departement:

    - Fix a long standing issue in the NOHZ tick code which causes RB
    tree corruption, delayed timers and other malfunctions. The cause
    for this is code which modifies the expiry time of an enqueued
    hrtimer.

    - Revert the CLOCK_MONOTONIC/CLOCK_BOOTTIME unification due to
    regression reports. Seems userspace _is_ relying on the documented
    behaviour despite our hope that it wont"

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    Revert: Unify CLOCK_MONOTONIC and CLOCK_BOOTTIME
    tick/sched: Do not mess with an enqueued hrtimer

    Linus Torvalds
     

29 Apr, 2018

2 commits

  • Pull i2c fixes from Wolfram Sang:

    - two driver fixes

    - better parameter check for the core

    - Documentation updates

    - part of a tree-wide HAS_DMA cleanup

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: sprd: Fix the i2c count issue
    i2c: sprd: Prevent i2c accesses after suspend is called
    i2c: dev: prevent ZERO_SIZE_PTR deref in i2cdev_ioctl_rdwr()
    Documentation/i2c: adopt kernel commenting style in examples
    Documentation/i2c: sync docs with current state of i2c-tools
    Documentation/i2c: whitespace cleanup
    i2c: Remove depends on HAS_DMA in case of platform dependency

    Linus Torvalds
     
  • Pull powerpc fixes from Michael Ellerman:
    "A bunch of fixes, mostly for existing code and going to stable.

    Our memory hot-unplug path wasn't flushing the cache before removing
    memory. That is a problem now that we are doing memory hotplug on bare
    metal.

    Three fixes for the NPU code that supports devices connected via
    NVLink (ie. GPUs). The main one tweaks the TLB flush algorithm to
    avoid soft lockups for large flushes.

    A fix for our memory error handling where we would loop infinitely,
    returning back to the bad access and hard lockup the CPU.

    Fixes for the OPAL RTC driver, which wasn't handling some error cases
    correctly.

    A fix for a hardlockup in the powernv cpufreq driver.

    And finally two fixes to our smp_send_stop(), required due to a recent
    change to use it on shutdown.

    Thanks to: Alistair Popple, Balbir Singh, Laurentiu Tudor, Mahesh
    Salgaonkar, Mark Hairgrove, Nicholas Piggin, Rashmica Gupta, Shilpasri
    G Bhat"

    * tag 'powerpc-4.17-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
    powerpc/kvm/booke: Fix altivec related build break
    powerpc: Fix deadlock with multiple calls to smp_send_stop
    cpufreq: powernv: Fix hardlockup due to synchronous smp_call in timer interrupt
    powerpc: Fix smp_send_stop NMI IPI handling
    rtc: opal: Fix OPAL RTC driver OPAL_BUSY loops
    powerpc/mce: Fix a bug where mce loops on memory UE.
    powerpc/powernv/npu: Do a PID GPU TLB flush when invalidating a large address range
    powerpc/powernv/npu: Prevent overwriting of pnv_npu2_init_contex() callback parameters
    powerpc/powernv/npu: Add lock to prevent race in concurrent context init/destroy
    powerpc/powernv/memtrace: Let the arch hotunplug code flush cache
    powerpc/mm: Flush cache on memory hot(un)plug

    Linus Torvalds
     

28 Apr, 2018

8 commits

  • Pull char/misc driver fixes from Greg KH:
    "Here are some small char and misc driver fixes for 4.17-rc3

    A variety of small things that have fallen out after 4.17-rc1 was out.
    Some vboxguest fixes for systems with lots of memory, amba bus fixes,
    some MAINTAINERS updates, uio_hv_generic driver fixes, and a few other
    minor things that resolve problems that people reported.

    The amba bus fixes took twice to get right, the first time I messed up
    applying the patches in the wrong order, hence the revert and later
    addition again with the correct fix, sorry about that.

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

    * tag 'char-misc-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    ARM: amba: Fix race condition with driver_override
    ARM: amba: Make driver_override output consistent with other buses
    Revert "ARM: amba: Fix race condition with driver_override"
    ARM: amba: Don't read past the end of sysfs "driver_override" buffer
    ARM: amba: Fix race condition with driver_override
    virt: vbox: Log an error when we fail to get the host version
    virt: vbox: Use __get_free_pages instead of kmalloc for DMA32 memory
    virt: vbox: Add vbg_req_free() helper function
    virt: vbox: Move declarations of vboxguest private functions to private header
    slimbus: Fix out-of-bounds access in slim_slicesize()
    MAINTAINERS: add dri-devel&linaro-mm for Android ION
    fpga-manager: altera-ps-spi: preserve nCONFIG state
    MAINTAINERS: update my email address
    uio_hv_generic: fix subchannel ring mmap
    uio_hv_generic: use correct channel in isr
    uio_hv_generic: make ring buffer attribute for primary channel
    uio_hv_generic: set size of ring buffer attribute
    ANDROID: binder: prevent transactions into own process.

    Linus Torvalds
     
  • Pull driver core fixes from Greg Kroah-Hartman:
    "Here are some small driver core and firmware fixes for 4.17-rc3

    There's a kobject WARN() removal to make syzkaller a lot happier about
    some "normal" error paths that it keeps hitting, which should reduce
    the number of false-positives we have been getting recently.

    There's also some fimware test and documentation fixes, and the
    coredump() function signature change that needed to happen after -rc1
    before drivers started to take advantage of it.

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

    * tag 'driver-core-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    firmware: some documentation fixes
    selftests:firmware: fixes a call to a wrong function name
    kobject: don't use WARN for registration failures
    firmware: Fix firmware documentation for recent file renames
    test_firmware: fix setting old custom fw path back on exit, second try
    test_firmware: Install all scripts
    drivers: change struct device_driver::coredump() return type to void

    Linus Torvalds
     
  • Pull tty/serial fixes from Greg KH:
    "Here are some tty and serial driver fixes for reported issues for
    4.17-rc3.

    Nothing major, but a number of small things:

    - device tree fixes/updates for serial ports

    - earlycon fixes

    - n_gsm fixes

    - tty core change reverted to help resolve syszkaller reports

    - other serial driver small fixes

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

    * tag 'tty-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    tty: Use __GFP_NOFAIL for tty_ldisc_get()
    tty: serial: xuartps: Setup early console when uartclk is also passed
    tty: Don't call panic() at tty_ldisc_init()
    tty: Avoid possible error pointer dereference at tty_ldisc_restore().
    dt-bindings: mvebu-uart: DT fix s/interrupts-names/interrupt-names/
    tty: serial: qcom_geni_serial: Use signed variable to get IRQ
    earlycon: Use a pointer table to fix __earlycon_table stride
    serial: sh-sci: Document r8a77470 bindings
    dt-bindings: meson-uart: DT fix s/clocks-names/clock-names/
    serial: imx: fix cached UCR2 read on software reset
    serial: imx: warn user when using unsupported configuration
    serial: mvebu-uart: Fix local flags handling on termios update
    tty: n_gsm: Fix DLCI handling for ADM mode if debug & 2 is not set
    tty: n_gsm: Fix long delays with control frame timeouts in ADM mode

    Linus Torvalds
     
  • Pull staging fixes from Greg KH:
    "Here are two staging driver fixups for 4.17-rc3.

    The first is the remaining stragglers of the irda code removal that
    you pointed out during the merge window. The second is a fix for the
    wilc1000 driver due to a patch that got merged in 4.17-rc1.

    Both of these have been in linux-next for a while with no reported
    issues"

    * tag 'staging-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: wilc1000: fix NULL pointer exception in host_int_parse_assoc_resp_info()
    staging: irda: remove remaining remants of irda code removal

    Linus Torvalds
     
  • Pull USB fixes from Greg KH:
    "Here are a number of USB driver fixes for reported problems for
    4.17-rc3.

    The "largest" here is a number of phy core changes for reported
    problems with the -rc1 release. There's also the usual musb and xhci
    fixes, as well as new device id updates. There are also some usbip
    fixes for reported problems as more people start to use that code with
    containers.

    All of these have been in linux-next with no reported issues, except
    the last few new device ids, which are "obviously correct" :)"

    * tag 'usb-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (26 commits)
    USB: musb: dsps: drop duplicate phy initialisation
    USB: musb: host: prevent core phy initialisation
    usb: core: phy: add the SPDX-License-Identifier and include guard
    xhci: Fix Kernel oops in xhci dbgtty
    usb: select USB_COMMON for usb role switch config
    usb: core: phy: add missing forward declaration for "struct device"
    usb: core: phy: make it a no-op if CONFIG_GENERIC_PHY is disabled
    usb: core: use phy_exit during suspend if wake up is not supported
    usb: core: split usb_phy_roothub_{init,alloc}
    usb: core: phy: fix return value of usb_phy_roothub_exit()
    usb: typec: ucsi: Increase command completion timeout value
    Revert "xhci: plat: Register shutdown for xhci_plat"
    usb: core: Add quirk for HP v222w 16GB Mini
    Documentation: typec.rst: Use literal-block element with ascii art
    usb: typec: ucsi: fix tracepoint related build error
    usbip: usbip_event: fix to not print kernel pointer address
    usbip: usbip_host: fix to hold parent lock for device_attach() calls
    usbip: vhci_hcd: Fix usb device and sockfd leaks
    usbip: vhci_hcd: check rhport before using in vhci_hub_control()
    USB: Increment wakeup count on remote wakeup.
    ...

    Linus Torvalds
     
  • Pull ARM SoC fixes from Arnd Bergmann:
    "This round of fixes has two larger changes that came in last week:

    - a couple of patches all intended to finally turn on USB support on
    various Amlogic SoC based boards. The respective driver were not
    finalized until very late before the merge window and the DT
    portion is the last bit now.

    - a defconfig update for gemini that had repeatedly missed the cut
    but that is required to actually boot any real machines with the
    default build.

    The rest are the usual small changes:

    - a fix for a nasty build regression on the OMAP memory drivers

    - a fix for a boot problem on Intel/Altera SocFPGA

    - a MAINTAINER file update

    - a couple of fixes for issues found by automated testing (kernelci,
    coverity, sparse, ...)

    - a few incorrect DT entries are updated to match the hardware"

    * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: defconfig: Update Gemini defconfig
    ARM: s3c24xx: jive: Fix some GPIO names
    HISI LPC: Add Kconfig MFD_CORE dependency
    ARM: dts: Fix NAS4220B pin config
    MAINTAINERS: Remove myself as maintainer
    arm64: dts: correct SATA addresses for Stingray
    ARM64: dts: meson-gxm-khadas-vim2: enable the USB controller
    ARM64: dts: meson-gxl-nexbox-a95x: enable the USB controller
    ARM64: dts: meson-gxl-s905x-libretech-cc: enable the USB controller
    ARM64: dts: meson-gx-p23x-q20x: enable the USB controller
    ARM64: dts: meson-gxl-s905x-p212: enable the USB controller
    ARM64: dts: meson-gxm: add GXM specific USB host configuration
    ARM64: dts: meson-gxl: add USB host support
    ARM: OMAP2+: Fix build when using split object directories
    soc: bcm2835: Make !RASPBERRYPI_FIRMWARE dummies return failure
    soc: bcm: raspberrypi-power: Fix use of __packed
    ARM: dts: Fix cm2 and prm sizes for omap4
    ARM: socfpga_defconfig: Remove QSPI Sector 4K size force
    firmware: arm_scmi: remove redundant null check on array
    arm64: dts: juno: drop unnecessary address-cells and size-cells properties

    Linus Torvalds
     
  • Pull mtd fixes from Boris Brezillon:

    - Fix nanddev_mtd_erase() function to match the changes done in
    e7bfb3fdbde3 ("mtd: Stop updating erase_info->state and calling
    mtd_erase_callback()")

    - Fix a memory leak in the Tango NAND controller driver

    - Fix read/write to a suspended erase block in the CFI driver

    - Fix the DT parsing logic in the Marvell NAND controller driver

    * tag 'mtd/fixes-for-4.17-rc3' of git://git.infradead.org/linux-mtd:
    mtd: rawnand: marvell: fix the chip-select DT parsing logic
    mtd: cfi: cmdset_0002: Do not allow read/write to suspend erase block.
    mtd: cfi: cmdset_0001: Workaround Micron Erase suspend bug.
    mtd: cfi: cmdset_0001: Do not allow read/write to suspend erase block.
    mtd: spi-nor: cadence-quadspi: Fix page fault kernel panic
    mtd: nand: Fix nanddev_mtd_erase()
    mtd: rawnand: tango: Fix struct clk memory leak

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Pretty run of the mill for this stage in the cycle: msm, i915, amdgpu,
    qxl, virtio-gpu, sun4i fixes.

    i915:
    - Black screen fixes
    - Display w/a fix
    - HDA codec interop fix

    sun4i:
    - tbsa711 tablet regression fix

    qxl:
    - Regression fixes due to changes in TTM

    virtio:
    - Fix wait event condition

    msm:
    - DSI display fixes

    amdgpu:
    - fix hang on Carrizo
    - DP MST hang fixes
    - irq handling deadlock in DC.

    amdkfd:
    - Fix Kconfig issue
    - Clock retrieval fix
    - Sparse fixes"

    * tag 'drm-fixes-for-v4.17-rc3' of git://people.freedesktop.org/~airlied/linux: (27 commits)
    drm/edid: Reset more of the display info
    drm/virtio: fix vq wait_event condition
    qxl: keep separate release_bo pointer
    qxl: fix qxl_release_{map,unmap}
    Revert "drm/sun4i: add lvds mode_valid function"
    drm/amd/display: Check dc_sink every time in MST hotplug
    drm/amd/display: Update MST edid property every time
    drm/amd/display: Don't read EDID in atomic_check
    drm/amd/display: Disallow enabling CRTC without primary plane with FB
    drm/amd/display: Fix deadlock when flushing irq
    drm/i915/fbdev: Enable late fbdev initial configuration
    drm/i915: Use ktime on wait_for
    drm/amdgpu: set COMPUTE_PGM_RSRC1 for SGPR/VGPR clearing shaders
    drm/amdkfd: fix build, select MMU_NOTIFIER
    drm/amdkfd: fix clock counter retrieval for node without GPU
    drm/amdkfd: Fix the error return code in kfd_ioctl_unmap_memory_from_gpu()
    drm/amdkfd: kfd_dev_is_large_bar() can be static
    drm/i915: Enable display WA#1183 from its correct spot
    drm/i915/audio: set minimum CD clock to twice the BCLK
    drm/msm: don't deref error pointer in the msm_fbdev_create error path
    ...

    Linus Torvalds
     

27 Apr, 2018

14 commits

  • We found the I2C controller count register is unreliable sometimes,
    that will cause I2C to lose data. Thus we can read the data count
    from 'i2c_dev->count' instead of the I2C controller count register.

    Signed-off-by: Baolin Wang
    Signed-off-by: Wolfram Sang

    Baolin Wang
     
  • Add one flag to indicate if the i2c controller has been in suspend state,
    which can prevent i2c accesses after i2c controller is suspended following
    system suspend.

    Signed-off-by: Baolin Wang
    Signed-off-by: Wolfram Sang

    Baolin Wang
     
  • i2cdev_ioctl_rdwr() allocates i2c_msg.buf using memdup_user(), which
    returns ZERO_SIZE_PTR if i2c_msg.len is zero.

    Currently i2cdev_ioctl_rdwr() always dereferences the buf pointer in case
    of I2C_M_RD | I2C_M_RECV_LEN transfer. That causes a kernel oops in
    case of zero len.

    Let's check the len against zero before dereferencing buf pointer.

    This issue was triggered by syzkaller.

    Signed-off-by: Alexander Popov
    Reviewed-by: Uwe Kleine-König
    [wsa: use '< 1' instead of '!' for easier readability]
    Signed-off-by: Wolfram Sang

    Alexander Popov
     
  • gpstate_timer_handler() uses synchronous smp_call to set the pstate
    on the requested core. This causes the below hard lockup:

    smp_call_function_single+0x110/0x180 (unreliable)
    smp_call_function_any+0x180/0x250
    gpstate_timer_handler+0x1e8/0x580
    call_timer_fn+0x50/0x1c0
    expire_timers+0x138/0x1f0
    run_timer_softirq+0x1e8/0x270
    __do_softirq+0x158/0x3e4
    irq_exit+0xe8/0x120
    timer_interrupt+0x9c/0xe0
    decrementer_common+0x114/0x120
    -- interrupt: 901 at doorbell_global_ipi+0x34/0x50
    LR = arch_send_call_function_ipi_mask+0x120/0x130
    arch_send_call_function_ipi_mask+0x4c/0x130
    smp_call_function_many+0x340/0x450
    pmdp_invalidate+0x98/0xe0
    change_huge_pmd+0xe0/0x270
    change_protection_range+0xb88/0xe40
    mprotect_fixup+0x140/0x340
    SyS_mprotect+0x1b4/0x350
    system_call+0x58/0x6c

    One way to avoid this is removing the smp-call. We can ensure that the
    timer always runs on one of the policy-cpus. If the timer gets
    migrated to a cpu outside the policy then re-queue it back on the
    policy->cpus. This way we can get rid of the smp-call which was being
    used to set the pstate on the policy->cpus.

    Fixes: 7bc54b652f13 ("timers, cpufreq/powernv: Initialize the gpstate timer as pinned")
    Cc: stable@vger.kernel.org # v4.8+
    Reported-by: Nicholas Piggin
    Reported-by: Pridhiviraj Paidipeddi
    Signed-off-by: Shilpasri G Bhat
    Acked-by: Nicholas Piggin
    Acked-by: Viresh Kumar
    Acked-by: Vaidyanathan Srinivasan
    Signed-off-by: Michael Ellerman

    Shilpasri G Bhat
     
  • - Fix for black screen issues (FDO #104158 and #104425)
    - A correction for wrongly applied display W/A
    - Fixes for HDA codec interop issue (no audio) and too eager HW timeouts

    * tag 'drm-intel-fixes-2018-04-26' of git://anongit.freedesktop.org/drm/drm-intel:
    drm/i915/fbdev: Enable late fbdev initial configuration
    drm/i915: Use ktime on wait_for
    drm/i915: Enable display WA#1183 from its correct spot
    drm/i915/audio: set minimum CD clock to twice the BCLK

    Dave Airlie
     
  • Pull virtio fixups from Michael Tsirkin:

    - Latest header update will break QEMU (if it's rebuilt with the new
    header) - and it seems that the code there is so fragile that any
    change in this header will break it. Add a better interface so users
    do not need to change their code every time that header changes.

    - Fix virtio console for spec compliance.

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    virtio_console: reset on out of memory
    virtio_console: move removal code
    virtio_console: drop custom control queue cleanup
    virtio_console: free buffers after reset
    virtio: add ability to iterate over vqs
    virtio_console: don't tie bufs to a vq
    virtio_balloon: add array of stat names

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

    Pull hwmon fixes from Guenter Roeck:

    - Add support for new Ryzen chips to k10temp driver
    ... making Phoronix happy

    - Fix inconsistent chip access in nct6683 driver

    - Handle absence of few types of sensors in scmi driver

    * tag 'hwmon-for-linus-v4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: (k10temp) Add support for AMD Ryzen w/ Vega graphics
    hwmon: (k10temp) Add temperature offset for Ryzen 2700X
    hwmon: (nct6683) Enable EC access if disabled at boot
    hwmon: (scmi) handle absence of few types of sensors

    Linus Torvalds
     
  • Pull PCI fixes from Bjorn Helgaas:

    - fix Aardvark MRRS setting (Evan Wang)

    - clarify "bandwidth available" link status message (Jakub Kicinski)

    - update Kirin GPIO name to fix probe failure (Loic Poulain)

    - fix Aardvark IRQ usage (Victor Gu)

    - fix Aardvark config accessor issues (Victor Gu)

    * tag 'pci-v4.17-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    PCI: Add "PCIe" to pcie_print_link_status() messages
    PCI: kirin: Fix reset gpio name
    PCI: aardvark: Fix PCIe Max Read Request Size setting
    PCI: aardvark: Use ISR1 instead of ISR0 interrupt in legacy irq mode
    PCI: aardvark: Set PIO_ADDR_LS correctly in advk_pcie_rd_conf()
    PCI: aardvark: Fix logic in advk_pcie_{rd,wr}_conf()

    Linus Torvalds
     
  • Pull ACPI fixes from Rafael Wysocki:
    "These are two watchdog-related fixes, fix for a backlight regression
    from the 4.16 cycle that unfortunately was propagated to -stable and a
    button module modification to prevent graphics driver modules from
    failing to load due to unmet dependencies if ACPI is disabled from the
    kernel command line.

    Specifics:

    - Change the ACPI subsystem initialization ordering to initialize the
    WDAT watchodg before reserving PNP motherboard resources so as to
    allow the watchdog to allocate its resources before the PNP code
    gets to them and prevents it from working correctly (Mika
    Westerberg).

    - Add a quirk for Lenovo Z50-70 to use the iTCO watchdog instead of
    the WDAT one which conflicts with the RTC on that platform (Mika
    Westerberg).

    - Avoid breaking backlight handling on Dell XPS 13 2013 model by
    allowing laptops to use the ACPI backlight by default even if they
    are Windows 8-ready in principle (Hans de Goede)"

    * tag 'acpi-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / video: Only default only_lcd to true on Win8-ready _desktops_
    ACPI / button: make module loadable when booted in non-ACPI mode
    ACPI / watchdog: Prefer iTCO_wdt on Lenovo Z50-70
    ACPI / scan: Initialize watchdog before PNP

    Linus Torvalds
     
  • Pull power management fixes from Rafael Wysocki:
    "These are a Low Power S0 Idle quirk, a hibernation handling fix for
    the PCI bus type and a brcmstb-avs-cpufreq driver fixup removing
    development debug code from it.

    Specifics:

    - Blacklist the Low Power S0 Idle _DSM on ThinkPad X1 Tablet(2016)
    where it causes issues and make it use ACPI S3 which works instead
    of the non-working suspend-to-idle by default (Chen Yu).

    - Fix the handling of hibernation in the PCI core for devices with
    the DPM_FLAG_SMART_SUSPEND flag set to fix a regression affecting
    intel-lpss I2C devices (Mika Westerberg).

    - Drop development debug code from the brcmstb-avs-cpufreq driver
    (Markus Mayer)"

    * tag 'pm-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    cpufreq: brcmstb-avs-cpufreq: remove development debug support
    PCI / PM: Do not clear state_saved in pci_pm_freeze() when smart suspend is set
    ACPI / PM: Blacklist Low Power S0 Idle _DSM for ThinkPad X1 Tablet(2016)

    Linus Torvalds
     
  • Pull /dev/random fixes from Ted Ts'o:
    "Fix a regression on NUMA kernels and suppress excess unseeded entropy
    pool warnings"

    * tag 'random_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random:
    random: rate limit unseeded randomness warnings
    random: fix possible sleeping allocation from irq context

    Linus Torvalds
     
  • Pull s390 fixes from Martin Schwidefsky:
    "A couple of bug fixes:

    - correct some CPU-MF counter names for z13 and z14

    - correct locking in the vfio-ccw fsm_io_helper function

    - provide arch_uretprobe_is_alive to avoid sigsegv with uretprobes

    - fix a corner case with CPU-MF sampling in regard to execve

    - fix expoline code revert for loadable modules

    - update chpid descriptor for resource accessibility events

    - fix dasd I/O errors due to outdated device alias infomation"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390: correct module section names for expoline code revert
    vfio: ccw: process ssch with interrupts disabled
    s390: update sampling tag after task pid change
    s390/cpum_cf: rename IBM z13/z14 counter names
    s390/dasd: fix IO error for newly defined devices
    s390/uprobes: implement arch_uretprobe_is_alive()
    s390/cio: update chpid descriptor after resource accessibility event

    Linus Torvalds
     
  • …it/johan/usb-serial into usb-linus

    Johan writes:

    USB-serial fixes for v4.17-rc3

    Here are a few device ids for -rc3, including a new "simple driver".

    All have been in linux-next with no reported issues.

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

    Greg Kroah-Hartman
     
  • The block responsible of parsing the DT for the number of chip-select
    lines uses an 'if/else if/else if' block. The content of the second and
    third 'else if' conditions are:
    1/ the actual condition to enter the sub-block and
    2/ the operation to do in this sub-block.

    [...]
    else if (condition1_to_enter && action1() == failed)
    raise_error();
    else if (condition2_to_enter && action2() == failed)
    raise_error();
    [...]

    In case of failure, the sub-block is entered and an error raised.
    Otherwise, in case of success, the code would continue erroneously in
    the next 'else if' statement because it did not failed (and did not
    enter the first 'else if' sub-block).

    The first 'else if' refers to legacy bindings while the second 'else if'
    refers to new bindings. The second 'else if', which is entered
    erroneously, checks for the 'reg' property, which, for old bindings,
    does not mean anything because it would not be the number of CS
    available, but the regular register map of almost any DT node. This
    being said, the content of the 'reg' property being the register map
    offset and length, it has '2' values, so the number of CS in this
    situation is assumed to be '2'.

    When running nand_scan_ident() with 2 CS, the core will check for an
    array of chips. It will first issue a RESET and then a READ_ID. Of
    course this will trigger two timeouts because there is no chip in front
    of the second CS:

    [ 1.367460] marvell-nfc f2720000.nand: Timeout on CMDD (NDSR: 0x00000080)
    [ 1.474292] marvell-nfc f2720000.nand: Timeout on CMDD (NDSR: 0x00000280)

    Indeed, this is harmless and the core will then assume there is only one
    valid CS.

    Fix the logic in the whole block by entering each sub-block just on the
    'is legacy' condition, doing the action inside the sub-block. This way,
    when the action succeeds, the whole block is left.

    Furthermore, for both the old bindings and the new bindings the same
    logic was applied to retrieve the number of CS lines:
    using of_get_property() to get a size in bytes, converted in the actual
    number of lines by dividing it per sizeof(u32) (4 bytes).

    This is fine for the 'reg' property which is a list of the CS IDs but
    not for the 'num-cs' property which is directly the value of the number
    of CS.

    Anyway, no existing DT uses another value than 'num-cs = ' and no
    other value has ever been supported by the old driver (pxa3xx_nand.c).
    Remove this condition and apply a number of 1 CS anyway, as already
    described in the bindings.

    Finally, the 'reg' property of a 'nand' node (with the new bindings)
    gives the IDs of each CS line in use. marvell_nand.c driver first look
    at the number of CS lines that are present in this property.

    Better use of_property_count_elems_of_size() than dividing by 4 the size
    of the number of bytes returned by of_get_property().

    Fixes: 02f26ecf8c772 ("mtd: nand: add reworked Marvell NAND controller driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: Miquel Raynal
    Tested-by: Chris Packham
    Signed-off-by: Boris Brezillon

    Miquel Raynal
     

26 Apr, 2018

15 commits

  • …rnel/git/tmlind/linux-omap into fixes

    Pull "Two fixes for v4.17-rc cycle" from Tony Lindgren:

    Fix a build regression with split object directories reported by Russell
    and fix range sizes for omap4 cm2 and prm modules.

    * tag 'omap-for-v4.17/fixes-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
    ARM: OMAP2+: Fix build when using split object directories
    ARM: dts: Fix cm2 and prm sizes for omap4

    Arnd Bergmann
     
  • For ACPI support of the HiSilicon LPC driver we depend
    on MFD_CORE config.

    Currently the HiSi LPC Kconfig entry does not define this
    dependency, so add it.

    The reason for depending on MFD_CORE in the driver is
    that we model the LPC host as an MFD, in that a platform
    device will be created for each device on the bus.

    We do this as we need to modify the resources of these
    derived platform devices, something which we should not
    do to the original devices created in the ACPI scan.
    Details in e0aa1563f894 ("HISI LPC: Add ACPI support").

    Fixes: e0aa1563f894 ("HISI LPC: Add ACPI support")
    Reported-and-tested-by: Tan Xiaojun
    Signed-off-by: John Garry
    Signed-off-by: Arnd Bergmann

    John Garry
     
  • …t/sudeep.holla/linux into fixes

    SCMI fix for v4.17

    A single patch eliminating the redundant null pointer check detected
    by CoverityScan("Array compared against 0")

    * tag 'scmi-fixes-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
    firmware: arm_scmi: remove redundant null check on array

    Arnd Bergmann
     
  • This pull request contains Broadcom SoCs drivers fixes, please pull the
    following:

    - Geert makes the Raspberry Pi firmwware return -ENOSYS (similar to
    other subsystems) when CONFIG_RASPBERRYPI_FIRMWARE is off.

    - Florian fixes an incorrect annotation in the Raspberry Pi power domain
    driver, spotted by sparse

    * tag 'arm-soc/for-4.17/drivers-fixes' of https://github.com/Broadcom/stblinux:
    soc: bcm2835: Make !RASPBERRYPI_FIRMWARE dummies return failure
    soc: bcm: raspberrypi-power: Fix use of __packed

    Arnd Bergmann
     
  • * acpi-watchdog:
    ACPI / watchdog: Prefer iTCO_wdt on Lenovo Z50-70

    * acpi-button:
    ACPI / button: make module loadable when booted in non-ACPI mode

    * acpi-video:
    ACPI / video: Only default only_lcd to true on Win8-ready _desktops_

    Rafael J. Wysocki
     
  • * acpi-pm:
    ACPI / PM: Blacklist Low Power S0 Idle _DSM for ThinkPad X1 Tablet(2016)

    * pm-cpufreq:
    cpufreq: brcmstb-avs-cpufreq: remove development debug support

    Rafael J. Wysocki
     
  • Revert commits

    92af4dcb4e1c ("tracing: Unify the "boot" and "mono" tracing clocks")
    127bfa5f4342 ("hrtimer: Unify MONOTONIC and BOOTTIME clock behavior")
    7250a4047aa6 ("posix-timers: Unify MONOTONIC and BOOTTIME clock behavior")
    d6c7270e913d ("timekeeping: Remove boot time specific code")
    f2d6fdbfd238 ("Input: Evdev - unify MONOTONIC and BOOTTIME clock behavior")
    d6ed449afdb3 ("timekeeping: Make the MONOTONIC clock behave like the BOOTTIME clock")
    72199320d49d ("timekeeping: Add the new CLOCK_MONOTONIC_ACTIVE clock")

    As stated in the pull request for the unification of CLOCK_MONOTONIC and
    CLOCK_BOOTTIME, it was clear that we might have to revert the change.

    As reported by several folks systemd and other applications rely on the
    documented behaviour of CLOCK_MONOTONIC on Linux and break with the above
    changes. After resume daemons time out and other timeout related issues are
    observed. Rafael compiled this list:

    * systemd kills daemons on resume, after >WatchdogSec seconds
    of suspending (Genki Sky). [Verified that that's because systemd uses
    CLOCK_MONOTONIC and expects it to not include the suspend time.]

    * systemd-journald misbehaves after resume:
    systemd-journald[7266]: File /var/log/journal/016627c3c4784cd4812d4b7e96a34226/system.journal
    corrupted or uncleanly shut down, renaming and replacing.
    (Mike Galbraith).

    * NetworkManager reports "networking disabled" and networking is broken
    after resume 50% of the time (Pavel). [May be because of systemd.]

    * MATE desktop dims the display and starts the screensaver right after
    system resume (Pavel).

    * Full system hang during resume (me). [May be due to systemd or NM or both.]

    That happens on debian and open suse systems.

    It's sad, that these problems were neither catched in -next nor by those
    folks who expressed interest in this change.

    Reported-by: Rafael J. Wysocki
    Reported-by: Genki Sky ,
    Reported-by: Pavel Machek
    Signed-off-by: Thomas Gleixner
    Cc: Dmitry Torokhov
    Cc: John Stultz
    Cc: Jonathan Corbet
    Cc: Kevin Easton
    Cc: Linus Torvalds
    Cc: Mark Salyzyn
    Cc: Michael Kerrisk
    Cc: Peter Zijlstra
    Cc: Petr Mladek
    Cc: Prarit Bhargava
    Cc: Sergey Senozhatsky
    Cc: Steven Rostedt

    Thomas Gleixner
     
  • The driver_override implementation is susceptible to a race condition
    when different threads are reading vs storing a different driver
    override. Add locking to avoid this race condition.

    Cfr. commits 6265539776a0810b ("driver core: platform: fix race
    condition with driver_override") and 9561475db680f714 ("PCI: Fix race
    condition with driver_override").

    Fixes: 3cf385713460eb2b ("ARM: 8256/1: driver coamba: add device binding path 'driver_override'")
    Signed-off-by: Geert Uytterhoeven
    Reviewed-by: Todd Kjos
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Geert Uytterhoeven
     
  • For AMBA devices with unconfigured driver override, the
    "driver_override" sysfs virtual file is empty, while it contains
    "(null)" for platform and PCI devices.

    Make AMBA consistent with other buses by dropping the test for a NULL
    pointer.

    Note that contrary to popular belief, sprintf() handles NULL pointers
    fine; they are printed as "(null)".

    Signed-off-by: Geert Uytterhoeven
    Cc: stable
    Reviewed-by: Todd Kjos
    Signed-off-by: Greg Kroah-Hartman

    Geert Uytterhoeven
     
  • This reverts commit 6b614a87f3f477571e319281e84dba11e0ea0a76.

    My backport was incorrect, as Geert pointed out :(

    Reported-by: Geert Uytterhoeven
    Cc: Todd Kjos
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • Pull SCSI fixes from James Bottomley:
    "Eight bug fixes, one spelling update and one tracepoint addition.

    The most serious is probably the mptsas write same fix because it
    means anyone using these controllers sees errors when modern
    filesystems try to issue discards"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    scsi: target: fix crash with iscsi target and dvd
    scsi: sd_zbc: Avoid that resetting a zone fails sporadically
    scsi: sd: Defer spinning up drive while SANITIZE is in progress
    scsi: megaraid_sas: Do not log an error if FW successfully initializes.
    scsi: ufs: add trace event for ufs upiu
    scsi: core: remove reference to scsi_show_extd_sense()
    scsi: mptsas: Disable WRITE SAME
    scsi: fnic: fix spelling mistake in fnic stats "Abord" -> "Abort"
    scsi: scsi_debug: IMMED related delay adjustments
    scsi: iscsi: respond to netlink with unicast when appropriate

    Linus Torvalds
     
  • Pull block updates from Jens Axboe:
    "I ended up sitting on this about a week longer than I wanted to, since
    we were hashing out details with a timeout change. I've now killed
    that patch, so we can flush the existing queue in due time.

    This contains:

    - Fix for an old regression, where entering the queue can be
    disturbed by a signal to the process. This can cause spurious EIO.
    Fix from Alan Jenkins.

    - cdrom information leak fix from Dan.

    - Trivial helper for testing queue FUA from Dave Chinner, part of his
    O_DIRECT FUA series.

    - Series of swim fixes from Finn that actually makes it work again.

    - Loop O_DIRECT corruption fix, which caused data corruption in
    production for us. From me.

    - BFQ crash fix from me.

    - bcache maintainer update. Michael no longer has the time to do it,
    Coly has stepped up to serve as the new maintainer.

    - blkcg locking fixes from Jiang Biao.

    - Revert of a change from this merge window from Ming, that causes an
    issue on some hardware.

    - Minor clarification doc addition from Linus Walleij"

    * tag 'for-linus-20180425' of git://git.kernel.dk/linux-block: (22 commits)
    Revert "blk-mq: remove code for dealing with remapping queue"
    block: mq: Add some minor doc for core structs
    bcache: mark Coly Li as bcache maintainer
    MAINTAINERS: Remove me as maintainer of bcache
    blkcg: init root blkcg_gq under lock
    blkcg: small fix on comment in blkcg_init_queue
    blkcg: don't hold blkcg lock when deactivating policy
    block: add blk_queue_fua() helper function
    cdrom: information leak in cdrom_ioctl_media_changed()
    bfq-iosched: ensure to clear bic/bfqq pointers when preparing request
    blk-mq: start request gstate with gen 1
    block/swim: Select appropriate drive on device open
    block/swim: Fix IO error at end of medium
    block/swim: Check drive type
    block/swim: Rename macros to avoid inconsistent inverted logic
    block/swim: Don't log an error message for an invalid ioctl
    block/swim: Remove extra put_disk() call from error path
    block/swim: Fix array bounds check
    m68k/mac: Don't remap SWIM MMIO region
    loop: handle short DIO reads
    ...

    Linus Torvalds
     
  • sun41: Fix regression for TBSA711 tablet (Ondrej)
    qxl: 2 bug fixes (Gerd)
    core: Don't use stale display info between HDMI hotplugs (Ville)
    virtio: Fix guest spinning when request queue is full (Gerd)

    Cc: Ondrej Jirman
    Cc: Gerd Hoffmann
    Cc: Ville Syrjälä

    * tag 'drm-misc-fixes-2018-04-25' of git://anongit.freedesktop.org/drm/drm-misc:
    drm/edid: Reset more of the display info
    drm/virtio: fix vq wait_event condition
    qxl: keep separate release_bo pointer
    qxl: fix qxl_release_{map,unmap}
    Revert "drm/sun4i: add lvds mode_valid function"

    Dave Airlie
     
  • A few fixes for 4.17.. thanks to Sean for helping pull together some
    of the display related fixes while I was off in compute-land.

    * tag 'drm-msm-fixes-2018-04-25' of git://people.freedesktop.org/~robclark/linux:
    drm/msm: don't deref error pointer in the msm_fbdev_create error path
    drm/msm/dsi: use correct enum in dsi_get_cmd_fmt
    drm/msm: Fix possible null dereference on failure of get_pages()
    drm/msm: Add modifier to mdp_get_format arguments
    drm/msm: Mark the crtc->state->event consumed
    drm/msm/dsi: implement auto PHY timing calculator for 10nm PHY
    drm/msm/dsi: check video mode engine status before waiting
    drm/msm/dsi: check return value for video done waits

    Dave Airlie
     
  • - Fix a hang on CZ boards with EDC enabled
    - Fix hangs related to DP MST handling
    - Fix a deadlock in irq handling in DC

    * 'drm-fixes-4.17' of git://people.freedesktop.org/~agd5f/linux:
    drm/amd/display: Check dc_sink every time in MST hotplug
    drm/amd/display: Update MST edid property every time
    drm/amd/display: Don't read EDID in atomic_check
    drm/amd/display: Disallow enabling CRTC without primary plane with FB
    drm/amd/display: Fix deadlock when flushing irq
    drm/amdgpu: set COMPUTE_PGM_RSRC1 for SGPR/VGPR clearing shaders

    Dave Airlie