15 Jan, 2019

5 commits

  • Because we may call blk_mq_get_driver_tag() directly from
    blk_mq_dispatch_rq_list() without holding any lock, then HARDIRQ may
    come and the above DEADLOCK is triggered.

    Commit ab53dcfb3e7b ("sbitmap: Protect swap_lock from hardirq") tries to
    fix this issue by using 'spin_lock_bh', which isn't enough because we
    complete request from hardirq context direclty in case of multiqueue.

    Cc: Clark Williams
    Fixes: ab53dcfb3e7b ("sbitmap: Protect swap_lock from hardirq")
    Cc: Jens Axboe
    Cc: Ming Lei
    Cc: Guenter Roeck
    Cc: Steven Rostedt (VMware)
    Signed-off-by: Ming Lei
    Signed-off-by: Linus Torvalds

    Ming Lei
     
  • The swap_lock used by sbitmap has a chain with locks taken from softirq,
    but the swap_lock is not protected from being preempted by softirqs.

    A chain exists of:

    sbq->ws[i].wait -> dispatch_wait_lock -> swap_lock

    Where the sbq->ws[i].wait lock can be taken from softirq context, which
    means all locks below it in the chain must also be protected from
    softirqs.

    Reported-by: Clark Williams
    Fixes: 58ab5e32e6fd ("sbitmap: silence bogus lockdep IRQ warning")
    Fixes: ea86ea2cdced ("sbitmap: amortize cost of clearing bits")
    Cc: Jens Axboe
    Cc: Ming Lei
    Cc: Guenter Roeck
    Signed-off-by: Steven Rostedt (VMware)
    Signed-off-by: Linus Torvalds

    Steven Rostedt (VMware)
     
  • Pull GPIO fixes from Linus Walleij:
    "The patch hitting the MMC/SD subsystem is fixing up my own mess when
    moving semantics from MMC/SD over to gpiolib. Ulf is on vacation but I
    managed to reach him on chat and obtain his ACK.

    The other two are early-rc fixes that are not super serious but pretty
    annoying so I'd like to get rid of them.

    Summary:

    - Get rid of some WARN_ON() from the ACPI code

    - Staticize a symbol

    - Fix MMC polarity detection"

    * tag 'gpio-v5.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
    mmc: core: don't override the CD GPIO level when "cd-inverted" is set
    gpio: pca953x: Make symbol 'pca953x_i2c_regmap' static
    gpiolib-acpi: Remove unnecessary WARN_ON from acpi_gpiochip_free_interrupts

    Linus Torvalds
     
  • Pull MFD updates from Lee Jones:
    "New Device Support
    - Add support for Power Supply to AXP813
    - Add support for GPIO, ADC, AC and Battery Power Supply to AXP803
    - Add support for UART to Exynos LPASS

    Fix-ups:
    - Use supplied MACROS; ti_am335x_tscadc
    - Trivial spelling/whitespace/alignment; tmio, axp20x, rave-sp
    - Regmap changes; bd9571mwv, wm5110-tables
    - Kconfig dependencies; MFD_AT91_USART
    - Supply shared data for child-devices; madera-core
    - Use new of_node_name_eq() API call; max77620, stmpe
    - Use managed resources (devm_*); tps65218
    - Comment descriptions; ingenic-tcu
    - Coding style; madera-core

    Bug Fixes:
    - Fix section mismatches; twl-core, db8500-prcmu
    - Correct error path related issues; mt6397-core, ab8500-core, mc13xxx-core
    - IRQ related fixes; tps6586x
    - Ensure proper initialisation sequence; qcom_rpm
    - Repair potential memory leak; cros_ec_dev"

    * tag 'mfd-next-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (25 commits)
    mfd: exynos-lpass: Enable UART module support
    mfd: mc13xxx: Fix a missing check of a register-read failure
    mfd: cros_ec: Add commands to control codec
    mfd: madera: Remove spurious semicolon in while loop
    mfd: rave-sp: Fix typo in rave_sp_checksum comment
    mfd: ingenic-tcu: Fix bit field description in header
    mfd: tps65218: Use devm_regmap_add_irq_chip and clean up error path in probe()
    mfd: Use of_node_name_eq() for node name comparisons
    mfd: cros_ec_dev: Add missing mfd_remove_devices() call in remove
    mfd: axp20x: Add supported cells for AXP803
    mfd: axp20x: Re-align MFD cell entries
    mfd: axp20x: Add AC power supply cell for AXP813
    mfd: wm5110: Add missing ASRC rate register
    mfd: qcom_rpm: write fw_version to CTRL_REG
    mfd: tps6586x: Handle interrupts on suspend
    mfd: madera: Add shared data for accessory detection
    mfd: at91-usart: Add platform dependency
    mfd: bd9571mwv: Add volatile register to make DVFS work
    mfd: ab8500-core: Return zero in get_register_interruptible()
    mfd: tmio: Typo s/use use/use/
    ...

    Linus Torvalds
     
  • Pull backlight updates from Lee Jones:
    "Fix-ups:
    - Use new of_node_name_eq() API call

    Bug Fixes:
    - Internally track 'enabled' state in pwm_bl
    - Fix auto-generated pwm_bl brightness tables parsed by DT

    * tag 'backlight-next-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
    backlight: 88pm860x_bl: Use of_node_name_eq for node name comparisons
    backlight: pwm_bl: Fix devicetree parsing with auto-generated brightness tables
    backlight: pwm_bl: Re-add driver internal enabled tracking

    Linus Torvalds
     

14 Jan, 2019

9 commits

  • Linus Torvalds
     
  • UNAME26 is a mechanism to report Linux's version as 2.6.x, for
    compatibility with old/broken software. Due to the way it is
    implemented, it would have to be updated after 5.0, to keep the
    resulting versions unique. Linus Torvalds argued:

    "Do we actually need this?

    I'd rather let it bitrot, and just let it return random versions. It
    will just start again at 2.4.60, won't it?

    Anybody who uses UNAME26 for a 5.x kernel might as well think it's
    still 4.x. The user space is so old that it can't possibly care about
    differences between 4.x and 5.x, can it?

    The only thing that matters is that it shows "2.4.",
    which it will do regardless"

    Signed-off-by: Jonathan Neuschäfer
    Signed-off-by: Linus Torvalds

    Jonathan Neuschäfer
     
  • Pull ARM SoC fixes from Olof Johansson:
    "A bigger batch than I anticipated this week, for two reasons:

    - Some fallout on Davinci from board file -> DTB conversion, that
    also includes a few longer-standing fixes (i.e. not recent
    regressions).

    - drivers/reset material that has been in linux-next for a while, but
    didn't get sent to us until now for a variety of reasons
    (maintainer out sick, holidays, etc). There's a functional
    dependency in there such that one platform (Altera's SoCFPGA) won't
    boot without one of the patches; instead of reverting the patch
    that got merged, I looked at this set and decided it was small
    enough that I'll pick it up anyway. If you disagree I can revisit
    with a smaller set.

    That being said, there's also a handful of the usual stuff:

    - Fix for a crash on Armada 7K/8K when the kernel touches
    PSCI-reserved memory

    - Fix for PCIe reset on Macchiatobin (Armada 8K development board,
    what this email is sent from in fact :)

    - Enable a few new-merged modules for Amlogic in arm64 defconfig

    - Error path fixes on Integrator

    - Build fix for Renesas and Qualcomm

    - Initialization fix for Renesas RZ/G2E

    .. plus a few more fixlets"

    * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (28 commits)
    ARM: integrator: impd1: use struct_size() in devm_kzalloc()
    qcom-scm: Include header
    gpio: pl061: handle failed allocations
    ARM: dts: kirkwood: Fix polarity of GPIO fan lines
    arm64: dts: marvell: mcbin: fix PCIe reset signal
    arm64: dts: marvell: armada-ap806: reserve PSCI area
    ARM: dts: da850-lcdk: Correct the sound card name
    ARM: dts: da850-lcdk: Correct the audio codec regulators
    ARM: dts: da850-evm: Correct the sound card name
    ARM: dts: da850-evm: Correct the audio codec regulators
    ARM: davinci: omapl138-hawk: fix label names in GPIO lookup entries
    ARM: davinci: dm644x-evm: fix label names in GPIO lookup entries
    ARM: davinci: dm355-evm: fix label names in GPIO lookup entries
    ARM: davinci: da850-evm: fix label names in GPIO lookup entries
    ARM: davinci: da830-evm: fix label names in GPIO lookup entries
    arm64: defconfig: enable modules for amlogic s400 sound card
    reset: uniphier-glue: Add AHCI reset control support in glue layer
    dt-bindings: reset: uniphier: Add AHCI core reset description
    reset: uniphier-usb3: Rename to reset-uniphier-glue
    dt-bindings: reset: uniphier: Replace the expression of USB3 with generic peripherals
    ...

    Linus Torvalds
     
  • Pull btrfs fixes from David Sterba:

    - two regression fixes in clone/dedupe ioctls, the generic check
    callback needs to lock extents properly and wait for io to avoid
    problems with writeback and relocation

    - fix deadlock when using free space tree due to block group creation

    - a recently added check refuses a valid fileystem with seeding device,
    make that work again with a quickfix, proper solution needs more
    intrusive changes

    * tag 'for-5.0-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
    btrfs: Use real device structure to verify dev extent
    Btrfs: fix deadlock when using free space tree due to block group creation
    Btrfs: fix race between reflink/dedupe and relocation
    Btrfs: fix race between cloning range ending at eof and writeback

    Linus Torvalds
     
  • Pull driver core fixes from Greg KH:
    "Here is one small sysfs change, and a documentation update for 5.0-rc2

    The sysfs change moves from using BUG_ON to WARN_ON, as discussed in
    an email thread on lkml while trying to track down another driver bug.
    sysfs should not be crashing and preventing people from seeing where
    they went wrong. Now it properly recovers and warns the developer.

    The documentation update removes the use of BUS_ATTR() as the kernel
    is moving away from this to use the specific BUS_ATTR_RW() and friends
    instead. There are pending patches in all of the different subsystems
    to remove the last users of this macro, but for now, don't advertise
    it should be used anymore to keep new ones from being introduced.

    Both have been in linux-next with no reported issues"

    * tag 'driver-core-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    Documentation: driver core: remove use of BUS_ATTR
    sysfs: convert BUG_ON to WARN_ON

    Linus Torvalds
     
  • Pull staging driver fixes from Greg KH:
    "Here are some small staging driver fixes for some reported issues.

    One reverts a patch that was made to the rtl8723bs driver that turned
    out to not be needed at all as it was a bug in clang. The others fix
    up some reported issues in the rtl8188eu driver and update the
    MAINTAINERS file to point to Larry for this driver so he can get the
    bug reports easier.

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

    * tag 'staging-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    Revert "staging: rtl8723bs: Mark ACPI table declaration as used"
    staging: rtl8188eu: Fix module loading from tasklet for WEP encryption
    staging: rtl8188eu: Fix module loading from tasklet for CCMP encryption
    MAINTAINERS: Add entry for staging driver r8188eu

    Linus Torvalds
     
  • Pull tty/serial fixes from Greg KH:
    "Here are 2 tty and serial fixes for 5.0-rc2 that resolve some reported
    issues.

    The first is a simple serial driver fix for a regression that showed
    up in 5.0-rc1. The second one resolves a number of reported issues
    with the recent tty locking fixes that went into 5.0-rc1. Lots of
    people have tested the second one and say it resolves their issues.

    Both have been in linux-next with no reported issues"

    * tag 'tty-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    tty: Don't hold ldisc lock in tty_reopen() if ldisc present
    serial: lantiq: Do not swap register read/writes

    Linus Torvalds
     
  • Pull USB fixes from Greg KH:
    "Here are some small USB driver fixes and quirk updates for 5.0-rc2.

    The majority here are some quirks for some storage devices to get them
    to work properly. There's also a fix here to resolve the reported
    issues with some audio devices that say they are UAC3 compliant, but
    really are not.

    And a fix up for the MAINTAINERS file to remove a dead url.

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

    * tag 'usb-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    usb: storage: Remove outdated URL from MAINTAINERS
    USB: Add USB_QUIRK_DELAY_CTRL_MSG quirk for Corsair K70 RGB
    usbcore: Select only first configuration for non-UAC3 compliant devices
    USB: storage: add quirk for SMI SM3350
    USB: storage: don't insert sane sense for SPC3+ when bad sense specified
    usb: cdc-acm: send ZLP for Telit 3G Intel based modems

    Linus Torvalds
     
  • Pull cifs fixes from Steve French:
    "A set of cifs/smb3 fixes, 4 for stable, most from Pavel. His patches
    fix an important set of crediting (flow control) problems, and also
    two problems in cifs_writepages, ddressing some large i/o and also
    compounding issues"

    * tag '5.0-rc1-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6:
    cifs: update internal module version number
    CIFS: Fix error paths in writeback code
    CIFS: Move credit processing to mid callbacks for SMB3
    CIFS: Fix credits calculation for cancelled requests
    cifs: Fix potential OOB access of lock element array
    cifs: Limit memory used by lock request calls to a page
    cifs: move large array from stack to heap
    CIFS: Do not hide EINTR after sending network packets
    CIFS: Fix credit computation for compounded requests
    CIFS: Do not set credits to 1 if the server didn't grant anything
    CIFS: Fix adjustment of credits for MTU requests
    cifs: Fix a tiny potential memory leak
    cifs: Fix a debug message

    Linus Torvalds
     

13 Jan, 2019

12 commits

  • Late reset controller changes for v5.0

    This adds missing deassert functionality to the ARC HSDK reset driver,
    fixes some indentation and grammar issues in the kernel docs, adds a
    helper to count the number of resets on a device for the non-DT case
    as well, adds an early reset driver for SoCFPGA and simple reset driver
    support for Stratix10, and generalizes the uniphier USB3 glue layer
    reset to also cover AHCI.

    * tag 'reset-for-5.0-rc2' of git://git.pengutronix.de/git/pza/linux:
    reset: uniphier-glue: Add AHCI reset control support in glue layer
    dt-bindings: reset: uniphier: Add AHCI core reset description
    reset: uniphier-usb3: Rename to reset-uniphier-glue
    dt-bindings: reset: uniphier: Replace the expression of USB3 with generic peripherals
    ARM: socfpga: dts: document "altr,stratix10-rst-mgr" binding
    reset: socfpga: add an early reset driver for SoCFPGA
    reset: fix null pointer dereference on dev by dev_name
    reset: Add reset_control_get_count()
    reset: Improve reset controller kernel docs
    ARC: HSDK: improve reset driver

    Signed-off-by: Olof Johansson

    Olof Johansson
     
  • mvebu fixes for 5.0

    They are all device tree fixes which also worth being in stable:

    - Reserve PSCI area on Armada 7K/8K preventing the kernel accessing
    this area and crashing while doing it.

    - Use correct PCIe reset signal on MACCHIATOBin (Armada 8040 based)

    - Fix polarity of GPIO fan line D-Link DNS NASes(kikwood based)

    * tag 'mvebu-fixes-5.0-1' of git://git.infradead.org/linux-mvebu:
    ARM: dts: kirkwood: Fix polarity of GPIO fan lines
    arm64: dts: marvell: mcbin: fix PCIe reset signal
    arm64: dts: marvell: armada-ap806: reserve PSCI area

    Signed-off-by: Olof Johansson

    Olof Johansson
     
  • …/git/linusw/linux-integrator into fixes

    Fixes for the Integrator:
    - Handle failed allocations in the IM/PC bus attachment.
    - Use struct_size() for allocation.

    * tag 'integrator-fixes-armsoc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator:
    ARM: integrator: impd1: use struct_size() in devm_kzalloc()
    gpio: pl061: handle failed allocations

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     
  • …lman/linux-amlogic into fixes

    Amlogic DT fixes for v5.0-rc
    - arm64: defconfig: enable modules for amlogic s400 sound card

    * tag 'amlogic-fixes' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
    arm64: defconfig: enable modules for amlogic s400 sound card

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     
  • …git/agross/linux into fixes

    Qualcomm Driver Fixes for 5.0-rc1

    * Add required includes into qcom_scm.h

    * tag 'qcom-fixes-for-5.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux:
    qcom-scm: Include <linux/err.h> header

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     
  • …git/nsekhar/linux-davinci into fixes

    This pull request fixes some more regressions on legacy
    DaVinci board support due to GPIO driver clean-up introduced
    in v4.20 kernel. These are marked for stable.

    Also has fixes for some long standing Audio issues on DA850
    boards.

    * tag 'davinci-fixes-for-v5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci:
    ARM: dts: da850-lcdk: Correct the sound card name
    ARM: dts: da850-lcdk: Correct the audio codec regulators
    ARM: dts: da850-evm: Correct the sound card name
    ARM: dts: da850-evm: Correct the audio codec regulators
    ARM: davinci: omapl138-hawk: fix label names in GPIO lookup entries
    ARM: davinci: dm644x-evm: fix label names in GPIO lookup entries
    ARM: davinci: dm355-evm: fix label names in GPIO lookup entries
    ARM: davinci: da850-evm: fix label names in GPIO lookup entries
    ARM: davinci: da830-evm: fix label names in GPIO lookup entries

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     
  • …l/git/horms/renesas into fixes

    Renesas ARM Based SoC Fixes for v5.0

    Renesas SoCs:
    * Fix build regressions caused by move of Kconfig symbols

    RZ/G2E (r8a774c0) SoC:
    * Correct initialization order of 3DG-{A,B} in SYSC driver

    * tag 'renesas-fixes-for-v5.0' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
    soc: renesas: r8a774c0-sysc: Fix initialization order of 3DG-{A,B}
    ARM: shmobile: fix build regressions

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     
  • Commit 49e54187ae0b ("ata: libahci_platform: comply to PHY framework") uses
    the PHY_MODE_SATA, but that enum had not yet been added. This caused a
    build failure for me, with today's linux.git.

    Also, there is a potentially conflicting (mis-named) PHY_MODE_SATA, hiding
    in the Marvell Berlin SATA PHY driver.

    Fix the build by:

    1) Renaming Marvell's defined value to a more scoped name,
    in order to avoid any potential conflicts: PHY_BERLIN_MODE_SATA.

    2) Adding the missing enum, which was going to be added anyway as part
    of [1].

    [1] https://lkml.kernel.org/r/20190108163124.6409-3-miquel.raynal@bootlin.com

    Fixes: 49e54187ae0b ("ata: libahci_platform: comply to PHY framework")

    Signed-off-by: John Hubbard
    Acked-by: Jens Axboe
    Acked-by: Olof Johansson
    Cc: Grzegorz Jaszczyk
    Cc: Miquel Raynal
    Cc: Hans de Goede
    Signed-off-by: Linus Torvalds

    John Hubbard
     
  • Pull block fixes from Jens Axboe:

    - NVMe pull request from Christoph, with little fixes all over the map

    - Loop caching fix for offset/bs change (Jaegeuk Kim)

    - Block documentation tweaks (Jeff, Jon, Weiping, John)

    - null_blk zoned tweak (John)

    - ahch mvebu suspend/resume support. Should have gone into the merge
    window, but there was some confusion on which tree had it. (Miquel)

    * tag 'for-linus-20190112' of git://git.kernel.dk/linux-block: (22 commits)
    ata: ahci: mvebu: request PHY suspend/resume for Armada 3700
    ata: ahci: mvebu: add Armada 3700 initialization needed for S2RAM
    ata: ahci: mvebu: do Armada 38x configuration only on relevant SoCs
    ata: ahci: mvebu: remove stale comment
    ata: libahci_platform: comply to PHY framework
    loop: drop caches if offset or block_size are changed
    block: fix kerneldoc comment for blk_attempt_plug_merge()
    nvme: don't initlialize ctrl->cntlid twice
    nvme: introduce NVME_QUIRK_IGNORE_DEV_SUBNQN
    nvme: pad fake subsys NQN vid and ssvid with zeros
    nvme-multipath: zero out ANA log buffer
    nvme-fabrics: unset write/poll queues for discovery controllers
    nvme-tcp: don't ask if controller is fabrics
    nvme-tcp: remove dead code
    nvme-pci: fix out of bounds access in nvme_cqe_pending
    nvme-pci: rerun irq setup on IO queue init errors
    nvme-pci: use the same attributes when freeing host_mem_desc_bufs.
    nvme-pci: fix the wrong setting of nr_maps
    block: doc: add slice_idle_us to bfq documentation
    block: clarify documentation for blk_{start|finish}_plug
    ...

    Linus Torvalds
     
  • Pull dma_zalloc_coherent() removal from Christoph Hellwig:
    "We've always had a weird situation around dma_zalloc_coherent. To
    safely support mapping the allocations to userspace major
    architectures like x86 and arm have always zeroed allocations from
    dma_alloc_coherent, but a couple other architectures were missing that
    zeroing either always or in corner cases.

    Then later we grew anothe dma_zalloc_coherent interface to explicitly
    request zeroing, but that just added __GFP_ZERO to the allocation
    flags, which for some allocators that didn't end up using the page
    allocator ended up being a no-op and still not zeroing the
    allocations.

    So for this merge window I fixed up all remaining architectures to
    zero the memory in dma_alloc_coherent, and made dma_zalloc_coherent a
    no-op wrapper around dma_alloc_coherent, which fixes all of the above
    issues.

    dma_zalloc_coherent is now pointless and can go away, and Luis helped
    me writing a cocchinelle script and patch series to kill it, which I
    think we should apply now just after -rc1 to finally settle these
    issue"

    * tag 'remove-dma_zalloc_coherent-5.0' of git://git.infradead.org/users/hch/dma-mapping:
    dma-mapping: remove dma_zalloc_coherent()
    cross-tree: phase out dma_zalloc_coherent() on headers
    cross-tree: phase out dma_zalloc_coherent()

    Linus Torvalds
     
  • Pull KVM fixes from Radim Krčmář:
    "Minor fixes for new code, corner cases, and documentation"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    x86/kvm/nVMX: don't skip emulated instruction twice when vmptr address is not backed
    Documentation/virtual/kvm: Update URL for AMD SEV API specification
    KVM/VMX: Avoid return error when flush tlb successfully in the hv_remote_flush_tlb_with_range()
    kvm: sev: Fail KVM_SEV_INIT if already initialized
    KVM: validate userspace input in kvm_clear_dirty_log_protect()
    KVM: x86: Fix bit shifting in update_intel_pt_cfg

    Linus Torvalds
     
  • Pull more drm fixes from Daniel Vetter:
    "Dave sends out his pull, everybody remembers holidays are over :-)

    Since Dave's already in weekend mode and it was quite a few patches I
    figured better to apply all the pulls and forward them to you. Hence
    here 2nd part of bugfixes for -rc2.

    nouveau:
    - backlight fix
    - falcon register access fix
    - fan fix.

    i915:
    - Disable PSR for Apple panels
    - Broxton ERR_PTR error state fix
    - Kabylake VECS workaround fix
    - Unwind failure on pinning the gen7 ppgtt
    - GVT workload request allocation fix

    core:
    - Fix fb-helper to work correctly with SDL 1.2 bugs
    - Fix lockdep warning in the atomic ioctl and setproperty"

    * tag 'drm-fixes-2019-01-11-1' of git://anongit.freedesktop.org/drm/drm:
    drm/nouveau/falcon: avoid touching registers if engine is off
    drm/nouveau: Don't disable polling in fallback mode
    drm/nouveau: register backlight on pascal and newer
    drm: Fix documentation generation for DP_DPCD_QUIRK_NO_PSR
    drm/i915: init per-engine WAs for all engines
    drm/i915: Unwind failure on pinning the gen7 ppgtt
    drm/i915: Skip the ERR_PTR error state
    drm/i915: Disable PSR in Apple panels
    gpu/drm: Fix lock held when returning to user space.
    drm/fb-helper: Ignore the value of fb_var_screeninfo.pixclock
    drm/fb-helper: Partially bring back workaround for bugs of SDL 1.2
    drm/i915/gvt: Fix workload request allocation before request add

    Linus Torvalds
     

12 Jan, 2019

14 commits

  • A feature has been added in the libahci driver: the possibility to set
    a new flag in hpriv->flags to let the core handle PHY suspend/resume
    automatically. Make use of this feature to make suspend to RAM work
    with SATA drives on A3700.

    Signed-off-by: Miquel Raynal
    Signed-off-by: Jens Axboe

    Miquel Raynal
     
  • A3700 comphy initialization is done in the firmware (TF-A). Looking at
    the SATA PHY initialization routine, there is a comment about "vendor
    specific" registers. Two registers are mentioned. They are not
    initialized there in the firmware because they are AHCI related, while
    the firmware at this location does only PHY configuration. The
    solution to avoid doing such initialization is relying on U-Boot.

    While this work at boot time, U-Boot is definitely not going to run
    during a resume after suspending to RAM.

    Two possible solutions were considered:
    * Fixing the firmware.
    * Fixing the kernel driver.

    The first solution would take ages to propagate, while the second
    solution is easy to implement as the driver as been a little bit
    reworked to prepare for such platform configuration. Hence, this patch
    adds an Armada 3700 configuration function to set these two registers
    both at boot time (in the probe) and after a suspend (in the resume
    path).

    Signed-off-by: Miquel Raynal
    Signed-off-by: Jens Axboe

    Miquel Raynal
     
  • At the beginning, only Armada 38x SoCs where supported by the
    ahci_mvebu.c driver. Commit 15d3ce7b63bd ("ata: ahci_mvebu: add
    support for Armada 3700 variant") introduced Armada 3700 support. As
    opposed to Armada 38x SoCs, the 3700 variants do not have to configure
    mbus and the regret option. This patch took care of avoiding such
    configuration when not needed in the probe function, but failed to do
    the same in the resume path. While doing so looks harmless by
    experience, let's clean the driver logic and avoid doing this useless
    configuration with Armada 3700 SoCs.

    Because the logic is very similar between these two places, it has
    been decided to factorize this code and put it in a "Armada 38x
    configuration function". This function is part of a new
    (per-compatible) platform data structure, so that the addition of such
    configuration function for Armada 3700 will be eased.

    Fixes: 15d3ce7b63bd ("ata: ahci_mvebu: add support for Armada 3700 variant")
    Signed-off-by: Miquel Raynal
    Signed-off-by: Jens Axboe

    Miquel Raynal
     
  • For Armada-38x (32-bit) SoCs, PM platform support has been added since:
    commit 32f9494c9dfd ("ARM: mvebu: prepare pm-board.c for the
    introduction of Armada 38x support")
    commit 3cbd6a6ca81c ("ARM: mvebu: Add standby support")

    For Armada 64-bit SoCs, like the A3700 also using this AHCI driver, PM
    platform support has always existed.

    There are even suspend/resume hooks in this driver since:
    commit d6ecf15814888 ("ata: ahci_mvebu: add suspend/resume support")

    Remove the stale comment at the end of this driver stating that all
    the above does not exist yet.

    Fixes: d6ecf15814888 ("ata: ahci_mvebu: add suspend/resume support")
    Signed-off-by: Miquel Raynal
    Signed-off-by: Jens Axboe

    Miquel Raynal
     
  • Current implementation of the libahci does not take into account the
    new PHY framework. Correct the situation by adding a call to
    phy_set_mode() before phy_power_on().

    PHYs should also be handled at suspend/resume time. For this, call
    ahci_platform_enable/disable_phys() at suspend/resume_host() time. These
    calls are guarded by a HFLAG (AHCI_HFLAG_SUSPEND_PHYS) that the user of
    the libahci driver must set manually in hpriv->flags at probe time. This
    is to avoid breaking users that have not been tested with this change.

    Reviewed-by: Hans de Goede
    Suggested-by: Grzegorz Jaszczyk
    Signed-off-by: Miquel Raynal
    Signed-off-by: Jens Axboe

    Miquel Raynal
     
  • Pull i2c fixes from Wolfram Sang:
    "I2C has one core and one driver bugfix for you"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: tegra: Fix Maximum transfer size
    i2c: dev: prevent adapter retries and timeout being set as minus value

    Linus Torvalds
     
  • Pull arm64 fixes from Will Deacon:
    "Another handful of arm64 fixes here. Most of the complication comes
    from improving our kpti code to avoid lengthy pauses (30+ seconds)
    during boot when we rewrite the page tables. There are also a couple
    of IORT fixes that came in via Lorenzo.

    Summary:

    - Don't error in kexec_file_load if kaslr-seed is missing in
    device-tree

    - Fix incorrect argument type passed to iort_match_node_callback()

    - Fix IORT build failure when CONFIG_IOMMU_API=n

    - Fix kpti performance regression with new rodata default option

    - Typo fix"

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: kexec_file: return successfully even if kaslr-seed doesn't exist
    ACPI/IORT: Fix rc_dma_get_range()
    arm64: kpti: Avoid rewriting early page tables when KASLR is enabled
    arm64: asm-prototypes: Fix fat-fingered typo in comment
    ACPI/IORT: Fix build when CONFIG_IOMMU_API=n

    Linus Torvalds
     
  • Pull ceph updates from Ilya Dryomov:
    "A patch to allow setting abort_on_full and a fix for an old "rbd
    unmap" edge case, marked for stable"

    * tag 'ceph-for-5.0-rc2' of git://github.com/ceph/ceph-client:
    rbd: don't return 0 on unmap if RBD_DEV_FLAG_REMOVING is set
    ceph: use vmf_error() in ceph_filemap_fault()
    libceph: allow setting abort_on_full for rbd

    Linus Torvalds
     
  • Pull perf tooling updates from Ingo Molnar:
    "Tooling changes only: fixes and a few stray improvements.

    Most of the diffstat is dominated by a PowerPC related fix of system
    call trace output beautification that allows us to (again) use the
    UAPI header version and sync up with the kernel's version of PowerPC
    system call names in the arch/powerpc/kernel/syscalls/syscall.tbl
    header"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
    tools headers powerpc: Remove unistd.h
    perf powerpc: Rework syscall table generation
    perf symbols: Add 'arch_cpu_idle' to the list of kernel idle symbols
    tools include uapi: Sync linux/if_link.h copy with the kernel sources
    tools include uapi: Sync linux/vhost.h with the kernel sources
    tools include uapi: Sync linux/fs.h copy with the kernel sources
    perf beauty: Switch from using uapi/linux/fs.h to uapi/linux/mount.h
    tools include uapi: Grab a copy of linux/mount.h
    perf top: Lift restriction on using callchains without "sym" in --sort
    tools lib traceevent: Remove tep_data_event_from_type() API
    tools lib traceevent: Rename tep_is_file_bigendian() to tep_file_bigendian()
    tools lib traceevent: Changed return logic of tep_register_event_handler() API
    tools lib traceevent: Changed return logic of trace_seq_printf() and trace_seq_vprintf() APIs
    tools lib traceevent: Rename struct cmdline to struct tep_cmdline
    tools lib traceevent: Initialize host_bigendian at tep_handle allocation
    tools lib traceevent: Introduce new libtracevent API: tep_override_comm()
    perf tests: Add a test for the ARM 32-bit [vectors] page
    perf tools: Make find_vdso_map() more modular
    perf trace: Fix alignment for [continued] lines
    perf trace: Fix ')' placement in "interrupted" syscall lines
    ...

    Linus Torvalds
     
  • Since commit 09abb5e3e5e50 ("KVM: nVMX: call kvm_skip_emulated_instruction
    in nested_vmx_{fail,succeed}") nested_vmx_failValid() results in
    kvm_skip_emulated_instruction() so doing it again in handle_vmptrld() when
    vmptr address is not backed is wrong, we end up advancing RIP twice.

    Fixes: fca91f6d60b6e ("kvm: nVMX: Set VM instruction error for VMPTRLD of unbacked page")
    Reported-by: Cornelia Huck
    Signed-off-by: Vitaly Kuznetsov
    Reviewed-by: Sean Christopherson
    Reviewed-by: Cornelia Huck
    Signed-off-by: Radim Krčmář

    Vitaly Kuznetsov
     
  • The URL of [api-spec] in Documentation/virtual/kvm/amd-memory-encryption.rst
    is no longer valid, replaced space with underscore.

    Signed-off-by: Christophe de Dinechin
    Reviewed-by: Brijesh Singh
    Signed-off-by: Radim Krčmář

    Christophe de Dinechin
     
  • The "ret" is initialized to be ENOTSUPP. The return value of
    __hv_remote_flush_tlb_with_range() will be Or with "ret" when ept
    table potiners are mismatched. This will cause return ENOTSUPP even if
    flush tlb successfully. This patch is to fix the issue and set
    "ret" to 0.

    Fixes: a5c214dad198 ("KVM/VMX: Change hv flush logic when ept tables are mismatched.")
    Signed-off-by: Lan Tianyu
    Signed-off-by: Radim Krčmář

    Lan Tianyu
     
  • By code inspection, it was found that multiple calls to KVM_SEV_INIT
    could deplete asid bits and overwrite kvm_sev_info's regions_list.

    Multiple calls to KVM_SVM_INIT is not likely to occur with QEMU, but this
    should likely be fixed anyway.

    This code is serialized by kvm->lock.

    Fixes: 1654efcbc431 ("KVM: SVM: Add KVM_SEV_INIT command")
    Reported-by: Cfir Cohen
    Signed-off-by: David Rientjes
    Signed-off-by: Radim Krčmář

    David Rientjes
     
  • The function at issue does not fully validate the content of the
    structure pointed by the log parameter, though its content has just been
    copied from userspace and lacks validation. Fix that.

    Moreover, change the type of n to unsigned long as that is the type
    returned by kvm_dirty_bitmap_bytes().

    Signed-off-by: Tomas Bortoli
    Reported-by: syzbot+028366e52c9ace67deb3@syzkaller.appspotmail.com
    [Squashed the fix from Paolo. - Radim.]
    Signed-off-by: Radim Krčmář

    Tomas Bortoli