From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev,
Badhri Jagan Sridharan <badhri@google.com>,
Alan Stern <stern@rowland.harvard.edu>
Subject: [PATCH 6.1 086/166] usb: gadget: udc: core: Prevent soft_connect_store() race
Date: Mon, 19 Jun 2023 12:29:23 +0200 [thread overview]
Message-ID: <20230619102158.965213289@linuxfoundation.org> (raw)
In-Reply-To: <20230619102154.568541872@linuxfoundation.org>
From: Badhri Jagan Sridharan <badhri@google.com>
commit 286d9975a838d0a54da049765fa1d1fb96b89682 upstream.
usb_udc_connect_control(), soft_connect_store() and
usb_gadget_deactivate() can potentially race against each other to invoke
usb_gadget_connect()/usb_gadget_disconnect(). To prevent this, guard
udc->started, gadget->allow_connect, gadget->deactivate and
gadget->connect with connect_lock so that ->pullup() is only invoked when
the gadget is bound, started and not deactivated. The routines
usb_gadget_connect_locked(), usb_gadget_disconnect_locked(),
usb_udc_connect_control_locked(), usb_gadget_udc_start_locked(),
usb_gadget_udc_stop_locked() are called with this lock held.
An earlier version of this commit was reverted due to the crash reported in
https://lore.kernel.org/all/ZF4BvgsOyoKxdPFF@francesco-nb.int.toradex.com/.
commit 16737e78d190 ("usb: gadget: udc: core: Offload usb_udc_vbus_handler processing")
addresses the crash reported.
Cc: stable@vger.kernel.org
Fixes: 628ef0d273a6 ("usb: udc: add usb_udc_vbus_handler")
Signed-off-by: Badhri Jagan Sridharan <badhri@google.com>
Reviewed-by: Alan Stern <stern@rowland.harvard.edu>
Message-ID: <20230609010227.978661-2-badhri@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/usb/gadget/udc/core.c | 155 ++++++++++++++++++++++++++++--------------
1 file changed, 106 insertions(+), 49 deletions(-)
--- a/drivers/usb/gadget/udc/core.c
+++ b/drivers/usb/gadget/udc/core.c
@@ -40,6 +40,11 @@ static struct bus_type gadget_bus_type;
* @allow_connect: Indicates whether UDC is allowed to be pulled up.
* Set/cleared by gadget_(un)bind_driver() after gadget driver is bound or
* unbound.
+ * @connect_lock: protects udc->started, gadget->connect,
+ * gadget->allow_connect and gadget->deactivate. The routines
+ * usb_gadget_connect_locked(), usb_gadget_disconnect_locked(),
+ * usb_udc_connect_control_locked(), usb_gadget_udc_start_locked() and
+ * usb_gadget_udc_stop_locked() are called with this lock held.
*
* This represents the internal data structure which is used by the UDC-class
* to hold information about udc driver and gadget together.
@@ -53,6 +58,7 @@ struct usb_udc {
bool started;
bool allow_connect;
struct work_struct vbus_work;
+ struct mutex connect_lock;
};
static struct class *udc_class;
@@ -665,17 +671,8 @@ out:
}
EXPORT_SYMBOL_GPL(usb_gadget_vbus_disconnect);
-/**
- * usb_gadget_connect - software-controlled connect to USB host
- * @gadget:the peripheral being connected
- *
- * Enables the D+ (or potentially D-) pullup. The host will start
- * enumerating this gadget when the pullup is active and a VBUS session
- * is active (the link is powered).
- *
- * Returns zero on success, else negative errno.
- */
-int usb_gadget_connect(struct usb_gadget *gadget)
+static int usb_gadget_connect_locked(struct usb_gadget *gadget)
+ __must_hold(&gadget->udc->connect_lock)
{
int ret = 0;
@@ -684,10 +681,12 @@ int usb_gadget_connect(struct usb_gadget
goto out;
}
- if (gadget->deactivated || !gadget->udc->allow_connect) {
+ if (gadget->deactivated || !gadget->udc->allow_connect || !gadget->udc->started) {
/*
- * If gadget is deactivated we only save new state.
- * Gadget will be connected automatically after activation.
+ * If the gadget isn't usable (because it is deactivated,
+ * unbound, or not yet started), we only save the new state.
+ * The gadget will be connected automatically when it is
+ * activated/bound/started.
*/
gadget->connected = true;
goto out;
@@ -702,22 +701,31 @@ out:
return ret;
}
-EXPORT_SYMBOL_GPL(usb_gadget_connect);
/**
- * usb_gadget_disconnect - software-controlled disconnect from USB host
- * @gadget:the peripheral being disconnected
- *
- * Disables the D+ (or potentially D-) pullup, which the host may see
- * as a disconnect (when a VBUS session is active). Not all systems
- * support software pullup controls.
+ * usb_gadget_connect - software-controlled connect to USB host
+ * @gadget:the peripheral being connected
*
- * Following a successful disconnect, invoke the ->disconnect() callback
- * for the current gadget driver so that UDC drivers don't need to.
+ * Enables the D+ (or potentially D-) pullup. The host will start
+ * enumerating this gadget when the pullup is active and a VBUS session
+ * is active (the link is powered).
*
* Returns zero on success, else negative errno.
*/
-int usb_gadget_disconnect(struct usb_gadget *gadget)
+int usb_gadget_connect(struct usb_gadget *gadget)
+{
+ int ret;
+
+ mutex_lock(&gadget->udc->connect_lock);
+ ret = usb_gadget_connect_locked(gadget);
+ mutex_unlock(&gadget->udc->connect_lock);
+
+ return ret;
+}
+EXPORT_SYMBOL_GPL(usb_gadget_connect);
+
+static int usb_gadget_disconnect_locked(struct usb_gadget *gadget)
+ __must_hold(&gadget->udc->connect_lock)
{
int ret = 0;
@@ -729,7 +737,7 @@ int usb_gadget_disconnect(struct usb_gad
if (!gadget->connected)
goto out;
- if (gadget->deactivated) {
+ if (gadget->deactivated || !gadget->udc->started) {
/*
* If gadget is deactivated we only save new state.
* Gadget will stay disconnected after activation.
@@ -752,6 +760,30 @@ out:
return ret;
}
+
+/**
+ * usb_gadget_disconnect - software-controlled disconnect from USB host
+ * @gadget:the peripheral being disconnected
+ *
+ * Disables the D+ (or potentially D-) pullup, which the host may see
+ * as a disconnect (when a VBUS session is active). Not all systems
+ * support software pullup controls.
+ *
+ * Following a successful disconnect, invoke the ->disconnect() callback
+ * for the current gadget driver so that UDC drivers don't need to.
+ *
+ * Returns zero on success, else negative errno.
+ */
+int usb_gadget_disconnect(struct usb_gadget *gadget)
+{
+ int ret;
+
+ mutex_lock(&gadget->udc->connect_lock);
+ ret = usb_gadget_disconnect_locked(gadget);
+ mutex_unlock(&gadget->udc->connect_lock);
+
+ return ret;
+}
EXPORT_SYMBOL_GPL(usb_gadget_disconnect);
/**
@@ -769,13 +801,14 @@ int usb_gadget_deactivate(struct usb_gad
{
int ret = 0;
+ mutex_lock(&gadget->udc->connect_lock);
if (gadget->deactivated)
- goto out;
+ goto unlock;
if (gadget->connected) {
- ret = usb_gadget_disconnect(gadget);
+ ret = usb_gadget_disconnect_locked(gadget);
if (ret)
- goto out;
+ goto unlock;
/*
* If gadget was being connected before deactivation, we want
@@ -785,7 +818,8 @@ int usb_gadget_deactivate(struct usb_gad
}
gadget->deactivated = true;
-out:
+unlock:
+ mutex_unlock(&gadget->udc->connect_lock);
trace_usb_gadget_deactivate(gadget, ret);
return ret;
@@ -805,8 +839,9 @@ int usb_gadget_activate(struct usb_gadge
{
int ret = 0;
+ mutex_lock(&gadget->udc->connect_lock);
if (!gadget->deactivated)
- goto out;
+ goto unlock;
gadget->deactivated = false;
@@ -815,9 +850,11 @@ int usb_gadget_activate(struct usb_gadge
* while it was being deactivated, we call usb_gadget_connect().
*/
if (gadget->connected)
- ret = usb_gadget_connect(gadget);
+ ret = usb_gadget_connect_locked(gadget);
+ mutex_unlock(&gadget->udc->connect_lock);
-out:
+unlock:
+ mutex_unlock(&gadget->udc->connect_lock);
trace_usb_gadget_activate(gadget, ret);
return ret;
@@ -1056,19 +1093,22 @@ EXPORT_SYMBOL_GPL(usb_gadget_set_state);
/* ------------------------------------------------------------------------- */
-static void usb_udc_connect_control(struct usb_udc *udc)
+/* Acquire connect_lock before calling this function. */
+static void usb_udc_connect_control_locked(struct usb_udc *udc) __must_hold(&udc->connect_lock)
{
if (udc->vbus)
- usb_gadget_connect(udc->gadget);
+ usb_gadget_connect_locked(udc->gadget);
else
- usb_gadget_disconnect(udc->gadget);
+ usb_gadget_disconnect_locked(udc->gadget);
}
static void vbus_event_work(struct work_struct *work)
{
struct usb_udc *udc = container_of(work, struct usb_udc, vbus_work);
- usb_udc_connect_control(udc);
+ mutex_lock(&udc->connect_lock);
+ usb_udc_connect_control_locked(udc);
+ mutex_unlock(&udc->connect_lock);
}
/**
@@ -1117,7 +1157,7 @@ void usb_gadget_udc_reset(struct usb_gad
EXPORT_SYMBOL_GPL(usb_gadget_udc_reset);
/**
- * usb_gadget_udc_start - tells usb device controller to start up
+ * usb_gadget_udc_start_locked - tells usb device controller to start up
* @udc: The UDC to be started
*
* This call is issued by the UDC Class driver when it's about
@@ -1128,8 +1168,11 @@ EXPORT_SYMBOL_GPL(usb_gadget_udc_reset);
* necessary to have it powered on.
*
* Returns zero on success, else negative errno.
+ *
+ * Caller should acquire connect_lock before invoking this function.
*/
-static inline int usb_gadget_udc_start(struct usb_udc *udc)
+static inline int usb_gadget_udc_start_locked(struct usb_udc *udc)
+ __must_hold(&udc->connect_lock)
{
int ret;
@@ -1146,7 +1189,7 @@ static inline int usb_gadget_udc_start(s
}
/**
- * usb_gadget_udc_stop - tells usb device controller we don't need it anymore
+ * usb_gadget_udc_stop_locked - tells usb device controller we don't need it anymore
* @udc: The UDC to be stopped
*
* This call is issued by the UDC Class driver after calling
@@ -1155,8 +1198,11 @@ static inline int usb_gadget_udc_start(s
* The details are implementation specific, but it can go as
* far as powering off UDC completely and disable its data
* line pullups.
+ *
+ * Caller should acquire connect lock before invoking this function.
*/
-static inline void usb_gadget_udc_stop(struct usb_udc *udc)
+static inline void usb_gadget_udc_stop_locked(struct usb_udc *udc)
+ __must_hold(&udc->connect_lock)
{
if (!udc->started) {
dev_err(&udc->dev, "UDC had already stopped\n");
@@ -1315,6 +1361,7 @@ int usb_add_gadget(struct usb_gadget *ga
udc->gadget = gadget;
gadget->udc = udc;
+ mutex_init(&udc->connect_lock);
udc->started = false;
@@ -1518,12 +1565,16 @@ static int gadget_bind_driver(struct dev
if (ret)
goto err_bind;
- ret = usb_gadget_udc_start(udc);
- if (ret)
+ mutex_lock(&udc->connect_lock);
+ ret = usb_gadget_udc_start_locked(udc);
+ if (ret) {
+ mutex_unlock(&udc->connect_lock);
goto err_start;
+ }
usb_gadget_enable_async_callbacks(udc);
udc->allow_connect = true;
- usb_udc_connect_control(udc);
+ usb_udc_connect_control_locked(udc);
+ mutex_unlock(&udc->connect_lock);
kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE);
return 0;
@@ -1556,12 +1607,14 @@ static void gadget_unbind_driver(struct
udc->allow_connect = false;
cancel_work_sync(&udc->vbus_work);
- usb_gadget_disconnect(gadget);
+ mutex_lock(&udc->connect_lock);
+ usb_gadget_disconnect_locked(gadget);
usb_gadget_disable_async_callbacks(udc);
if (gadget->irq)
synchronize_irq(gadget->irq);
udc->driver->unbind(gadget);
- usb_gadget_udc_stop(udc);
+ usb_gadget_udc_stop_locked(udc);
+ mutex_unlock(&udc->connect_lock);
mutex_lock(&udc_lock);
driver->is_bound = false;
@@ -1647,11 +1700,15 @@ static ssize_t soft_connect_store(struct
}
if (sysfs_streq(buf, "connect")) {
- usb_gadget_udc_start(udc);
- usb_gadget_connect(udc->gadget);
+ mutex_lock(&udc->connect_lock);
+ usb_gadget_udc_start_locked(udc);
+ usb_gadget_connect_locked(udc->gadget);
+ mutex_unlock(&udc->connect_lock);
} else if (sysfs_streq(buf, "disconnect")) {
- usb_gadget_disconnect(udc->gadget);
- usb_gadget_udc_stop(udc);
+ mutex_lock(&udc->connect_lock);
+ usb_gadget_disconnect_locked(udc->gadget);
+ usb_gadget_udc_stop_locked(udc);
+ mutex_unlock(&udc->connect_lock);
} else {
dev_err(dev, "unsupported command '%s'\n", buf);
ret = -EINVAL;
next prev parent reply other threads:[~2023-06-19 10:47 UTC|newest]
Thread overview: 179+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-19 10:27 [PATCH 6.1 000/166] 6.1.35-rc1 review Greg Kroah-Hartman
2023-06-19 10:27 ` [PATCH 6.1 001/166] x86/head/64: Switch to KERNEL_CS as soon as new GDT is installed Greg Kroah-Hartman
2023-06-19 10:27 ` [PATCH 6.1 002/166] test_firmware: Use kstrtobool() instead of strtobool() Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 003/166] test_firmware: prevent race conditions by a correct implementation of locking Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 004/166] cgroup: bpf: use cgroup_lock()/cgroup_unlock() wrappers Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 005/166] cgroup: always put cset in cgroup_css_set_put_fork Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 006/166] cgroup: fix missing cpus_read_{lock,unlock}() in cgroup_transfer_tasks() Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 007/166] qcom: llcc/edac: Fix the base address used for accessing LLCC banks Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 008/166] EDAC/qcom: Get rid of hardcoded register offsets Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 009/166] ksmbd: validate smb request protocol id Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 010/166] of: overlay: Fix missing of_node_put() in error case of init_overlay_changeset() Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 011/166] power: supply: ab8500: Fix external_power_changed race Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 012/166] power: supply: sc27xx: " Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 013/166] power: supply: bq27xxx: Use mod_delayed_work() instead of cancel() + schedule() Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 014/166] ARM: dts: vexpress: add missing cache properties Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 015/166] tools: gpio: fix debounce_period_us output of lsgpio Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 016/166] selftests: gpio: gpio-sim: Fix BUG: test FAILED due to recent change Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 017/166] power: supply: Ratelimit no data debug output Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 018/166] PCI/DPC: Quirk PIO log size for Intel Ice Lake Root Ports Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 019/166] platform/x86: asus-wmi: Ignore WMI events with codes 0x7B, 0xC0 Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 020/166] regulator: Fix error checking for debugfs_create_dir Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 021/166] irqchip/gic-v3: Disable pseudo NMIs on Mediatek devices w/ firmware issues Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 022/166] irqchip/meson-gpio: Mark OF related data as maybe unused Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 023/166] power: supply: Fix logic checking if system is running from battery Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 024/166] drm: panel-orientation-quirks: Change Airs quirk to support Air Plus Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 025/166] btrfs: scrub: try harder to mark RAID56 block groups read-only Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 026/166] btrfs: handle memory allocation failure in btrfs_csum_one_bio Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 027/166] ASoC: soc-pcm: test if a BE can be prepared Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 028/166] ASoC: Intel: avs: Account for UID of ACPI device Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 029/166] ASoC: Intel: avs: Add missing checks on FE startup Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 030/166] parisc: Improve cache flushing for PCXL in arch_sync_dma_for_cpu() Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 031/166] parisc: Flush gatt writes and adjust gatt mask in parisc_agp_mask_memory() Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 032/166] MIPS: unhide PATA_PLATFORM Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 033/166] MIPS: Restore Au1300 support Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 034/166] MIPS: Alchemy: fix dbdma2 Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 035/166] mips: Move initrd_start check after initrd address sanitisation Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 036/166] ASoC: cs35l41: Fix default regmap values for some registers Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 037/166] ASoC: dwc: move DMA init to snd_soc_dai_driver probe() Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 038/166] xen/blkfront: Only check REQ_FUA for writes Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 039/166] drm:amd:amdgpu: Fix missing buffer object unlock in failure path Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 040/166] io_uring: unlock sqd->lock before sq thread release CPU Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 041/166] NVMe: Add MAXIO 1602 to bogus nid list Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 042/166] irqchip/gic: Correctly validate OF quirk descriptors Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 043/166] wifi: cfg80211: fix locking in regulatory disconnect Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 044/166] wifi: cfg80211: fix double lock bug in reg_wdev_chan_valid() Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 045/166] epoll: ep_autoremove_wake_function should use list_del_init_careful Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 046/166] ocfs2: fix use-after-free when unmounting read-only filesystem Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 047/166] ocfs2: check new file size on fallocate call Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 048/166] zswap: do not shrink if cgroup may not zswap Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 049/166] nios2: dts: Fix tse_mac "max-frame-size" property Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 050/166] nilfs2: fix incomplete buffer cleanup in nilfs_btnode_abort_change_key() Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 051/166] nilfs2: fix possible out-of-bounds segment allocation in resize ioctl Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 052/166] nilfs2: reject devices with insufficient block count Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 053/166] LoongArch: Fix perf event id calculation Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 054/166] io_uring/net: save msghdr->msg_control for retries Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 055/166] kexec: support purgatories with .text.hot sections Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 056/166] x86/purgatory: remove PGO flags Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 057/166] riscv/purgatory: " Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 058/166] powerpc/purgatory: " Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 059/166] btrfs: do not ASSERT() on duplicated global roots Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 060/166] btrfs: fix iomap_begin length for nocow writes Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 061/166] btrfs: can_nocow_file_extent should pass down args->strict from callers Greg Kroah-Hartman
2023-06-19 10:28 ` [PATCH 6.1 062/166] ALSA: usb-audio: Fix broken resume due to UAC3 power state Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 063/166] ALSA: usb-audio: Add quirk flag for HEM devices to enable native DSD playback Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 064/166] dm thin metadata: check fail_io before using data_sm Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 065/166] dm thin: fix issue_discard to pass GFP_NOIO to __blkdev_issue_discard Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 066/166] net: ethernet: stmicro: stmmac: fix possible memory leak in __stmmac_open Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 067/166] nouveau: fix client work fence deletion race Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 068/166] RDMA/uverbs: Restrict usage of privileged QKEYs Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 069/166] drm/amdgpu: vcn_4_0 set instance 0 init sched score to 1 Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 070/166] net: usb: qmi_wwan: add support for Compal RXM-G1 Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 071/166] drm/amd/display: edp do not add non-edid timings Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 072/166] drm/amd: Make sure image is written to trigger VBIOS image update flow Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 073/166] drm/amd: Tighten permissions on VBIOS flashing attributes Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 074/166] drm/amd/pm: workaround for compute workload type on some skus Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 075/166] drm/amdgpu: add missing radeon secondary PCI ID Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 076/166] ALSA: hda/realtek: Add a quirk for Compaq N14JP6 Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 077/166] thunderbolt: Do not touch CL state configuration during discovery Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 078/166] thunderbolt: dma_test: Use correct value for absent rings when creating paths Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 079/166] thunderbolt: Mask ring interrupt on Intel hardware as well Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 080/166] clk: pxa: fix NULL pointer dereference in pxa3xx_clk_update_accr Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 081/166] USB: serial: option: add Quectel EM061KGL series Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 082/166] serial: lantiq: add missing interrupt ack Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 083/166] usb: typec: ucsi: Fix command cancellation Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 084/166] usb: typec: Fix fast_role_swap_current show function Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 085/166] usb: gadget: udc: core: Offload usb_udc_vbus_handler processing Greg Kroah-Hartman
2023-06-19 10:29 ` Greg Kroah-Hartman [this message]
2023-06-19 10:29 ` [PATCH 6.1 087/166] USB: dwc3: qcom: fix NULL-deref on suspend Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 088/166] USB: dwc3: fix use-after-free on core driver unbind Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 089/166] usb: dwc3: gadget: Reset num TRBs before giving back the request Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 090/166] RDMA/rtrs: Fix the last iu->buf leak in err path Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 091/166] RDMA/rtrs: Fix rxe_dealloc_pd warning Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 092/166] RDMA/rxe: Fix packet length checks Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 093/166] RDMA/rxe: Fix ref count error in check_rkey() Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 094/166] spi: cadence-quadspi: Add missing check for dma_set_mask Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 095/166] spi: fsl-dspi: avoid SCK glitches with continuous transfers Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 096/166] netfilter: nf_tables: integrate pipapo into commit protocol Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 097/166] netfilter: nfnetlink: skip error delivery on batch in case of ENOMEM Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 098/166] ice: Fix XDP memory leak when NIC is brought up and down Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 099/166] netfilter: nf_tables: incorrect error path handling with NFT_MSG_NEWRULE Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 100/166] net: enetc: correct the indexes of highest and 2nd highest TCs Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 101/166] ping6: Fix send to link-local addresses with VRF Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 102/166] igb: Fix extts capture value format for 82580/i354/i350 Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 103/166] net/sched: simplify tcf_pedit_act Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 104/166] net/sched: act_pedit: remove extra check for key type Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 105/166] net/sched: act_pedit: Parse L3 Header for L4 offset Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 106/166] octeontx2-af: Fix promiscuous mode Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 107/166] net/sched: cls_u32: Fix reference counter leak leading to overflow Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 108/166] wifi: mac80211: fix link activation settings order Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 109/166] wifi: cfg80211: fix link del callback to call correct handler Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 110/166] wifi: mac80211: take lock before setting vif links Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 111/166] RDMA/rxe: Removed unused name from rxe_task struct Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 112/166] RDMA/rxe: Fix the use-before-initialization error of resp_pkts Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 113/166] iavf: remove mask from iavf_irq_enable_queues() Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 114/166] octeontx2-af: fixed resource availability check Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 115/166] octeontx2-af: fix lbk link credits on cn10k Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 116/166] RDMA/mlx5: Initiate dropless RQ for RAW Ethernet functions Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 117/166] RDMA/mlx5: Create an indirect flow table for steering anchor Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 118/166] RDMA/cma: Always set static rate to 0 for RoCE Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 119/166] IB/uverbs: Fix to consider event queue closing also upon non-blocking mode Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 120/166] RDMA/mlx5: Fix affinity assignment Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 121/166] IB/isert: Fix dead lock in ib_isert Greg Kroah-Hartman
2023-06-19 10:29 ` [PATCH 6.1 122/166] IB/isert: Fix possible list corruption in CMA handler Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 123/166] IB/isert: Fix incorrect release of isert connection Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 124/166] net: ethtool: correct MAX attribute value for stats Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 125/166] ipvlan: fix bound dev checking for IPv6 l3s mode Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 126/166] sctp: fix an error code in sctp_sf_eat_auth() Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 127/166] igc: Clean the TX buffer and TX descriptor ring Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 128/166] igc: Fix possible system crash when loading module Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 129/166] igb: fix nvm.ops.read() error handling Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 130/166] net: phylink: report correct max speed for QUSGMII Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 131/166] net: phylink: use a dedicated helper to parse usgmii control word Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 132/166] drm/nouveau: dont detect DSM for non-NVIDIA device Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 133/166] drm/bridge: ti-sn65dsi86: Avoid possible buffer overflow Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 134/166] drm/nouveau/dp: check for NULL nv_connector->native_mode Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 135/166] drm/nouveau: add nv_encoder pointer check for NULL Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 136/166] selftests/tc-testing: Fix Error: Specified qdisc kind is unknown Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 137/166] selftests/tc-testing: Fix Error: failed to find target LOG Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 138/166] selftests/tc-testing: Fix SFB db test Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 139/166] sched: add new attr TCA_EXT_WARN_MSG to report tc extact message Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 140/166] net/sched: Refactor qdisc_graft() for ingress and clsact Qdiscs Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 141/166] net/sched: qdisc_destroy() old ingress and clsact Qdiscs before grafting Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 142/166] selftests: forwarding: hw_stats_l3: Set addrgenmode in a separate step Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 143/166] cifs: fix lease break oops in xfstest generic/098 Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 144/166] ext4: drop the call to ext4_error() from ext4_get_group_info() Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 145/166] net/sched: cls_api: Fix lockup on flushing explicitly created chain Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 146/166] net: dsa: felix: fix taprio guard band overflow at 10Mbps with jumbo frames Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 147/166] net: lapbether: only support ethernet devices Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 148/166] net: macsec: fix double free of percpu stats Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 149/166] sfc: fix XDP queues mode with legacy IRQ Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 150/166] dm: dont lock fs when the map is NULL during suspend or resume Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 151/166] net: tipc: resize nlattr array to correct size Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 152/166] selftests/ptp: Fix timestamp printf format for PTP_SYS_OFFSET Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 153/166] octeon_ep: Add missing check for ioremap Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 154/166] afs: Fix vlserver probe RTT handling Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 155/166] parisc: Delete redundant register definitions in <asm/assembly.h> Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 156/166] rcu/kvfree: Avoid freeing new kfree_rcu() memory after old grace period Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 157/166] drm/amdgpu: Dont set struct drm_driver.output_poll_changed Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 158/166] net/sched: act_api: move TCA_EXT_WARN_MSG to the correct hierarchy Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 159/166] Revert "net/sched: act_api: move TCA_EXT_WARN_MSG to the correct hierarchy" Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 160/166] net/sched: act_api: add specific EXT_WARN_MSG for tc action Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 161/166] neighbour: delete neigh_lookup_nodev as not used Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 162/166] scsi: target: core: Fix error path in target_setup_session() Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 163/166] x86/boot/compressed: prefer cc-option for CFLAGS additions Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 164/166] MIPS: Move -Wa,-msoft-float check from as-option to cc-option Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 165/166] MIPS: Prefer cc-option for additions to cflags Greg Kroah-Hartman
2023-06-19 10:30 ` [PATCH 6.1 166/166] kbuild: Update assembler calls to use proper flags and language target Greg Kroah-Hartman
2023-06-19 15:32 ` [PATCH 6.1 000/166] 6.1.35-rc1 review Florian Fainelli
2023-06-19 19:09 ` Markus Reichelt
2023-06-20 9:12 ` Naresh Kamboju
2023-06-20 9:15 ` Chris Paterson
2023-06-20 10:21 ` Jon Hunter
2023-06-20 10:30 ` Ron Economos
2023-06-20 11:23 ` Conor Dooley
2023-06-20 11:49 ` Sudip Mukherjee (Codethink)
2023-06-20 12:44 ` ogasawara takeshi
2023-06-20 17:10 ` Allen Pais
2023-06-20 20:20 ` Shuah Khan
2023-06-21 0:39 ` 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=20230619102158.965213289@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=badhri@google.com \
--cc=patches@lists.linux.dev \
--cc=stable@vger.kernel.org \
--cc=stern@rowland.harvard.edu \
/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.