02 Oct, 2018

5 commits

  • The fc transport device should allow for a rediscovery, as userspace
    might have lost the events. Example is udev events not handled during
    system startup.

    This patch add a sysfs entry 'nvme_discovery' on the fc class to
    have it replay all udev discovery events for all local port/remote
    port address pairs.

    Signed-off-by: James Smart
    Signed-off-by: Christoph Hellwig

    James Smart
     
  • Currently, if a targetport has been connected to via the nvmet config
    (in other words, the add_port() transport routine called, and the nvmet
    port pointer stored for using in upcalls on new io), and if the
    targetport is then removed (say the lldd driver decides to unload or
    fully reset its hardware) and then re-added (the lldd driver reloads or
    reinits its hardware), the port pointer has been lost so there's no way
    to continue to post commands up to nvmet via the transport port.

    Correct by allocating a small "port context" structure that will be
    linked to by the targetport. The context will save the targetport WWN's
    and the nvmet port pointer to use for it. Initial allocation will occur
    when the targetport is bound to via add_port. The context will be
    deallocated when remove_port() is called. If a targetport is removed
    while nvmet has the active port context, the targetport will be unlinked
    from the port context before removal. If a new targetport is registered,
    the port contexts without a binding are looked through and if the WWN's
    match (so it's the same as nvmet's port context) the port context is
    linked to the new target port. Thus new io can be received on the new
    targetport and operation resumes with nvmet.

    Additionally, this also resolves nvmet configuration changing out from
    underneath of the nvme-fc target port (for example: a nvmetcli clear).

    Signed-off-by: James Smart
    Signed-off-by: Christoph Hellwig

    James Smart
     
  • Signed-off-by: Milan P. Gandhi
    Reviewed-by: James Smart
    Signed-off-by: Christoph Hellwig

    Milan P. Gandhi
     
  • This patch removes the redundant module prefix used in the pr_err() when
    nvmet_get_smart_log_nsid() failed to find the namespace provided as a part
    of smart-log command.

    Signed-off-by: Chaitanya Kulkarni
    Signed-off-by: Christoph Hellwig

    Chaitanya Kulkarni
     
  • Signed-off-by: Milan P. Gandhi
    Reviewed-by: Chaitanya Kulkarni
    Signed-off-by: Christoph Hellwig

    Milan P. Gandhi
     

01 Oct, 2018

1 commit

  • Merge -rc6 in, for two reasons:

    1) Resolve a trivial conflict in the blk-mq-tag.c documentation
    2) A few important regression fixes went into upstream directly, so
    they aren't in the 4.20 branch.

    Signed-off-by: Jens Axboe

    * tag 'v4.19-rc6': (780 commits)
    Linux 4.19-rc6
    MAINTAINERS: fix reference to moved drivers/{misc => auxdisplay}/panel.c
    cpufreq: qcom-kryo: Fix section annotations
    perf/core: Add sanity check to deal with pinned event failure
    xen/blkfront: correct purging of persistent grants
    Revert "xen/blkfront: When purging persistent grants, keep them in the buffer"
    selftests/powerpc: Fix Makefiles for headers_install change
    blk-mq: I/O and timer unplugs are inverted in blktrace
    dax: Fix deadlock in dax_lock_mapping_entry()
    x86/boot: Fix kexec booting failure in the SEV bit detection code
    bcache: add separate workqueue for journal_write to avoid deadlock
    drm/amd/display: Fix Edid emulation for linux
    drm/amd/display: Fix Vega10 lightup on S3 resume
    drm/amdgpu: Fix vce work queue was not cancelled when suspend
    Revert "drm/panel: Add device_link from panel device to DRM device"
    xen/blkfront: When purging persistent grants, keep them in the buffer
    clocksource/drivers/timer-atmel-pit: Properly handle error cases
    block: fix deadline elevator drain for zoned block devices
    ACPI / hotplug / PCI: Don't scan for non-hotplug bridges if slot is not bridge
    drm/syncobj: Don't leak fences when WAIT_FOR_SUBMIT is set
    ...

    Signed-off-by: Jens Axboe

    Jens Axboe
     

30 Sep, 2018

2 commits

  • Jens writes:
    "Block fixes for 4.19-rc6

    A set of fixes that should go into this release. This pull request
    contains:

    - A fix (hopefully) for the persistent grants for xen-blkfront. A
    previous fix from this series wasn't complete, hence reverted, and
    this one should hopefully be it. (Boris Ostrovsky)

    - Fix for an elevator drain warning with SMR devices, which is
    triggered when you switch schedulers (Damien)

    - bcache deadlock fix (Guoju Fang)

    - Fix for the block unplug tracepoint, which has had the
    timer/explicit flag reverted since 4.11 (Ilya)

    - Fix a regression in this series where the blk-mq timeout hook is
    invoked with the RCU read lock held, hence preventing it from
    blocking (Keith)

    - NVMe pull from Christoph, with a single multipath fix (Susobhan Dey)"

    * tag 'for-linus-20180929' of git://git.kernel.dk/linux-block:
    xen/blkfront: correct purging of persistent grants
    Revert "xen/blkfront: When purging persistent grants, keep them in the buffer"
    blk-mq: I/O and timer unplugs are inverted in blktrace
    bcache: add separate workqueue for journal_write to avoid deadlock
    xen/blkfront: When purging persistent grants, keep them in the buffer
    block: fix deadline elevator drain for zoned block devices
    blk-mq: Allow blocking queue tag iter callbacks
    nvme: properly propagate errors in nvme_mpath_init

    Greg Kroah-Hartman
     
  • Thomas writes:
    "Three small fixes for clocksource drivers:
    - Proper error handling in the Atmel PIT driver
    - Add CLOCK_SOURCE_SUSPEND_NONSTOP for TI SoCs so suspend works again
    - Fix the next event function for Facebook Backpack-CMM BMC chips so
    usleep(100) doesnt sleep several milliseconds"

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    clocksource/drivers/timer-atmel-pit: Properly handle error cases
    clocksource/drivers/fttmr010: Fix set_next_event handler
    clocksource/drivers/ti-32k: Add CLOCK_SOURCE_SUSPEND_NONSTOP flag for non-am43 SoCs

    Greg Kroah-Hartman
     

29 Sep, 2018

8 commits

  • Rafael writes:
    "Power management fix for 4.19-rc6

    Fix incorrect __init and __exit annotations in the Qualcomm
    Kryo cpufreq driver (Nathan Chancellor)."

    * tag 'pm-4.19-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    cpufreq: qcom-kryo: Fix section annotations

    Greg Kroah-Hartman
     
  • There is currently a warning when building the Kryo cpufreq driver into
    the kernel image:

    WARNING: vmlinux.o(.text+0x8aa424): Section mismatch in reference from
    the function qcom_cpufreq_kryo_probe() to the function
    .init.text:qcom_cpufreq_kryo_get_msm_id()
    The function qcom_cpufreq_kryo_probe() references
    the function __init qcom_cpufreq_kryo_get_msm_id().
    This is often because qcom_cpufreq_kryo_probe lacks a __init
    annotation or the annotation of qcom_cpufreq_kryo_get_msm_id is wrong.

    Remove the '__init' annotation from qcom_cpufreq_kryo_get_msm_id
    so that there is no more mismatch warning.

    Additionally, Nick noticed that the remove function was marked as
    '__init' when it should really be marked as '__exit'.

    Fixes: 46e2856b8e18 (cpufreq: Add Kryo CPU scaling driver)
    Fixes: 5ad7346b4ae2 (cpufreq: kryo: Add module remove and exit)
    Reported-by: Nick Desaulniers
    Signed-off-by: Nathan Chancellor
    Acked-by: Viresh Kumar
    Cc: 4.18+ # 4.18+
    Signed-off-by: Rafael J. Wysocki

    Nathan Chancellor
     
  • Dmitry writes:
    "Input updates for v4.19-rc5

    Just a few driver fixes"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: uinput - allow for max == min during input_absinfo validation
    Input: elantech - enable middle button of touchpad on ThinkPad P72
    Input: atakbd - fix Atari CapsLock behaviour
    Input: atakbd - fix Atari keymap
    Input: egalax_ts - add system wakeup support
    Input: gpio-keys - fix a documentation index issue

    Greg Kroah-Hartman
     
  • Mark writes:
    "spi: Fixes for v4.19

    Quite a few fixes for the Renesas drivers in here, plus a fix for the
    Tegra driver and some documentation fixes for the recently added
    spi-mem code. The Tegra fix is relatively large but fairly
    straightforward and mechanical, it runs on probe so it's been
    reasonably well covered in -next testing."

    * tag 'spi-fix-v4.19-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
    spi: spi-mem: Move the DMA-able constraint doc to the kerneldoc header
    spi: spi-mem: Add missing description for data.nbytes field
    spi: rspi: Fix interrupted DMA transfers
    spi: rspi: Fix invalid SPI use during system suspend
    spi: sh-msiof: Fix handling of write value for SISTR register
    spi: sh-msiof: Fix invalid SPI use during system suspend
    spi: gpio: Fix copy-and-paste error
    spi: tegra20-slink: explicitly enable/disable clock

    Greg Kroah-Hartman
     
  • Mark writes:
    "regulator: Fixes for 4.19

    A collection of fairly minor bug fixes here, a couple of driver
    specific ones plus two core fixes. There's one fix for the new
    suspend state code which fixes some confusion with constant values
    that are supposed to indicate noop operation and another fixing a
    race condition with the creation of sysfs files on new regulators."

    * tag 'regulator-v4.19-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
    regulator: fix crash caused by null driver data
    regulator: Fix 'do-nothing' value for regulators without suspend state
    regulator: da9063: fix DT probing with constraints
    regulator: bd71837: Disable voltage monitoring for LDO3/4

    Greg Kroah-Hartman
     
  • Linus writes:
    "Pin control fixes for v4.19:
    - Fixes to x86 hardware:
    - AMD interrupt debounce issues
    - Faulty Intel cannonlake register offset
    - Revert pin translation IRQ locking"

    * tag 'pinctrl-v4.19-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
    Revert "pinctrl: intel: Do pin translation when lock IRQ"
    pinctrl: cannonlake: Fix HOSTSW_OWN register offset of H variant
    pinctrl/amd: poll InterruptEnable bits in amd_gpio_irq_set_type

    Greg Kroah-Hartman
     
  • Dave writes:
    "drm fixes for 4.19-rc6

    Looks like a pretty normal week for graphics,

    core: syncobj fix, panel link regression revert
    amd: suspend/resume fixes, EDID emulation fix
    mali-dp: NV12 writeback and vblank reset fixes
    etnaviv: DMA setup fix"

    * tag 'drm-fixes-2018-09-28' of git://anongit.freedesktop.org/drm/drm:
    drm/amd/display: Fix Edid emulation for linux
    drm/amd/display: Fix Vega10 lightup on S3 resume
    drm/amdgpu: Fix vce work queue was not cancelled when suspend
    Revert "drm/panel: Add device_link from panel device to DRM device"
    drm/syncobj: Don't leak fences when WAIT_FOR_SUBMIT is set
    drm/malidp: Fix writeback in NV12
    drm: mali-dp: Call drm_crtc_vblank_reset on device init
    drm/etnaviv: add DMA configuration for etnaviv platform device

    Greg Kroah-Hartman
     
  • Bjorn writes:
    "PCI fixes:

    - Fix ACPI hotplug issue that causes black screen crash at boot (Mika
    Westerberg)

    - Fix DesignWare "scheduling while atomic" issues (Jisheng Zhang)

    - Add PPC contacts to MAINTAINERS for PCI core error handling (Bjorn
    Helgaas)

    - Sort Mobiveil MAINTAINERS entry (Lorenzo Pieralisi)"

    * tag 'pci-v4.19-fixes-2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    ACPI / hotplug / PCI: Don't scan for non-hotplug bridges if slot is not bridge
    PCI: dwc: Fix scheduling while atomic issues
    MAINTAINERS: Move mobiveil PCI driver entry where it belongs
    MAINTAINERS: Update PPC contacts for PCI core error handling

    Greg Kroah-Hartman
     

28 Sep, 2018

11 commits


27 Sep, 2018

13 commits

  • After write SSD completed, bcache schedules journal_write work to
    system_wq, which is a public workqueue in system, without WQ_MEM_RECLAIM
    flag. system_wq is also a bound wq, and there may be no idle kworker on
    current processor. Creating a new kworker may unfortunately need to
    reclaim memory first, by shrinking cache and slab used by vfs, which
    depends on bcache device. That's a deadlock.

    This patch create a new workqueue for journal_write with WQ_MEM_RECLAIM
    flag. It's rescuer thread will work to avoid the deadlock.

    Signed-off-by: Guoju Fang
    Cc: stable@vger.kernel.org
    Signed-off-by: Coly Li
    Signed-off-by: Jens Axboe

    Guoju Fang
     
  • [Why]
    EDID emulation didn't work properly for linux, as we stop programming
    if nothing is connected physically.

    [How]
    We get a flag from DRM when we want to do edid emulation. We check if
    this flag is true and nothing is connected physically, if so we only
    program the front end using VIRTUAL_SIGNAL.

    Signed-off-by: Bhawanpreet Lakha
    Reviewed-by: Harry Wentland
    Acked-by: Leo Li
    Signed-off-by: Alex Deucher

    Bhawanpreet Lakha
     
  • [Why]
    There have been a few reports of Vega10 display remaining blank
    after S3 resume. The regression is caused by workaround for mode
    change on Vega10 - skip set_bandwidth if stream count is 0.
    As a result we skipped dispclk reset on suspend, thus on resume
    we may skip the clock update assuming it hasn't been changed.
    On some systems it causes display blank or 'out of range'.

    [How]
    Revert "drm/amd/display: Fix Vega10 black screen after mode change"
    Verified that it hadn't cause mode change regression.

    Signed-off-by: Roman Li
    Reviewed-by: Sun peng Li
    Acked-by: Leo Li
    Signed-off-by: Alex Deucher

    Roman Li
     
  • The vce cancel_delayed_work_sync never be called.
    driver call the function in error path.

    This caused the A+A suspend hang when runtime pm enebled.
    As we will visit the smu in the idle queue. this will cause
    smu hang because the dgpu has been suspend, and the dgpu also
    will be waked up. As the smu has been hang, so the dgpu resume
    will failed.

    Reviewed-by: Christian König
    Reviewed-by: Feifei Xu
    Signed-off-by: Rex Zhu
    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org

    Rex Zhu
     
  • This reverts commit 0c08754b59da5557532d946599854e6df28edc22.

    commit 0c08754b59da
    ("drm/panel: Add device_link from panel device to DRM device")
    creates a circular dependency under these circumstances:

    1. The panel depends on dsi-host because it is MIPI-DSI child
    device.
    2. dsi-host depends on the drm parent device (connector->dev->dev)
    this should be allowed.
    3. drm parent dev (connector->dev->dev) depends on the panel
    after this patch.

    This makes the dependency circular and while it appears it
    does not affect any in-tree drivers (they do not seem to have
    dsi hosts depending on the same parent device) this does not
    seem right.

    As noted in a response from Andrzej Hajda, the intent is
    likely to make the panel dependent on the DRM device
    (connector->dev) not its parent. But we have no way of
    doing that since the DRM device doesn't contain any
    struct device on its own (arguably it should).

    Revert this until a proper approach is figured out.

    Cc: Jyri Sarha
    Cc: Eric Anholt
    Cc: Andrzej Hajda
    Signed-off-by: Linus Walleij
    Signed-off-by: Sean Paul
    Link: https://patchwork.freedesktop.org/patch/msgid/20180927124130.9102-1-linus.walleij@linaro.org

    Linus Walleij
     
  • …zcano/linux into timers/urgent

    Pull another fix from Daniel Lezcano, which felt through the cracks:

    - Fix a potential memory leak reported by smatch in the atmel timer driver

    Thomas Gleixner
     
  • Commit a46b53672b2c ("xen/blkfront: cleanup stale persistent grants")
    added support for purging persistent grants when they are not in use. As
    part of the purge, the grants were removed from the grant buffer, This
    eventually causes the buffer to become empty, with BUG_ON triggered in
    get_free_grant(). This can be observed even on an idle system, within
    20-30 minutes.

    We should keep the grants in the buffer when purging, and only free the
    grant ref.

    Fixes: a46b53672b2c ("xen/blkfront: cleanup stale persistent grants")
    Reviewed-by: Juergen Gross
    Signed-off-by: Boris Ostrovsky
    Signed-off-by: Jens Axboe

    Boris Ostrovsky
     
  • The smatch utility reports a possible leak:

    smatch warnings:
    drivers/clocksource/timer-atmel-pit.c:183 at91sam926x_pit_dt_init() warn: possible memory leak of 'data'

    Ensure data is freed before exiting with an error.

    Reported-by: Dan Carpenter
    Signed-off-by: Alexandre Belloni
    Cc: stable@vger.kernel.org
    Signed-off-by: Daniel Lezcano

    Alexandre Belloni
     
  • Fix NV12 writeback and fix vblank reset.

    Signed-off-by: Dave Airlie
    From: Liviu Dudau
    Link: https://patchwork.freedesktop.org/patch/msgid/20180921112354.GR936@e110455-lin.cambridge.arm.com

    Dave Airlie
     
  • one fix to get a proper DMA configuration in place for the etnaviv
    virtual device. I'm sending this as a fix, as a dma-mapping change at
    the ARC architecture side during the 4.19 cycle broke etnaviv on this
    platform, which gets remedied with this patch, but it also enables
    ARM64.

    Signed-off-by: Dave Airlie
    From: Lucas Stach
    Link: https://patchwork.freedesktop.org/patch/msgid/ea1f712bf09bf9439c6b092bf2c2bde7bb01cf5e.camel@pengutronix.de

    Dave Airlie
     
  • The RQF_PREEMPT flag is used for three purposes:
    - In the SCSI core, for making sure that power management requests
    are executed even if a device is in the "quiesced" state.
    - For domain validation by SCSI drivers that use the parallel port.
    - In the IDE driver, for IDE preempt requests.
    Rename "preempt-only" into "pm-only" because the primary purpose of
    this mode is power management. Since the power management core may
    but does not have to resume a runtime suspended device before
    performing system-wide suspend and since a later patch will set
    "pm-only" mode as long as a block device is runtime suspended, make
    it possible to set "pm-only" mode from more than one context. Since
    with this change scsi_device_quiesce() is no longer idempotent, make
    that function return early if it is called for a quiesced queue.

    Signed-off-by: Bart Van Assche
    Acked-by: Martin K. Petersen
    Reviewed-by: Hannes Reinecke
    Reviewed-by: Christoph Hellwig
    Reviewed-by: Ming Lei
    Cc: Jianchao Wang
    Cc: Johannes Thumshirn
    Cc: Alan Stern
    Signed-off-by: Jens Axboe

    Bart Van Assche
     
  • Move the code for runtime power management from blk-core.c into the
    new source file blk-pm.c. Move the corresponding declarations from
    into . For CONFIG_PM=n, leave out
    the declarations of the functions that are not used in that mode.
    This patch not only reduces the number of #ifdefs in the block layer
    core code but also reduces the size of header file
    and hence should help to reduce the build time of the Linux kernel
    if CONFIG_PM is not defined.

    Signed-off-by: Bart Van Assche
    Reviewed-by: Ming Lei
    Reviewed-by: Christoph Hellwig
    Cc: Jianchao Wang
    Cc: Hannes Reinecke
    Cc: Johannes Thumshirn
    Cc: Alan Stern
    Signed-off-by: Jens Axboe

    Bart Van Assche
     
  • HP 6730b laptop has an ethernet NIC connected to one of the PCIe root
    ports. The root ports themselves are native PCIe hotplug capable. Now,
    during boot after PCI devices are scanned the BIOS triggers ACPI bus check
    directly to the NIC:

    ACPI: \_SB_.PCI0.RP06.NIC_: Bus check in hotplug_event()

    It is not clear why it is sending bus check but regardless the ACPI hotplug
    notify handler calls enable_slot() directly (instead of going through
    acpiphp_check_bridge() as there is no bridge), which ends up handling
    special case for non-hotplug bridges with native PCIe hotplug. This
    results a crash of some kind but the reporter only sees black screen so it
    is hard to figure out the exact spot and what actually happens. Based on
    a few fix proposals it was tracked to crash somewhere inside
    pci_assign_unassigned_bridge_resources().

    In any case we should not really be in that special branch at all because
    the ACPI notify happened to a slot that is not a PCI bridge (it is just a
    regular PCI device).

    Fix this so that we only go to that special branch if we are calling
    enable_slot() for a bridge (e.g., the ACPI notification was for the
    bridge).

    Link: https://bugzilla.kernel.org/show_bug.cgi?id=201127
    Fixes: 84c8b58ed3ad ("ACPI / hotplug / PCI: Don't scan bridges managed by native hotplug")
    Reported-by: Peter Anemone
    Signed-off-by: Mika Westerberg
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Rafael J. Wysocki
    CC: stable@vger.kernel.org # v4.18+

    Mika Westerberg