From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org,
Kai-Heng Feng <kai.heng.feng@canonical.com>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.4 055/168] PCI/PM: Add missing link delays required by the PCIe spec
Date: Tue, 28 Apr 2020 20:23:49 +0200 [thread overview]
Message-ID: <20200428182238.853075240@linuxfoundation.org> (raw)
In-Reply-To: <20200428182231.704304409@linuxfoundation.org>
From: Mika Westerberg <mika.westerberg@linux.intel.com>
[ Upstream commit ad9001f2f41198784b0423646450ba2cb24793a3 ]
Currently Linux does not follow PCIe spec regarding the required delays
after reset. A concrete example is a Thunderbolt add-in-card that consists
of a PCIe switch and two PCIe endpoints:
+-1b.0-[01-6b]----00.0-[02-6b]--+-00.0-[03]----00.0 TBT controller
+-01.0-[04-36]-- DS hotplug port
+-02.0-[37]----00.0 xHCI controller
\-04.0-[38-6b]-- DS hotplug port
The root port (1b.0) and the PCIe switch downstream ports are all PCIe Gen3
so they support 8GT/s link speeds.
We wait for the PCIe hierarchy to enter D3cold (runtime):
pcieport 0000:00:1b.0: power state changed by ACPI to D3cold
When it wakes up from D3cold, according to the PCIe 5.0 section 5.8 the
PCIe switch is put to reset and its power is re-applied. This means that we
must follow the rules in PCIe 5.0 section 6.6.1.
For the PCIe Gen3 ports we are dealing with here, the following applies:
With a Downstream Port that supports Link speeds greater than 5.0 GT/s,
software must wait a minimum of 100 ms after Link training completes
before sending a Configuration Request to the device immediately below
that Port. Software can determine when Link training completes by polling
the Data Link Layer Link Active bit or by setting up an associated
interrupt (see Section 6.7.3.3).
Translating this into the above topology we would need to do this (DLLLA
stands for Data Link Layer Link Active):
0000:00:1b.0: wait for 100 ms after DLLLA is set before access to 0000:01:00.0
0000:02:00.0: wait for 100 ms after DLLLA is set before access to 0000:03:00.0
0000:02:02.0: wait for 100 ms after DLLLA is set before access to 0000:37:00.0
I've instrumented the kernel with some additional logging so we can see the
actual delays performed:
pcieport 0000:00:1b.0: power state changed by ACPI to D0
pcieport 0000:00:1b.0: waiting for D3cold delay of 100 ms
pcieport 0000:00:1b.0: waiting for D3hot delay of 10 ms
pcieport 0000:02:01.0: waiting for D3hot delay of 10 ms
pcieport 0000:02:04.0: waiting for D3hot delay of 10 ms
For the switch upstream port (01:00.0 reachable through 00:1b.0 root port)
we wait for 100 ms but not taking into account the DLLLA requirement. We
then wait 10 ms for D3hot -> D0 transition of the root port and the two
downstream hotplug ports. This means that we deviate from what the spec
requires.
Performing the same check for system sleep (s2idle) transitions it turns
out to be even worse. None of the mandatory delays are performed. If this
would be S3 instead of s2idle then according to PCI FW spec 3.2 section
4.6.8. there is a specific _DSM that allows the OS to skip the delays but
this platform does not provide the _DSM and does not go to S3 anyway so no
firmware is involved that could already handle these delays.
On this particular platform these delays are not actually needed because
there is an additional delay as part of the ACPI power resource that is
used to turn on power to the hierarchy but since that additional delay is
not required by any of standards (PCIe, ACPI) it is not present in the
Intel Ice Lake, for example where missing the mandatory delays causes
pciehp to start tearing down the stack too early (links are not yet
trained). Below is an example how it looks like when this happens:
pcieport 0000:83:04.0: pciehp: Slot(4): Card not present
pcieport 0000:87:04.0: PME# disabled
pcieport 0000:83:04.0: pciehp: pciehp_unconfigure_device: domain:bus:dev = 0000:86:00
pcieport 0000:86:00.0: Refused to change power state, currently in D3
pcieport 0000:86:00.0: restoring config space at offset 0x3c (was 0xffffffff, writing 0x201ff)
pcieport 0000:86:00.0: restoring config space at offset 0x38 (was 0xffffffff, writing 0x0)
...
There is also one reported case (see the bugzilla link below) where the
missing delay causes xHCI on a Titan Ridge controller fail to runtime
resume when USB-C dock is plugged. This does not involve pciehp but instead
the PCI core fails to runtime resume the xHCI device:
pcieport 0000:04:02.0: restoring config space at offset 0xc (was 0x10000, writing 0x10020)
pcieport 0000:04:02.0: restoring config space at offset 0x4 (was 0x100000, writing 0x100406)
xhci_hcd 0000:39:00.0: Refused to change power state, currently in D3
xhci_hcd 0000:39:00.0: restoring config space at offset 0x3c (was 0xffffffff, writing 0x1ff)
xhci_hcd 0000:39:00.0: restoring config space at offset 0x38 (was 0xffffffff, writing 0x0)
...
Add a new function pci_bridge_wait_for_secondary_bus() that is called on
PCI core resume and runtime resume paths accordingly if the bridge entered
D3cold (and thus went through reset).
This is second attempt to add the missing delays. The previous solution in
c2bf1fc212f7 ("PCI: Add missing link delays required by the PCIe spec") was
reverted because of two issues it caused:
1. One system become unresponsive after S3 resume due to PME service
spinning in pcie_pme_work_fn(). The root port in question reports that
the xHCI sent PME but the xHCI device itself does not have PME status
set. The PME status bit is never cleared in the root port resulting
the indefinite loop in pcie_pme_work_fn().
2. Slows down resume if the root/downstream port does not support Data
Link Layer Active Reporting because pcie_wait_for_link_delay() waits
1100 ms in that case.
This version should avoid the above issues because we restrict the delay to
happen only if the port went into D3cold.
Link: https://lore.kernel.org/linux-pci/SL2P216MB01878BBCD75F21D882AEEA2880C60@SL2P216MB0187.KORP216.PROD.OUTLOOK.COM/
Link: https://bugzilla.kernel.org/show_bug.cgi?id=203885
Link: https://lore.kernel.org/r/20191112091617.70282-3-mika.westerberg@linux.intel.com
Reported-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/pci/pci-driver.c | 11 +++-
drivers/pci/pci.c | 121 ++++++++++++++++++++++++++++++++++++++-
drivers/pci/pci.h | 1 +
3 files changed, 130 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index 0c3086793e4ec..5ea612a15550e 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -919,6 +919,8 @@ static int pci_pm_resume_noirq(struct device *dev)
struct pci_dev *pci_dev = to_pci_dev(dev);
struct device_driver *drv = dev->driver;
int error = 0;
+ pci_power_t prev_state = pci_dev->current_state;
+ bool skip_bus_pm = pci_dev->skip_bus_pm;
if (dev_pm_may_skip_resume(dev))
return 0;
@@ -937,12 +939,15 @@ static int pci_pm_resume_noirq(struct device *dev)
* configuration here and attempting to put them into D0 again is
* pointless, so avoid doing that.
*/
- if (!(pci_dev->skip_bus_pm && pm_suspend_no_platform()))
+ if (!(skip_bus_pm && pm_suspend_no_platform()))
pci_pm_default_resume_early(pci_dev);
pci_fixup_device(pci_fixup_resume_early, pci_dev);
pcie_pme_root_status_cleanup(pci_dev);
+ if (!skip_bus_pm && prev_state == PCI_D3cold)
+ pci_bridge_wait_for_secondary_bus(pci_dev);
+
if (pci_has_legacy_pm_support(pci_dev))
return pci_legacy_resume_early(dev);
@@ -1333,6 +1338,7 @@ static int pci_pm_runtime_resume(struct device *dev)
int rc = 0;
struct pci_dev *pci_dev = to_pci_dev(dev);
const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
+ pci_power_t prev_state = pci_dev->current_state;
/*
* Restoring config space is necessary even if the device is not bound
@@ -1348,6 +1354,9 @@ static int pci_pm_runtime_resume(struct device *dev)
pci_enable_wake(pci_dev, PCI_D0, false);
pci_fixup_device(pci_fixup_resume, pci_dev);
+ if (prev_state == PCI_D3cold)
+ pci_bridge_wait_for_secondary_bus(pci_dev);
+
if (pm && pm->runtime_resume)
rc = pm->runtime_resume(dev);
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 94d6e120b4734..779132aef0fb9 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -1019,8 +1019,6 @@ static void __pci_start_power_transition(struct pci_dev *dev, pci_power_t state)
* because have already delayed for the bridge.
*/
if (dev->runtime_d3cold) {
- if (dev->d3cold_delay && !dev->imm_ready)
- msleep(dev->d3cold_delay);
/*
* When powering on a bridge from D3cold, the
* whole hierarchy may be powered on into
@@ -4671,6 +4669,125 @@ bool pcie_wait_for_link(struct pci_dev *pdev, bool active)
return pcie_wait_for_link_delay(pdev, active, 100);
}
+/*
+ * Find maximum D3cold delay required by all the devices on the bus. The
+ * spec says 100 ms, but firmware can lower it and we allow drivers to
+ * increase it as well.
+ *
+ * Called with @pci_bus_sem locked for reading.
+ */
+static int pci_bus_max_d3cold_delay(const struct pci_bus *bus)
+{
+ const struct pci_dev *pdev;
+ int min_delay = 100;
+ int max_delay = 0;
+
+ list_for_each_entry(pdev, &bus->devices, bus_list) {
+ if (pdev->d3cold_delay < min_delay)
+ min_delay = pdev->d3cold_delay;
+ if (pdev->d3cold_delay > max_delay)
+ max_delay = pdev->d3cold_delay;
+ }
+
+ return max(min_delay, max_delay);
+}
+
+/**
+ * pci_bridge_wait_for_secondary_bus - Wait for secondary bus to be accessible
+ * @dev: PCI bridge
+ *
+ * Handle necessary delays before access to the devices on the secondary
+ * side of the bridge are permitted after D3cold to D0 transition.
+ *
+ * For PCIe this means the delays in PCIe 5.0 section 6.6.1. For
+ * conventional PCI it means Tpvrh + Trhfa specified in PCI 3.0 section
+ * 4.3.2.
+ */
+void pci_bridge_wait_for_secondary_bus(struct pci_dev *dev)
+{
+ struct pci_dev *child;
+ int delay;
+
+ if (pci_dev_is_disconnected(dev))
+ return;
+
+ if (!pci_is_bridge(dev) || !dev->bridge_d3)
+ return;
+
+ down_read(&pci_bus_sem);
+
+ /*
+ * We only deal with devices that are present currently on the bus.
+ * For any hot-added devices the access delay is handled in pciehp
+ * board_added(). In case of ACPI hotplug the firmware is expected
+ * to configure the devices before OS is notified.
+ */
+ if (!dev->subordinate || list_empty(&dev->subordinate->devices)) {
+ up_read(&pci_bus_sem);
+ return;
+ }
+
+ /* Take d3cold_delay requirements into account */
+ delay = pci_bus_max_d3cold_delay(dev->subordinate);
+ if (!delay) {
+ up_read(&pci_bus_sem);
+ return;
+ }
+
+ child = list_first_entry(&dev->subordinate->devices, struct pci_dev,
+ bus_list);
+ up_read(&pci_bus_sem);
+
+ /*
+ * Conventional PCI and PCI-X we need to wait Tpvrh + Trhfa before
+ * accessing the device after reset (that is 1000 ms + 100 ms). In
+ * practice this should not be needed because we don't do power
+ * management for them (see pci_bridge_d3_possible()).
+ */
+ if (!pci_is_pcie(dev)) {
+ pci_dbg(dev, "waiting %d ms for secondary bus\n", 1000 + delay);
+ msleep(1000 + delay);
+ return;
+ }
+
+ /*
+ * For PCIe downstream and root ports that do not support speeds
+ * greater than 5 GT/s need to wait minimum 100 ms. For higher
+ * speeds (gen3) we need to wait first for the data link layer to
+ * become active.
+ *
+ * However, 100 ms is the minimum and the PCIe spec says the
+ * software must allow at least 1s before it can determine that the
+ * device that did not respond is a broken device. There is
+ * evidence that 100 ms is not always enough, for example certain
+ * Titan Ridge xHCI controller does not always respond to
+ * configuration requests if we only wait for 100 ms (see
+ * https://bugzilla.kernel.org/show_bug.cgi?id=203885).
+ *
+ * Therefore we wait for 100 ms and check for the device presence.
+ * If it is still not present give it an additional 100 ms.
+ */
+ if (!pcie_downstream_port(dev))
+ return;
+
+ if (pcie_get_speed_cap(dev) <= PCIE_SPEED_5_0GT) {
+ pci_dbg(dev, "waiting %d ms for downstream link\n", delay);
+ msleep(delay);
+ } else {
+ pci_dbg(dev, "waiting %d ms for downstream link, after activation\n",
+ delay);
+ if (!pcie_wait_for_link_delay(dev, true, delay)) {
+ /* Did not train, no need to wait any further */
+ return;
+ }
+ }
+
+ if (!pci_device_is_present(child)) {
+ pci_dbg(child, "waiting additional %d ms to become accessible\n", delay);
+ msleep(delay);
+ }
+}
+
void pci_reset_secondary_bus(struct pci_dev *dev)
{
u16 ctrl;
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index 273d60cb0762d..a5adc2e2c351d 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -107,6 +107,7 @@ void pci_allocate_cap_save_buffers(struct pci_dev *dev);
void pci_free_cap_save_buffers(struct pci_dev *dev);
bool pci_bridge_d3_possible(struct pci_dev *dev);
void pci_bridge_d3_update(struct pci_dev *dev);
+void pci_bridge_wait_for_secondary_bus(struct pci_dev *dev);
static inline void pci_wakeup_event(struct pci_dev *dev)
{
--
2.20.1
next prev parent reply other threads:[~2020-04-28 18:50 UTC|newest]
Thread overview: 173+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-28 18:22 [PATCH 5.4 000/168] 5.4.36-rc1 review Greg Kroah-Hartman
2020-04-28 18:22 ` [PATCH 5.4 001/168] ext4: fix extent_status fragmentation for plain files Greg Kroah-Hartman
2020-04-28 18:22 ` [PATCH 5.4 002/168] f2fs: fix to avoid memory leakage in f2fs_listxattr Greg Kroah-Hartman
2020-04-28 18:22 ` [PATCH 5.4 003/168] net, ip_tunnel: fix interface lookup with no key Greg Kroah-Hartman
2020-04-28 18:22 ` [PATCH 5.4 004/168] arm64: errata: Hide CTR_EL0.DIC on systems affected by Neoverse-N1 #1542419 Greg Kroah-Hartman
2020-04-28 18:22 ` [PATCH 5.4 005/168] arm64: Fake the IminLine size " Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 006/168] arm64: compat: Workaround Neoverse-N1 #1542419 for compat user-space Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 007/168] arm64: Silence clang warning on mismatched value/register sizes Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 008/168] tools/testing/nvdimm: Fix compilation failure without CONFIG_DEV_DAX_PMEM_COMPAT Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 009/168] watchdog: reset last_hw_keepalive time at start Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 010/168] scsi: lpfc: Fix kasan slab-out-of-bounds error in lpfc_unreg_login Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 011/168] scsi: lpfc: Fix crash after handling a pci error Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 012/168] scsi: lpfc: Fix crash in target side cable pulls hitting WAIT_FOR_UNREG Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 013/168] scsi: libfc: If PRLI rejected, move rport to PLOGI state Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 014/168] ceph: return ceph_mdsc_do_request() errors from __get_parent() Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 015/168] ceph: dont skip updating wanted caps when cap is stale Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 016/168] pwm: rcar: Fix late Runtime PM enablement Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 017/168] nvme-tcp: fix possible crash in write_zeroes processing Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 018/168] scsi: iscsi: Report unbind session event when the target has been removed Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 019/168] tools/test/nvdimm: Fix out of tree build Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 020/168] ASoC: Intel: atom: Take the drv->lock mutex before calling sst_send_slot_map() Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 021/168] nvme: fix deadlock caused by ANA update wrong locking Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 022/168] drm/amd/display: Update stream adjust in dc_stream_adjust_vmin_vmax Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 023/168] dma-direct: fix data truncation in dma_direct_get_required_mask() Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 024/168] kernel/gcov/fs.c: gcov_seq_next() should increase position index Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 025/168] selftests: kmod: fix handling test numbers above 9 Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 026/168] ipc/util.c: sysvipc_find_ipc() should increase position index Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 027/168] kconfig: qconf: Fix a few alignment issues Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 028/168] lib/raid6/test: fix build on distros whose /bin/sh is not bash Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 029/168] s390/cio: generate delayed uevent for vfio-ccw subchannels Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 030/168] s390/cio: avoid duplicated ADD uevents Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 031/168] loop: Better discard support for block devices Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 032/168] Revert "powerpc/64: irq_work avoid interrupt when called with hardware irqs enabled" Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 033/168] powerpc/pseries: Fix MCE handling on pseries Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 034/168] nvme: fix compat address handling in several ioctls Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 035/168] pwm: renesas-tpu: Fix late Runtime PM enablement Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 036/168] pwm: bcm2835: Dynamically allocate base Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 037/168] perf/core: Disable page faults when getting phys address Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 038/168] drm/amd/display: Calculate scaling ratios on every medium/full update Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 039/168] ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN MPWIN895CL tablet Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 040/168] ALSA: usb-audio: Add Pioneer DJ DJM-250MK2 quirk Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 041/168] xhci: Ensure link state is U3 after setting USB_SS_PORT_LS_U3 Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 042/168] xhci: Wait until link state trainsits to U0 after setting USB_SS_PORT_LS_U0 Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 043/168] xhci: Finetune host initiated USB3 rootport link suspend and resume Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 044/168] drm/amd/display: Not doing optimize bandwidth if flip pending Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 045/168] PCI/PM: Add pcie_wait_for_link_delay() Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 046/168] libbpf: Fix readelf output parsing on powerpc with recent binutils Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 047/168] PCI: pciehp: Prevent deadlock on disconnect Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 048/168] ASoC: SOF: trace: fix unconditional free in trace release Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 049/168] tracing/selftests: Turn off timeout setting Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 050/168] virtio-blk: improve virtqueue error to BLK_STS Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 051/168] scsi: smartpqi: fix controller lockup observed during force reboot Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 052/168] scsi: smartpqi: fix call trace in device discovery Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 053/168] scsi: smartpqi: fix problem with unique ID for physical device Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 054/168] PCI/ASPM: Allow re-enabling Clock PM Greg Kroah-Hartman
2020-04-28 18:23 ` Greg Kroah-Hartman [this message]
2020-04-28 18:23 ` [PATCH 5.4 056/168] cxgb4: fix adapter crash due to wrong MC size Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 057/168] cxgb4: fix large delays in PTP synchronization Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 058/168] ipv4: Update fib_select_default to handle nexthop objects Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 059/168] ipv6: fix restrict IPV6_ADDRFORM operation Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 060/168] macsec: avoid to set wrong mtu Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 061/168] macvlan: fix null dereference in macvlan_device_event() Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 062/168] mlxsw: Fix some IS_ERR() vs NULL bugs Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 063/168] net: bcmgenet: correct per TX/RX ring statistics Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 064/168] net/mlx4_en: avoid indirect call in TX completion Greg Kroah-Hartman
2020-04-28 18:23 ` [PATCH 5.4 065/168] net: netrom: Fix potential nr_neigh refcnt leak in nr_add_node Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 066/168] net: openvswitch: ovs_ct_exit to be done under ovs_lock Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 067/168] net: stmmac: dwmac-meson8b: Add missing boundary to RGMII TX clock array Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 068/168] net/x25: Fix x25_neigh refcnt leak when receiving frame Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 069/168] sched: etf: do not assume all sockets are full blown Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 070/168] selftests: Fix suppress test in fib_tests.sh Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 071/168] tcp: cache line align MAX_TCP_HEADER Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 072/168] team: fix hang in team_mode_get() Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 073/168] vrf: Fix IPv6 with qdisc and xfrm Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 074/168] net: dsa: b53: Lookup VID in ARL searches when VLAN is enabled Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 075/168] net: dsa: b53: Fix valid setting for MDB entries Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 076/168] net: dsa: b53: Fix ARL register definitions Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 077/168] net: dsa: b53: Rework ARL bin logic Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 078/168] net: dsa: b53: b53_arl_rw_op() needs to select IVL or SVL Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 079/168] vxlan: use the correct nlattr array in NL_SET_ERR_MSG_ATTR Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 080/168] geneve: " Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 081/168] xfrm: Always set XFRM_TRANSFORMED in xfrm{4,6}_output_finish Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 082/168] vrf: Check skb for XFRM_TRANSFORMED flag Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 083/168] KEYS: Avoid false positive ENOMEM error on key read Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 084/168] ALSA: hda: Remove ASUS ROG Zenith from the blacklist Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 085/168] ALSA: usb-audio: Add static mapping table for ALC1220-VB-based mobos Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 086/168] ALSA: usb-audio: Add connector notifier delegation Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 087/168] iio: core: remove extra semi-colon from devm_iio_device_register() macro Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 088/168] iio: st_sensors: rely on odr mask to know if odr can be set Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 089/168] iio: adc: stm32-adc: fix sleep in atomic context Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 090/168] iio: adc: ti-ads8344: properly byte swap value Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 091/168] iio: xilinx-xadc: Fix ADC-B powerdown Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 092/168] iio: xilinx-xadc: Fix clearing interrupt when enabling trigger Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 093/168] iio: xilinx-xadc: Fix sequencer configuration for aux channels in simultaneous mode Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 094/168] iio: xilinx-xadc: Make sure not exceed maximum samplerate Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 095/168] USB: sisusbvga: Change port variable from signed to unsigned Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 096/168] USB: Add USB_QUIRK_DELAY_CTRL_MSG and USB_QUIRK_DELAY_INIT for Corsair K70 RGB RAPIDFIRE Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 097/168] USB: early: Handle AMDs spec-compliant identifiers, too Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 098/168] USB: core: Fix free-while-in-use bug in the USB S-Glibrary Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 099/168] USB: hub: Fix handling of connect changes during sleep Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 100/168] USB: hub: Revert commit bd0e6c9614b9 ("usb: hub: try old enumeration scheme first for high speed devices") Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 101/168] tty: serial: owl: add "much needed" clk_prepare_enable() Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 102/168] vmalloc: fix remap_vmalloc_range() bounds checks Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 103/168] staging: gasket: Fix incongruency in handling of sysfs entries creation Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 104/168] coredump: fix null pointer dereference on coredump Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 105/168] mm/hugetlb: fix a addressing exception caused by huge_pte_offset Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 106/168] mm/ksm: fix NULL pointer dereference when KSM zero page is enabled Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 107/168] tools/vm: fix cross-compile build Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 108/168] ALSA: usx2y: Fix potential NULL dereference Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 109/168] ALSA: hda/realtek - Fix unexpected init_amp override Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 110/168] ALSA: hda/realtek - Add new codec supported for ALC245 Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 111/168] ALSA: hda/hdmi: Add module option to disable audio component binding Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 112/168] ALSA: usb-audio: Fix usb audio refcnt leak when getting spdif Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 113/168] ALSA: usb-audio: Filter out unsupported sample rates on Focusrite devices Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 114/168] tpm/tpm_tis: Free IRQ if probing fails Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 115/168] tpm: fix wrong return value in tpm_pcr_extend Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 116/168] tpm: ibmvtpm: retry on H_CLOSED in tpm_ibmvtpm_send() Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 117/168] KVM: s390: Return last valid slot if approx index is out-of-bounds Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 118/168] KVM: Check validity of resolved slot when searching memslots Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 119/168] KVM: VMX: Enable machine check support for 32bit targets Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 120/168] tty: hvc: fix buffer overflow during hvc_alloc() Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 121/168] tty: rocket, avoid OOB access Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 122/168] usb-storage: Add unusual_devs entry for JMicron JMS566 Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 123/168] signal: Avoid corrupting si_pid and si_uid in do_notify_parent Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 124/168] audit: check the length of userspace generated audit records Greg Kroah-Hartman
2020-04-28 18:24 ` [PATCH 5.4 125/168] ASoC: dapm: fixup dapm kcontrol widget Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 126/168] mac80211: populate debugfs only after cfg80211 init Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 127/168] SUNRPC: Fix backchannel RPC soft lockups Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 128/168] iwlwifi: pcie: actually release queue memory in TVQM Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 129/168] iwlwifi: mvm: beacon statistics shouldnt go backwards Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 130/168] iwlwifi: mvm: limit maximum queue appropriately Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 131/168] iwlwifi: mvm: Do not declare support for ACK Enabled Aggregation Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 132/168] iwlwifi: mvm: fix inactive TID removal return value usage Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 133/168] cifs: fix uninitialised lease_key in open_shroot() Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 134/168] ARM: imx: provide v7_cpu_resume() only on ARM_CPU_SUSPEND=y Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 135/168] powerpc/setup_64: Set cache-line-size based on cache-block-size Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 136/168] staging: comedi: dt2815: fix writing hi byte of analog output Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 137/168] staging: comedi: Fix comedi_device refcnt leak in comedi_open Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 138/168] vt: dont hardcode the mem allocation upper bound Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 139/168] vt: dont use kmalloc() for the unicode screen buffer Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 140/168] staging: vt6656: Dont set RCR_MULTICAST or RCR_BROADCAST by default Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 141/168] staging: vt6656: Fix calling conditions of vnt_set_bss_mode Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 142/168] staging: vt6656: Fix drivers TBTT timing counter Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 143/168] staging: vt6656: Fix pairwise key entry save Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 144/168] staging: vt6656: Power save stop wake_up_count wrap around Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 145/168] cdc-acm: close race betrween suspend() and acm_softint Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 146/168] cdc-acm: introduce a cool down Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 147/168] UAS: no use logging any details in case of ENODEV Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 148/168] UAS: fix deadlock in error handling and PM flushing work Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 149/168] fpga: dfl: pci: fix return value of cci_pci_sriov_configure Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 150/168] usb: dwc3: gadget: Fix request completion check Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 151/168] usb: f_fs: Clear OS Extended descriptor counts to zero in ffs_data_reset() Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 152/168] usb: typec: tcpm: Ignore CC and vbus changes in PORT_RESET change Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 153/168] usb: typec: altmode: Fix typec_altmode_get_partner sometimes returning an invalid pointer Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 154/168] xhci: Fix handling halted endpoint even if endpoint ring appears empty Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 155/168] xhci: prevent bus suspend if a roothub port detected a over-current condition Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 156/168] xhci: Dont clear hub TT buffer on ep0 protocol stall Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 157/168] serial: sh-sci: Make sure status register SCxSR is read in correct sequence Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 158/168] Revert "serial: uartps: Fix uartps_major handling" Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 159/168] Revert "serial: uartps: Use the same dynamic major number for all ports" Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 160/168] Revert "serial: uartps: Fix error path when alloc failed" Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 161/168] Revert "serial: uartps: Do not allow use aliases >= MAX_UART_INSTANCES" Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 162/168] Revert "serial: uartps: Change uart ID port allocation" Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 163/168] Revert "serial: uartps: Move Port ID to device data structure" Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 164/168] Revert "serial: uartps: Register own uart console and driver structures" Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 165/168] powerpc/kuap: PPC_KUAP_DEBUG should depend on PPC_KUAP Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 166/168] powerpc/mm: Fix CONFIG_PPC_KUAP_DEBUG on PPC32 Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 167/168] compat: ARM64: always include asm-generic/compat.h Greg Kroah-Hartman
2020-04-28 18:25 ` [PATCH 5.4 168/168] s390/mm: fix page table upgrade vs 2ndary address mode accesses Greg Kroah-Hartman
2020-04-29 0:43 ` [PATCH 5.4 000/168] 5.4.36-rc1 review shuah
2020-04-29 10:17 ` Jon Hunter
2020-04-29 10:37 ` Naresh Kamboju
2020-04-29 14:05 ` Guenter Roeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200428182238.853075240@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=bhelgaas@google.com \
--cc=kai.heng.feng@canonical.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).