From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Johan Hovold <johan+linaro@kernel.org>,
Bjorn Helgaas <bhelgaas@google.com>
Subject: [PATCH 6.6 158/158] PCI/ASPM: Fix deadlock when enabling ASPM
Date: Tue, 23 Apr 2024 14:39:55 -0700 [thread overview]
Message-ID: <20240423213900.784284301@linuxfoundation.org> (raw)
In-Reply-To: <20240423213855.696477232@linuxfoundation.org>
6.6-stable review patch. If anyone has any objections, please let me know.
------------------
From: Johan Hovold <johan+linaro@kernel.org>
commit 1e560864159d002b453da42bd2c13a1805515a20 upstream.
A last minute revert in 6.7-final introduced a potential deadlock when
enabling ASPM during probe of Qualcomm PCIe controllers as reported by
lockdep:
============================================
WARNING: possible recursive locking detected
6.7.0 #40 Not tainted
--------------------------------------------
kworker/u16:5/90 is trying to acquire lock:
ffffacfa78ced000 (pci_bus_sem){++++}-{3:3}, at: pcie_aspm_pm_state_change+0x58/0xdc
but task is already holding lock:
ffffacfa78ced000 (pci_bus_sem){++++}-{3:3}, at: pci_walk_bus+0x34/0xbc
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(pci_bus_sem);
lock(pci_bus_sem);
*** DEADLOCK ***
Call trace:
print_deadlock_bug+0x25c/0x348
__lock_acquire+0x10a4/0x2064
lock_acquire+0x1e8/0x318
down_read+0x60/0x184
pcie_aspm_pm_state_change+0x58/0xdc
pci_set_full_power_state+0xa8/0x114
pci_set_power_state+0xc4/0x120
qcom_pcie_enable_aspm+0x1c/0x3c [pcie_qcom]
pci_walk_bus+0x64/0xbc
qcom_pcie_host_post_init_2_7_0+0x28/0x34 [pcie_qcom]
The deadlock can easily be reproduced on machines like the Lenovo ThinkPad
X13s by adding a delay to increase the race window during asynchronous
probe where another thread can take a write lock.
Add a new pci_set_power_state_locked() and associated helper functions that
can be called with the PCI bus semaphore held to avoid taking the read lock
twice.
Link: https://lore.kernel.org/r/ZZu0qx2cmn7IwTyQ@hovoldconsulting.com
Link: https://lore.kernel.org/r/20240130100243.11011-1-johan+linaro@kernel.org
Fixes: f93e71aea6c6 ("Revert "PCI/ASPM: Remove pcie_aspm_pm_state_change()"")
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: <stable@vger.kernel.org> # 6.7
[bhelgaas: backported to v6.6.y, which contains 8cc22ba3f77c ("Revert
"PCI/ASPM: Remove pcie_aspm_pm_state_change()""), a backport of
f93e71aea6c6. This omits the drivers/pci/controller/dwc/pcie-qcom.c hunk
that updates qcom_pcie_enable_aspm(), which was added by 9f4f3dfad8cf
("PCI: qcom: Enable ASPM for platforms supporting 1.9.0 ops"), which is not
present in v6.6.28.]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/pci/bus.c | 49 +++++++++++++++++++-----------
drivers/pci/pci.c | 78 ++++++++++++++++++++++++++++++++----------------
drivers/pci/pci.h | 4 +-
drivers/pci/pcie/aspm.c | 13 +++++---
include/linux/pci.h | 5 +++
5 files changed, 100 insertions(+), 49 deletions(-)
--- a/drivers/pci/bus.c
+++ b/drivers/pci/bus.c
@@ -386,21 +386,8 @@ void pci_bus_add_devices(const struct pc
}
EXPORT_SYMBOL(pci_bus_add_devices);
-/** pci_walk_bus - walk devices on/under bus, calling callback.
- * @top bus whose devices should be walked
- * @cb callback to be called for each device found
- * @userdata arbitrary pointer to be passed to callback.
- *
- * Walk the given bus, including any bridged devices
- * on buses under this bus. Call the provided callback
- * on each device found.
- *
- * We check the return of @cb each time. If it returns anything
- * other than 0, we break out.
- *
- */
-void pci_walk_bus(struct pci_bus *top, int (*cb)(struct pci_dev *, void *),
- void *userdata)
+static void __pci_walk_bus(struct pci_bus *top, int (*cb)(struct pci_dev *, void *),
+ void *userdata, bool locked)
{
struct pci_dev *dev;
struct pci_bus *bus;
@@ -408,7 +395,8 @@ void pci_walk_bus(struct pci_bus *top, i
int retval;
bus = top;
- down_read(&pci_bus_sem);
+ if (!locked)
+ down_read(&pci_bus_sem);
next = top->devices.next;
for (;;) {
if (next == &bus->devices) {
@@ -431,10 +419,37 @@ void pci_walk_bus(struct pci_bus *top, i
if (retval)
break;
}
- up_read(&pci_bus_sem);
+ if (!locked)
+ up_read(&pci_bus_sem);
+}
+
+/**
+ * pci_walk_bus - walk devices on/under bus, calling callback.
+ * @top: bus whose devices should be walked
+ * @cb: callback to be called for each device found
+ * @userdata: arbitrary pointer to be passed to callback
+ *
+ * Walk the given bus, including any bridged devices
+ * on buses under this bus. Call the provided callback
+ * on each device found.
+ *
+ * We check the return of @cb each time. If it returns anything
+ * other than 0, we break out.
+ */
+void pci_walk_bus(struct pci_bus *top, int (*cb)(struct pci_dev *, void *), void *userdata)
+{
+ __pci_walk_bus(top, cb, userdata, false);
}
EXPORT_SYMBOL_GPL(pci_walk_bus);
+void pci_walk_bus_locked(struct pci_bus *top, int (*cb)(struct pci_dev *, void *), void *userdata)
+{
+ lockdep_assert_held(&pci_bus_sem);
+
+ __pci_walk_bus(top, cb, userdata, true);
+}
+EXPORT_SYMBOL_GPL(pci_walk_bus_locked);
+
struct pci_bus *pci_bus_get(struct pci_bus *bus)
{
if (bus)
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -1291,6 +1291,7 @@ end:
/**
* pci_set_full_power_state - Put a PCI device into D0 and update its state
* @dev: PCI device to power up
+ * @locked: whether pci_bus_sem is held
*
* Call pci_power_up() to put @dev into D0, read from its PCI_PM_CTRL register
* to confirm the state change, restore its BARs if they might be lost and
@@ -1300,7 +1301,7 @@ end:
* to D0, it is more efficient to use pci_power_up() directly instead of this
* function.
*/
-static int pci_set_full_power_state(struct pci_dev *dev)
+static int pci_set_full_power_state(struct pci_dev *dev, bool locked)
{
u16 pmcsr;
int ret;
@@ -1336,7 +1337,7 @@ static int pci_set_full_power_state(stru
}
if (dev->bus->self)
- pcie_aspm_pm_state_change(dev->bus->self);
+ pcie_aspm_pm_state_change(dev->bus->self, locked);
return 0;
}
@@ -1365,10 +1366,22 @@ void pci_bus_set_current_state(struct pc
pci_walk_bus(bus, __pci_dev_set_current_state, &state);
}
+static void __pci_bus_set_current_state(struct pci_bus *bus, pci_power_t state, bool locked)
+{
+ if (!bus)
+ return;
+
+ if (locked)
+ pci_walk_bus_locked(bus, __pci_dev_set_current_state, &state);
+ else
+ pci_walk_bus(bus, __pci_dev_set_current_state, &state);
+}
+
/**
* pci_set_low_power_state - Put a PCI device into a low-power state.
* @dev: PCI device to handle.
* @state: PCI power state (D1, D2, D3hot) to put the device into.
+ * @locked: whether pci_bus_sem is held
*
* Use the device's PCI_PM_CTRL register to put it into a low-power state.
*
@@ -1379,7 +1392,7 @@ void pci_bus_set_current_state(struct pc
* 0 if device already is in the requested state.
* 0 if device's power state has been successfully changed.
*/
-static int pci_set_low_power_state(struct pci_dev *dev, pci_power_t state)
+static int pci_set_low_power_state(struct pci_dev *dev, pci_power_t state, bool locked)
{
u16 pmcsr;
@@ -1433,29 +1446,12 @@ static int pci_set_low_power_state(struc
pci_power_name(state));
if (dev->bus->self)
- pcie_aspm_pm_state_change(dev->bus->self);
+ pcie_aspm_pm_state_change(dev->bus->self, locked);
return 0;
}
-/**
- * pci_set_power_state - Set the power state of a PCI device
- * @dev: PCI device to handle.
- * @state: PCI power state (D0, D1, D2, D3hot) to put the device into.
- *
- * Transition a device to a new power state, using the platform firmware and/or
- * the device's PCI PM registers.
- *
- * RETURN VALUE:
- * -EINVAL if the requested state is invalid.
- * -EIO if device does not support PCI PM or its PM capabilities register has a
- * wrong version, or device doesn't support the requested state.
- * 0 if the transition is to D1 or D2 but D1 and D2 are not supported.
- * 0 if device already is in the requested state.
- * 0 if the transition is to D3 but D3 is not supported.
- * 0 if device's power state has been successfully changed.
- */
-int pci_set_power_state(struct pci_dev *dev, pci_power_t state)
+static int __pci_set_power_state(struct pci_dev *dev, pci_power_t state, bool locked)
{
int error;
@@ -1479,7 +1475,7 @@ int pci_set_power_state(struct pci_dev *
return 0;
if (state == PCI_D0)
- return pci_set_full_power_state(dev);
+ return pci_set_full_power_state(dev, locked);
/*
* This device is quirked not to be put into D3, so don't put it in
@@ -1493,16 +1489,16 @@ int pci_set_power_state(struct pci_dev *
* To put the device in D3cold, put it into D3hot in the native
* way, then put it into D3cold using platform ops.
*/
- error = pci_set_low_power_state(dev, PCI_D3hot);
+ error = pci_set_low_power_state(dev, PCI_D3hot, locked);
if (pci_platform_power_transition(dev, PCI_D3cold))
return error;
/* Powering off a bridge may power off the whole hierarchy */
if (dev->current_state == PCI_D3cold)
- pci_bus_set_current_state(dev->subordinate, PCI_D3cold);
+ __pci_bus_set_current_state(dev->subordinate, PCI_D3cold, locked);
} else {
- error = pci_set_low_power_state(dev, state);
+ error = pci_set_low_power_state(dev, state, locked);
if (pci_platform_power_transition(dev, state))
return error;
@@ -1510,8 +1506,38 @@ int pci_set_power_state(struct pci_dev *
return 0;
}
+
+/**
+ * pci_set_power_state - Set the power state of a PCI device
+ * @dev: PCI device to handle.
+ * @state: PCI power state (D0, D1, D2, D3hot) to put the device into.
+ *
+ * Transition a device to a new power state, using the platform firmware and/or
+ * the device's PCI PM registers.
+ *
+ * RETURN VALUE:
+ * -EINVAL if the requested state is invalid.
+ * -EIO if device does not support PCI PM or its PM capabilities register has a
+ * wrong version, or device doesn't support the requested state.
+ * 0 if the transition is to D1 or D2 but D1 and D2 are not supported.
+ * 0 if device already is in the requested state.
+ * 0 if the transition is to D3 but D3 is not supported.
+ * 0 if device's power state has been successfully changed.
+ */
+int pci_set_power_state(struct pci_dev *dev, pci_power_t state)
+{
+ return __pci_set_power_state(dev, state, false);
+}
EXPORT_SYMBOL(pci_set_power_state);
+int pci_set_power_state_locked(struct pci_dev *dev, pci_power_t state)
+{
+ lockdep_assert_held(&pci_bus_sem);
+
+ return __pci_set_power_state(dev, state, true);
+}
+EXPORT_SYMBOL(pci_set_power_state_locked);
+
#define PCI_EXP_SAVE_REGS 7
static struct pci_cap_saved_state *_pci_find_saved_cap(struct pci_dev *pci_dev,
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -561,12 +561,12 @@ int pcie_retrain_link(struct pci_dev *pd
#ifdef CONFIG_PCIEASPM
void pcie_aspm_init_link_state(struct pci_dev *pdev);
void pcie_aspm_exit_link_state(struct pci_dev *pdev);
-void pcie_aspm_pm_state_change(struct pci_dev *pdev);
+void pcie_aspm_pm_state_change(struct pci_dev *pdev, bool locked);
void pcie_aspm_powersave_config_link(struct pci_dev *pdev);
#else
static inline void pcie_aspm_init_link_state(struct pci_dev *pdev) { }
static inline void pcie_aspm_exit_link_state(struct pci_dev *pdev) { }
-static inline void pcie_aspm_pm_state_change(struct pci_dev *pdev) { }
+static inline void pcie_aspm_pm_state_change(struct pci_dev *pdev, bool locked) { }
static inline void pcie_aspm_powersave_config_link(struct pci_dev *pdev) { }
#endif
--- a/drivers/pci/pcie/aspm.c
+++ b/drivers/pci/pcie/aspm.c
@@ -1001,8 +1001,11 @@ void pcie_aspm_exit_link_state(struct pc
up_read(&pci_bus_sem);
}
-/* @pdev: the root port or switch downstream port */
-void pcie_aspm_pm_state_change(struct pci_dev *pdev)
+/*
+ * @pdev: the root port or switch downstream port
+ * @locked: whether pci_bus_sem is held
+ */
+void pcie_aspm_pm_state_change(struct pci_dev *pdev, bool locked)
{
struct pcie_link_state *link = pdev->link_state;
@@ -1012,12 +1015,14 @@ void pcie_aspm_pm_state_change(struct pc
* Devices changed PM state, we should recheck if latency
* meets all functions' requirement
*/
- down_read(&pci_bus_sem);
+ if (!locked)
+ down_read(&pci_bus_sem);
mutex_lock(&aspm_lock);
pcie_update_aspm_capable(link->root);
pcie_config_aspm_path(link);
mutex_unlock(&aspm_lock);
- up_read(&pci_bus_sem);
+ if (!locked)
+ up_read(&pci_bus_sem);
}
void pcie_aspm_powersave_config_link(struct pci_dev *pdev)
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1391,6 +1391,7 @@ int pci_load_and_free_saved_state(struct
struct pci_saved_state **state);
int pci_platform_power_transition(struct pci_dev *dev, pci_power_t state);
int pci_set_power_state(struct pci_dev *dev, pci_power_t state);
+int pci_set_power_state_locked(struct pci_dev *dev, pci_power_t state);
pci_power_t pci_choose_state(struct pci_dev *dev, pm_message_t state);
bool pci_pme_capable(struct pci_dev *dev, pci_power_t state);
void pci_pme_active(struct pci_dev *dev, bool enable);
@@ -1594,6 +1595,8 @@ int pci_scan_bridge(struct pci_bus *bus,
void pci_walk_bus(struct pci_bus *top, int (*cb)(struct pci_dev *, void *),
void *userdata);
+void pci_walk_bus_locked(struct pci_bus *top, int (*cb)(struct pci_dev *, void *),
+ void *userdata);
int pci_cfg_space_size(struct pci_dev *dev);
unsigned char pci_bus_max_busnr(struct pci_bus *bus);
void pci_setup_bridge(struct pci_bus *bus);
@@ -1990,6 +1993,8 @@ static inline int pci_save_state(struct
static inline void pci_restore_state(struct pci_dev *dev) { }
static inline int pci_set_power_state(struct pci_dev *dev, pci_power_t state)
{ return 0; }
+static inline int pci_set_power_state_locked(struct pci_dev *dev, pci_power_t state)
+{ return 0; }
static inline int pci_wake_from_d3(struct pci_dev *dev, bool enable)
{ return 0; }
static inline pci_power_t pci_choose_state(struct pci_dev *dev,
next prev parent reply other threads:[~2024-04-23 21:44 UTC|newest]
Thread overview: 171+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-23 21:37 [PATCH 6.6 000/158] 6.6.29-rc1 review Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 001/158] smb: client: remove extra @chan_count check in __cifs_put_smb_ses() Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 002/158] smb: client: fix UAF in smb2_reconnect_server() Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 003/158] smb3: show beginning time for per share stats Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 004/158] smb: client: guarantee refcounted children from parent session Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 005/158] smb: client: refresh referral without acquiring refpath_lock Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 006/158] drm/i915: Fix FEC pipe A vs. DDI A mixup Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 007/158] drm/i915/mst: Reject FEC+MST on ICL Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 008/158] drm/i915/cdclk: Fix voltage_level programming edge case Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 009/158] drm/i915: Change intel_pipe_update_{start,end}() calling convention Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 010/158] drm/i915: Extract intel_crtc_vblank_evade_scanlines() Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 011/158] drm/i915: Enable VRR later during fastsets Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 012/158] drm/i915: Adjust seamless_m_n flag behaviour Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 013/158] drm/i915: Disable live M/N updates when using bigjoiner Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 014/158] selftests: timers: Convert posix_timers test to generate KTAP output Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 015/158] selftests/timers/posix_timers: Reimplement check_timer_distribution() Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 016/158] drm/amd/display: Do not recursively call manual trigger programming Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 017/158] ceph: pass the mdsc to several helpers Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 018/158] ceph: rename _to_client() to _to_fs_client() Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 019/158] ceph: redirty page before returning AOP_WRITEPAGE_ACTIVATE Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 020/158] selftests: timers: Fix posix_timers ksft_print_msg() warning Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 021/158] drm/msm/dpu: populate SSPP scaler block version Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 022/158] media: videobuf2: request more buffers for vb2_read Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 023/158] io_uring: Fix io_cqring_wait() not restoring sigmask on get_timespec64() failure Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 024/158] drm/i915/vma: Fix UAF on destroy against retire race Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 025/158] SUNRPC: Fix rpcgss_context trace event acceptor field Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 026/158] selftests/ftrace: Limit length in subsystem-enable tests Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 027/158] random: handle creditable entropy from atomic process context Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 028/158] scsi: core: Fix handling of SCMD_FAIL_IF_RECOVERING Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 029/158] net: usb: ax88179_178a: avoid writing the mac address before first reading Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 030/158] arm64/mm: Modify range-based tlbi to decrement scale Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 031/158] arm64: tlb: Fix TLBI RANGE operand Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 032/158] scsi: ufs: qcom: Add missing interconnect bandwidth values for Gear 5 Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 033/158] netfilter: nf_tables: Fix potential data-race in __nft_expr_type_get() Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 034/158] netfilter: nf_tables: Fix potential data-race in __nft_obj_type_get() Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 035/158] netfilter: br_netfilter: skip conntrack input hook for promisc packets Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 036/158] netfilter: nft_set_pipapo: do not free live element Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 037/158] netfilter: flowtable: validate pppoe header Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 038/158] netfilter: flowtable: incorrect pppoe tuple Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 039/158] af_unix: Call manage_oob() for every skb in unix_stream_read_generic() Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 040/158] af_unix: Dont peek OOB data without MSG_OOB Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 041/158] net: sparx5: flower: fix fragment flags handling Greg Kroah-Hartman
2024-04-23 21:37 ` [PATCH 6.6 042/158] net/mlx5: Lag, restore buckets number to default after hash LAG deactivation Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 043/158] net/mlx5e: Prevent deadlock while disabling aRFS Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 044/158] net: change maximum number of UDP segments to 128 Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 045/158] octeontx2-pf: fix FLOW_DIS_IS_FRAGMENT implementation Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 046/158] net: stmmac: Apply half-duplex-less constraint for DW QoS Eth only Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 047/158] net: stmmac: Fix max-speed being ignored on queue re-init Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 048/158] net: stmmac: Fix IP-cores specific MAC capabilities Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 049/158] ice: tc: check src_vsi in case of traffic from VF Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 050/158] ice: tc: allow zero flags in parsing tc flower Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 051/158] ice: Fix checking for unsupported keys on non-tunnel device Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 052/158] tun: limit printing rate when illegal packet received by tun dev Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 053/158] net: dsa: mt7530: fix mirroring frames received on local port Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 054/158] net: dsa: mt7530: fix port mirroring for MT7988 SoC switch Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 055/158] s390/ism: Properly fix receive message buffer allocation Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 056/158] gpiolib: swnode: Remove wrong header inclusion Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 057/158] net: ethernet: mtk_eth_soc: fix WED + wifi reset Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 058/158] net: ethernet: ti: am65-cpsw-nuss: cleanup DMA Channels before using them Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 059/158] drm/i915/mst: Limit MST+DSC to TGL+ Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 060/158] RDMA/rxe: Fix the problem "mutex_destroy missing" Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 061/158] RDMA/cm: Print the old state when cm_destroy_id gets timeout Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 062/158] RDMA/mlx5: Fix port number for counter query in multi-port configuration Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 063/158] perf lock contention: Add a missing NULL check Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 064/158] s390/qdio: handle deferred cc1 Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 065/158] s390/cio: fix race condition during online processing Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 066/158] drm: nv04: Fix out of bounds access Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 067/158] drm/panel: visionox-rm69299: dont unregister DSI device Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 068/158] drm/radeon: make -fstrict-flex-arrays=3 happy Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 069/158] ALSA: scarlett2: Move USB IDs out from device_info struct Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 070/158] ALSA: scarlett2: Add support for Clarett 8Pre USB Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 071/158] ASoC: ti: Convert Pandora ASoC to GPIO descriptors Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 072/158] usb: pci-quirks: group AMD specific quirk code together Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 073/158] usb: pci-quirks: handle HAS_IOPORT dependency for AMD quirk Greg Kroah-Hartman
2024-04-24 6:27 ` Arnd Bergmann
2024-04-27 14:05 ` Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 074/158] usb: pci-quirks: handle HAS_IOPORT dependency for UHCI handoff Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 075/158] thunderbolt: Introduce tb_port_reset() Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 076/158] thunderbolt: Introduce tb_path_deactivate_hop() Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 077/158] thunderbolt: Make tb_switch_reset() support Thunderbolt 2, 3 and USB4 routers Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 078/158] thunderbolt: Reset topology created by the boot firmware Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 079/158] ALSA: scarlett2: Default mixer driver to enabled Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 080/158] ALSA: scarlett2: Add correct product series name to messages Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 081/158] ALSA: scarlett2: Add Focusrite Clarett+ 2Pre and 4Pre support Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 082/158] ALSA: scarlett2: Add Focusrite Clarett 2Pre and 4Pre USB support Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 083/158] PCI/DPC: Use FIELD_GET() Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 084/158] PCI: Simplify pcie_capability_clear_and_set_word() to ..._clear_word() Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 085/158] ALSA: scarlett2: Rename scarlett_gen2 to scarlett2 Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 086/158] drm: panel-orientation-quirks: Add quirk for Lenovo Legion Go Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 087/158] usb: xhci: Add timeout argument in address_device USB HCD callback Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 088/158] usb: new quirk to reduce the SET_ADDRESS request timeout Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 089/158] platform/x86/amd/pmc: Extend Framework 13 quirk to more BIOSes Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 090/158] interconnect: Dont access req_list while its being manipulated Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 091/158] clk: Remove prepare_lock hold assertion in __clk_release() Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 092/158] clk: Initialize struct clk_core kref earlier Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 093/158] clk: Get runtime PM before walking tree during disable_unused Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 094/158] clk: Show active consumers of clocks in debugfs Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 095/158] clk: Get runtime PM before walking tree for clk_summary Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 096/158] clk: mediatek: Do a runtime PM get on controllers during probe Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 097/158] x86/bugs: Fix BHI retpoline check Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 098/158] x86/cpufeatures: Fix dependencies for GFNI, VAES, and VPCLMULQDQ Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 099/158] net/mlx5: E-switch, store eswitch pointer before registering devlink_param Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 100/158] ALSA: seq: ump: Fix conversion from MIDI2 to MIDI1 UMP messages Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 101/158] ALSA: hda/tas2781: correct the register for pow calibrated data Greg Kroah-Hartman
2024-04-23 21:38 ` [PATCH 6.6 102/158] ALSA: hda/tas2781: Add new vendor_id and subsystem_id to support ThinkPad ICE-1 Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 103/158] ALSA: hda/realtek: Add quirks for Huawei Matebook D14 NBLB-WAX9N Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 104/158] ALSA: hda/realtek - Enable audio jacks of Haier Boyue G42 with ALC269VC Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 105/158] binder: check offset alignment in binder_get_object() Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 106/158] thunderbolt: Avoid notify PM core about runtime PM resume Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 107/158] thunderbolt: Fix wake configurations after device unplug Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 108/158] comedi: vmk80xx: fix incomplete endpoint checking Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 109/158] serial: mxs-auart: add spinlock around changing cts state Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 110/158] serial/pmac_zilog: Remove flawed mitigation for rx irq flood Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 111/158] serial: stm32: Return IRQ_NONE in the ISR if no handling happend Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 112/158] serial: stm32: Reset .throttled state in .startup() Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 113/158] serial: core: Clearing the circular buffer before NULLifying it Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 114/158] serial: core: Fix missing shutdown and startup for serial base port Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 115/158] USB: serial: option: add Fibocom FM135-GL variants Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 116/158] USB: serial: option: add support for Fibocom FM650/FG650 Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 117/158] USB: serial: option: add Lonsung U8300/U9300 product Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 118/158] USB: serial: option: support Quectel EM060K sub-models Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 119/158] USB: serial: option: add Rolling RW101-GL and RW135-GL support Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 120/158] USB: serial: option: add Telit FN920C04 rmnet compositions Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 121/158] Revert "usb: cdc-wdm: close race between read and workqueue" Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 122/158] usb: dwc2: host: Fix dereference issue in DDMA completion flow Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 123/158] usb: Disable USB3 LPM at shutdown Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 124/158] usb: gadget: f_ncm: Fix UAF ncm object at re-bind after usb ep transport error Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 125/158] mei: me: disable RPL-S on SPS and IGN firmwares Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 126/158] speakup: Avoid crash on very long word Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 127/158] fs: sysfs: Fix reference leak in sysfs_break_active_protection() Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 128/158] sched: Add missing memory barrier in switch_mm_cid Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 129/158] KVM: x86: Snapshot if a vCPUs vendor model is AMD vs. Intel compatible Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 130/158] KVM: x86/pmu: Disable support for adaptive PEBS Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 131/158] KVM: x86/pmu: Do not mask LVTPC when handling a PMI on AMD platforms Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 132/158] KVM: x86/mmu: Write-protect L2 SPTEs in TDP MMU when clearing dirty status Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 133/158] arm64/head: Disable MMU at EL2 before clearing HCR_EL2.E2H Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 134/158] arm64: hibernate: Fix level3 translation fault in swsusp_save() Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 135/158] init/main.c: Fix potential static_command_line memory overflow Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 136/158] mm/userfaultfd: allow hugetlb change protection upon poison entry Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 137/158] mm,swapops: update check in is_pfn_swap_entry for hwpoison entries Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 138/158] mm/memory-failure: fix deadlock when hugetlb_optimize_vmemmap is enabled Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 139/158] mm/shmem: inline shmem_is_huge() for disabled transparent hugepages Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 140/158] fuse: fix leaked ENOSYS error on first statx call Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 141/158] drm/amdgpu: validate the parameters of bo mapping operations more clearly Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 142/158] drm/amdkfd: Fix memory leak in create_process failure Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 143/158] drm/amdgpu: remove invalid resource->start check v2 Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 144/158] drm/vmwgfx: Fix prime import/export Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 145/158] drm/vmwgfx: Sort primary plane formats by order of preference Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 146/158] drm/vmwgfx: Fix crtcs atomic check conditional Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 147/158] nouveau: fix instmem race condition around ptr stores Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 148/158] bootconfig: use memblock_free_late to free xbc memory to buddy Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 149/158] nilfs2: fix OOB in nilfs_set_de_type Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 150/158] net: dsa: mt7530: fix improper frames on all 25MHz and 40MHz XTAL MT7530 Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 151/158] net: dsa: mt7530: fix enabling EEE on MT7531 switch on all boards Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 152/158] virtio_net: Do not send RSS key if it is not supported Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 153/158] powerpc/ftrace: Ignore ftrace locations in exit text sections Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 154/158] ksmbd: fix slab-out-of-bounds in smb2_allocate_rsp_buf Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 155/158] ksmbd: validate request buffer size in smb2_allocate_rsp_buf() Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 156/158] ksmbd: clear RENAME_NOREPLACE before calling vfs_rename Greg Kroah-Hartman
2024-04-23 21:39 ` [PATCH 6.6 157/158] ksmbd: common: use struct_group_attr instead of struct_group for network_open_info Greg Kroah-Hartman
2024-04-23 21:39 ` Greg Kroah-Hartman [this message]
2024-04-23 23:25 ` [PATCH 6.6 000/158] 6.6.29-rc1 review SeongJae Park
2024-04-24 8:25 ` Ron Economos
2024-04-24 9:29 ` Harshit Mogalapalli
2024-04-24 11:12 ` Takeshi Ogasawara
2024-04-24 13:48 ` Mark Brown
2024-04-24 21:54 ` Greg Kroah-Hartman
2024-04-24 16:58 ` Florian Fainelli
2024-04-25 8:59 ` Jon Hunter
2024-04-25 9:03 ` Naresh Kamboju
2024-04-25 20:15 ` Shreeya Patel
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=20240423213900.784284301@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=bhelgaas@google.com \
--cc=johan+linaro@kernel.org \
--cc=patches@lists.linux.dev \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.