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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox