linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Oliver Neukum <oneukum@suse.com>,
	Alan Stern <stern@rowland.harvard.edu>,
	syzbot+ada0f7d3d9fd2016d927@syzkaller.appspotmail.com
Subject: [PATCH 5.15 159/177] USB: core: Make do_proc_control() and do_proc_bulk() killable
Date: Mon, 20 Dec 2021 15:35:09 +0100	[thread overview]
Message-ID: <20211220143045.435716834@linuxfoundation.org> (raw)
In-Reply-To: <20211220143040.058287525@linuxfoundation.org>

From: Alan Stern <stern@rowland.harvard.edu>

commit ae8709b296d80c7f45aa1f35c0e7659ad69edce1 upstream.

The USBDEVFS_CONTROL and USBDEVFS_BULK ioctls invoke
usb_start_wait_urb(), which contains an uninterruptible wait with a
user-specified timeout value.  If timeout value is very large and the
device being accessed does not respond in a reasonable amount of time,
the kernel will complain about "Task X blocked for more than N
seconds", as found in testing by syzbot:

INFO: task syz-executor.0:8700 blocked for more than 143 seconds.
      Not tainted 5.14.0-rc7-syzkaller #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:syz-executor.0  state:D stack:23192 pid: 8700 ppid:  8455 flags:0x00004004
Call Trace:
 context_switch kernel/sched/core.c:4681 [inline]
 __schedule+0xc07/0x11f0 kernel/sched/core.c:5938
 schedule+0x14b/0x210 kernel/sched/core.c:6017
 schedule_timeout+0x98/0x2f0 kernel/time/timer.c:1857
 do_wait_for_common+0x2da/0x480 kernel/sched/completion.c:85
 __wait_for_common kernel/sched/completion.c:106 [inline]
 wait_for_common kernel/sched/completion.c:117 [inline]
 wait_for_completion_timeout+0x46/0x60 kernel/sched/completion.c:157
 usb_start_wait_urb+0x167/0x550 drivers/usb/core/message.c:63
 do_proc_bulk+0x978/0x1080 drivers/usb/core/devio.c:1236
 proc_bulk drivers/usb/core/devio.c:1273 [inline]
 usbdev_do_ioctl drivers/usb/core/devio.c:2547 [inline]
 usbdev_ioctl+0x3441/0x6b10 drivers/usb/core/devio.c:2713
...

To fix this problem, this patch replaces usbfs's calls to
usb_control_msg() and usb_bulk_msg() with special-purpose code that
does essentially the same thing (as recommended in the comment for
usb_start_wait_urb()), except that it always uses a killable wait and
it uses GFP_KERNEL rather than GFP_NOIO.

Reported-and-tested-by: syzbot+ada0f7d3d9fd2016d927@syzkaller.appspotmail.com
Suggested-by: Oliver Neukum <oneukum@suse.com>
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Link: https://lore.kernel.org/r/20210903175312.GA468440@rowland.harvard.edu
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/usb/core/devio.c |  144 ++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 111 insertions(+), 33 deletions(-)

--- a/drivers/usb/core/devio.c
+++ b/drivers/usb/core/devio.c
@@ -32,6 +32,7 @@
 #include <linux/usb.h>
 #include <linux/usbdevice_fs.h>
 #include <linux/usb/hcd.h>	/* for usbcore internals */
+#include <linux/usb/quirks.h>
 #include <linux/cdev.h>
 #include <linux/notifier.h>
 #include <linux/security.h>
@@ -1102,14 +1103,55 @@ static int usbdev_release(struct inode *
 	return 0;
 }
 
+static void usbfs_blocking_completion(struct urb *urb)
+{
+	complete((struct completion *) urb->context);
+}
+
+/*
+ * Much like usb_start_wait_urb, but returns status separately from
+ * actual_length and uses a killable wait.
+ */
+static int usbfs_start_wait_urb(struct urb *urb, int timeout,
+		unsigned int *actlen)
+{
+	DECLARE_COMPLETION_ONSTACK(ctx);
+	unsigned long expire;
+	int rc;
+
+	urb->context = &ctx;
+	urb->complete = usbfs_blocking_completion;
+	*actlen = 0;
+	rc = usb_submit_urb(urb, GFP_KERNEL);
+	if (unlikely(rc))
+		return rc;
+
+	expire = (timeout ? msecs_to_jiffies(timeout) : MAX_SCHEDULE_TIMEOUT);
+	rc = wait_for_completion_killable_timeout(&ctx, expire);
+	if (rc <= 0) {
+		usb_kill_urb(urb);
+		*actlen = urb->actual_length;
+		if (urb->status != -ENOENT)
+			;	/* Completed before it was killed */
+		else if (rc < 0)
+			return -EINTR;
+		else
+			return -ETIMEDOUT;
+	}
+	*actlen = urb->actual_length;
+	return urb->status;
+}
+
 static int do_proc_control(struct usb_dev_state *ps,
 		struct usbdevfs_ctrltransfer *ctrl)
 {
 	struct usb_device *dev = ps->dev;
 	unsigned int tmo;
 	unsigned char *tbuf;
-	unsigned wLength;
+	unsigned int wLength, actlen;
 	int i, pipe, ret;
+	struct urb *urb = NULL;
+	struct usb_ctrlrequest *dr = NULL;
 
 	ret = check_ctrlrecip(ps, ctrl->bRequestType, ctrl->bRequest,
 			      ctrl->wIndex);
@@ -1122,51 +1164,63 @@ static int do_proc_control(struct usb_de
 			sizeof(struct usb_ctrlrequest));
 	if (ret)
 		return ret;
+
+	ret = -ENOMEM;
 	tbuf = (unsigned char *)__get_free_page(GFP_KERNEL);
-	if (!tbuf) {
-		ret = -ENOMEM;
+	if (!tbuf)
 		goto done;
-	}
+	urb = usb_alloc_urb(0, GFP_NOIO);
+	if (!urb)
+		goto done;
+	dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_NOIO);
+	if (!dr)
+		goto done;
+
+	dr->bRequestType = ctrl->bRequestType;
+	dr->bRequest = ctrl->bRequest;
+	dr->wValue = cpu_to_le16(ctrl->wValue);
+	dr->wIndex = cpu_to_le16(ctrl->wIndex);
+	dr->wLength = cpu_to_le16(ctrl->wLength);
+
 	tmo = ctrl->timeout;
 	snoop(&dev->dev, "control urb: bRequestType=%02x "
 		"bRequest=%02x wValue=%04x "
 		"wIndex=%04x wLength=%04x\n",
 		ctrl->bRequestType, ctrl->bRequest, ctrl->wValue,
 		ctrl->wIndex, ctrl->wLength);
-	if ((ctrl->bRequestType & USB_DIR_IN) && ctrl->wLength) {
+
+	if ((ctrl->bRequestType & USB_DIR_IN) && wLength) {
 		pipe = usb_rcvctrlpipe(dev, 0);
-		snoop_urb(dev, NULL, pipe, ctrl->wLength, tmo, SUBMIT, NULL, 0);
+		usb_fill_control_urb(urb, dev, pipe, (unsigned char *) dr, tbuf,
+				wLength, NULL, NULL);
+		snoop_urb(dev, NULL, pipe, wLength, tmo, SUBMIT, NULL, 0);
 
 		usb_unlock_device(dev);
-		i = usb_control_msg(dev, pipe, ctrl->bRequest,
-				    ctrl->bRequestType, ctrl->wValue, ctrl->wIndex,
-				    tbuf, ctrl->wLength, tmo);
+		i = usbfs_start_wait_urb(urb, tmo, &actlen);
 		usb_lock_device(dev);
-		snoop_urb(dev, NULL, pipe, max(i, 0), min(i, 0), COMPLETE,
-			  tbuf, max(i, 0));
-		if ((i > 0) && ctrl->wLength) {
-			if (copy_to_user(ctrl->data, tbuf, i)) {
+		snoop_urb(dev, NULL, pipe, actlen, i, COMPLETE, tbuf, actlen);
+		if (!i && actlen) {
+			if (copy_to_user(ctrl->data, tbuf, actlen)) {
 				ret = -EFAULT;
-				goto done;
+				goto recv_fault;
 			}
 		}
 	} else {
-		if (ctrl->wLength) {
-			if (copy_from_user(tbuf, ctrl->data, ctrl->wLength)) {
+		if (wLength) {
+			if (copy_from_user(tbuf, ctrl->data, wLength)) {
 				ret = -EFAULT;
 				goto done;
 			}
 		}
 		pipe = usb_sndctrlpipe(dev, 0);
-		snoop_urb(dev, NULL, pipe, ctrl->wLength, tmo, SUBMIT,
-			tbuf, ctrl->wLength);
+		usb_fill_control_urb(urb, dev, pipe, (unsigned char *) dr, tbuf,
+				wLength, NULL, NULL);
+		snoop_urb(dev, NULL, pipe, wLength, tmo, SUBMIT, tbuf, wLength);
 
 		usb_unlock_device(dev);
-		i = usb_control_msg(dev, pipe, ctrl->bRequest,
-				    ctrl->bRequestType, ctrl->wValue, ctrl->wIndex,
-				    tbuf, ctrl->wLength, tmo);
+		i = usbfs_start_wait_urb(urb, tmo, &actlen);
 		usb_lock_device(dev);
-		snoop_urb(dev, NULL, pipe, max(i, 0), min(i, 0), COMPLETE, NULL, 0);
+		snoop_urb(dev, NULL, pipe, actlen, i, COMPLETE, NULL, 0);
 	}
 	if (i < 0 && i != -EPIPE) {
 		dev_printk(KERN_DEBUG, &dev->dev, "usbfs: USBDEVFS_CONTROL "
@@ -1174,8 +1228,15 @@ static int do_proc_control(struct usb_de
 			   current->comm, ctrl->bRequestType, ctrl->bRequest,
 			   ctrl->wLength, i);
 	}
-	ret = i;
+	ret = (i < 0 ? i : actlen);
+
+ recv_fault:
+	/* Linger a bit, prior to the next control message. */
+	if (dev->quirks & USB_QUIRK_DELAY_CTRL_MSG)
+		msleep(200);
  done:
+	kfree(dr);
+	usb_free_urb(urb);
 	free_page((unsigned long) tbuf);
 	usbfs_decrease_memory_usage(PAGE_SIZE + sizeof(struct urb) +
 			sizeof(struct usb_ctrlrequest));
@@ -1195,10 +1256,11 @@ static int do_proc_bulk(struct usb_dev_s
 		struct usbdevfs_bulktransfer *bulk)
 {
 	struct usb_device *dev = ps->dev;
-	unsigned int tmo, len1, pipe;
-	int len2;
+	unsigned int tmo, len1, len2, pipe;
 	unsigned char *tbuf;
 	int i, ret;
+	struct urb *urb = NULL;
+	struct usb_host_endpoint *ep;
 
 	ret = findintfep(ps->dev, bulk->ep);
 	if (ret < 0)
@@ -1206,14 +1268,17 @@ static int do_proc_bulk(struct usb_dev_s
 	ret = checkintf(ps, ret);
 	if (ret)
 		return ret;
+
+	len1 = bulk->len;
+	if (len1 < 0 || len1 >= (INT_MAX - sizeof(struct urb)))
+		return -EINVAL;
+
 	if (bulk->ep & USB_DIR_IN)
 		pipe = usb_rcvbulkpipe(dev, bulk->ep & 0x7f);
 	else
 		pipe = usb_sndbulkpipe(dev, bulk->ep & 0x7f);
-	if (!usb_maxpacket(dev, pipe, !(bulk->ep & USB_DIR_IN)))
-		return -EINVAL;
-	len1 = bulk->len;
-	if (len1 >= (INT_MAX - sizeof(struct urb)))
+	ep = usb_pipe_endpoint(dev, pipe);
+	if (!ep || !usb_endpoint_maxp(&ep->desc))
 		return -EINVAL;
 	ret = usbfs_increase_memory_usage(len1 + sizeof(struct urb));
 	if (ret)
@@ -1223,17 +1288,29 @@ static int do_proc_bulk(struct usb_dev_s
 	 * len1 can be almost arbitrarily large.  Don't WARN if it's
 	 * too big, just fail the request.
 	 */
+	ret = -ENOMEM;
 	tbuf = kmalloc(len1, GFP_KERNEL | __GFP_NOWARN);
-	if (!tbuf) {
-		ret = -ENOMEM;
+	if (!tbuf)
 		goto done;
+	urb = usb_alloc_urb(0, GFP_KERNEL);
+	if (!urb)
+		goto done;
+
+	if ((ep->desc.bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) ==
+			USB_ENDPOINT_XFER_INT) {
+		pipe = (pipe & ~(3 << 30)) | (PIPE_INTERRUPT << 30);
+		usb_fill_int_urb(urb, dev, pipe, tbuf, len1,
+				NULL, NULL, ep->desc.bInterval);
+	} else {
+		usb_fill_bulk_urb(urb, dev, pipe, tbuf, len1, NULL, NULL);
 	}
+
 	tmo = bulk->timeout;
 	if (bulk->ep & 0x80) {
 		snoop_urb(dev, NULL, pipe, len1, tmo, SUBMIT, NULL, 0);
 
 		usb_unlock_device(dev);
-		i = usb_bulk_msg(dev, pipe, tbuf, len1, &len2, tmo);
+		i = usbfs_start_wait_urb(urb, tmo, &len2);
 		usb_lock_device(dev);
 		snoop_urb(dev, NULL, pipe, len2, i, COMPLETE, tbuf, len2);
 
@@ -1253,12 +1330,13 @@ static int do_proc_bulk(struct usb_dev_s
 		snoop_urb(dev, NULL, pipe, len1, tmo, SUBMIT, tbuf, len1);
 
 		usb_unlock_device(dev);
-		i = usb_bulk_msg(dev, pipe, tbuf, len1, &len2, tmo);
+		i = usbfs_start_wait_urb(urb, tmo, &len2);
 		usb_lock_device(dev);
 		snoop_urb(dev, NULL, pipe, len2, i, COMPLETE, NULL, 0);
 	}
 	ret = (i < 0 ? i : len2);
  done:
+	usb_free_urb(urb);
 	kfree(tbuf);
 	usbfs_decrease_memory_usage(len1 + sizeof(struct urb));
 	return ret;



  parent reply	other threads:[~2021-12-20 15:18 UTC|newest]

Thread overview: 183+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-20 14:32 [PATCH 5.15 000/177] 5.15.11-rc1 review Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 001/177] reset: tegra-bpmp: Revert Handle errors in BPMP response Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 002/177] KVM: VMX: clear vmx_x86_ops.sync_pir_to_irr if APICv is disabled Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 003/177] KVM: selftests: Make sure kvm_create_max_vcpus test wont hit RLIMIT_NOFILE Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 004/177] KVM: downgrade two BUG_ONs to WARN_ON_ONCE Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 005/177] x86/kvm: remove unused ack_notifier callbacks Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 006/177] KVM: X86: Fix tlb flush for tdp in kvm_invalidate_pcid() Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 007/177] mac80211: fix rate control for retransmitted frames Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 008/177] mac80211: fix regression in SSN handling of addba tx Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 009/177] mac80211: mark TX-during-stop for TX in in_reconfig Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 010/177] mac80211: send ADDBA requests using the tid/queue of the aggregation session Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 011/177] mac80211: validate extended element ID is present Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 012/177] firmware: arm_scpi: Fix string overflow in SCPI genpd driver Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 013/177] bpf: Fix kernel address leakage in atomic fetch Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 014/177] bpf, selftests: Add test case for atomic fetch on spilled pointer Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 015/177] bpf: Fix signed bounds propagation after mov32 Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 016/177] bpf: Make 32->64 bounds propagation slightly more robust Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 017/177] bpf, selftests: Add test case trying to taint map value pointer Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 018/177] bpf: Fix kernel address leakage in atomic cmpxchgs r0 aux reg Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 019/177] bpf, selftests: Update test case for atomic cmpxchg on r0 with pointer Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 020/177] vduse: fix memory corruption in vduse_dev_ioctl() Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 021/177] vduse: check that offset is within bounds in get_config() Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 022/177] virtio_ring: Fix querying of maximum DMA mapping size for virtio device Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 023/177] vdpa: check that offsets are within bounds Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 024/177] s390/entry: fix duplicate tracking of irq nesting level Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 025/177] recordmcount.pl: look for jgnop instruction as well as bcrl on s390 Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 026/177] arm64: dts: ten64: remove redundant interrupt declaration for gpio-keys Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 027/177] ceph: fix up non-directory creation in SGID directories Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 028/177] dm btree remove: fix use after free in rebalance_children() Greg Kroah-Hartman
2021-12-20 14:32 ` [PATCH 5.15 029/177] audit: improve robustness of the audit queue handling Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 030/177] btrfs: convert latest_bdev type to btrfs_device and rename Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 031/177] btrfs: use latest_dev in btrfs_show_devname Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 032/177] btrfs: update latest_dev when we create a sprout device Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 033/177] btrfs: remove stale comment about the btrfs_show_devname Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 034/177] scsi: ufs: core: Retry START_STOP on UNIT_ATTENTION Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 035/177] drm/i915/hdmi: convert intel_hdmi_to_dev to intel_hdmi_to_i915 Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 036/177] drm/i915/hdmi: Turn DP++ TMDS output buffers back on in encoder->shutdown() Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 037/177] pinctrl: amd: Fix wakeups when IRQ is shared with SCI Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 038/177] arm64: dts: rockchip: remove mmc-hs400-enhanced-strobe from rk3399-khadas-edge Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 039/177] arm64: dts: rockchip: fix rk3308-roc-cc vcc-sd supply Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 040/177] arm64: dts: rockchip: fix rk3399-leez-p710 vcc3v3-lan supply Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 041/177] arm64: dts: rockchip: fix audio-supply for Rock Pi 4 Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 042/177] arm64: dts: rockchip: fix poweroff on helios64 Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 043/177] dmaengine: idxd: add halt interrupt support Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 044/177] dmaengine: idxd: fix calling wq quiesce inside spinlock Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 045/177] mac80211: track only QoS data frames for admission control Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 046/177] hv: utils: add PTP_1588_CLOCK to Kconfig to fix build Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 047/177] tee: amdtee: fix an IS_ERR() vs NULL bug Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 048/177] ceph: fix duplicate increment of opened_inodes metric Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 049/177] ceph: initialize pathlen variable in reconnect_caps_cb Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 050/177] ARM: socfpga: dts: fix qspi node compatible Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 051/177] arm64: dts: imx8mq: remove interconnect property from lcdif Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 052/177] clk: Dont parent clks until the parent is fully registered Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 053/177] soc: imx: Register SoC device only on i.MX boards Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 054/177] iwlwifi: mvm: dont crash on invalid rate w/o STA Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 055/177] virtio: always enter drivers/virtio/ Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 056/177] virtio/vsock: fix the transport to work with VMADDR_CID_ANY Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 057/177] vdpa: Consider device id larger than 31 Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 058/177] Revert "drm/fb-helper: improve DRM fbdev emulation device names" Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 059/177] selftests: net: Correct ping6 expected rc from 2 to 1 Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 060/177] s390/kexec_file: fix error handling when applying relocations Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 061/177] sch_cake: do not call cake_destroy() from cake_init() Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 062/177] inet_diag: fix kernel-infoleak for UDP sockets Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 063/177] netdevsim: dont overwrite read only ethtool parms Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 064/177] selftests: icmp_redirect: pass xfail=0 to log_test() Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 065/177] net: hns3: fix use-after-free bug in hclgevf_send_mbx_msg Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 066/177] net: hns3: fix race condition in debugfs Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 067/177] selftests: Add duplicate config only for MD5 VRF tests Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 068/177] selftests: Fix raw socket bind tests with VRF Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 069/177] selftests: Fix IPv6 address bind tests Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 070/177] dmaengine: idxd: fix missed completion on abort path Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 071/177] dmaengine: st_fdma: fix MODULE_ALIAS Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 072/177] drm: simpledrm: fix wrong unit with pixel clock Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 073/177] net/sched: sch_ets: dont remove idle classes from the round-robin list Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 074/177] selftests/net: toeplitz: fix udp option Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 075/177] net: dsa: mv88e6xxx: Unforce speed & duplex in mac_link_down() Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 076/177] selftest/net/forwarding: declare NETIFS p9 p10 Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 077/177] mptcp: never allow the PM to close a listener subflow Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 078/177] drm/ast: potential dereference of null pointer Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 079/177] drm/i915/display: Fix an unsigned subtraction which can never be negative Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 080/177] mac80211: agg-tx: dont schedule_and_wake_txq() under sta->lock Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 081/177] cfg80211: Acquire wiphy mutex on regulatory work Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 082/177] mac80211: fix lookup when adding AddBA extension element Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 083/177] net: stmmac: fix tc flower deletion for VLAN priority Rx steering Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 084/177] flow_offload: return EOPNOTSUPP for the unsupported mpls action type Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 085/177] rds: memory leak in __rds_conn_create() Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 086/177] ice: Use div64_u64 instead of div_u64 in adjfine Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 087/177] ice: Dont put stale timestamps in the skb Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 088/177] drm/amd/display: Set exit_optimized_pwr_state for DCN31 Greg Kroah-Hartman
2021-12-20 14:33 ` [PATCH 5.15 089/177] drm/amd/pm: fix a potential gpu_metrics_table memory leak Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 090/177] mptcp: remove tcp ulp setsockopt support Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 091/177] mptcp: clear kern flag from fallback sockets Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 092/177] mptcp: fix deadlock in __mptcp_push_pending() Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 093/177] soc/tegra: fuse: Fix bitwise vs. logical OR warning Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 094/177] igb: Fix removal of unicast MAC filters of VFs Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 095/177] igbvf: fix double free in `igbvf_probe` Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 096/177] igc: Fix typo in i225 LTR functions Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 097/177] ixgbe: Document how to enable NBASE-T support Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 098/177] ixgbe: set X550 MDIO speed before talking to PHY Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 099/177] netdevsim: Zero-initialize memory for new maps value in function nsim_bpf_map_alloc Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 100/177] net/packet: rx_owner_map depends on pg_vec Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 101/177] net: stmmac: dwmac-rk: fix oob read in rk_gmac_setup Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 102/177] sfc_ef100: potential dereference of null pointer Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 103/177] dsa: mv88e6xxx: fix debug print for SPEED_UNFORCED Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 104/177] net: Fix double 0x prefix print in SKB dump Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 105/177] net/smc: Prevent smc_release() from long blocking Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 106/177] net: systemport: Add global locking for descriptor lifecycle Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 107/177] sit: do not call ipip6_dev_free() from sit_init_net() Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 108/177] afs: Fix mmap Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 109/177] arm64: kexec: Fix missing error code ret warning in load_other_segments() Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 110/177] bpf: Fix extable fixup offset Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 111/177] bpf, selftests: Fix racing issue in btf_skc_cls_ingress test Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 112/177] powerpc/85xx: Fix oops when CONFIG_FSL_PMC=n Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 113/177] USB: gadget: bRequestType is a bitfield, not a enum Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 114/177] Revert "usb: early: convert to readl_poll_timeout_atomic()" Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 115/177] KVM: x86: Drop guest CPUID check for host initiated writes to MSR_IA32_PERF_CAPABILITIES Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 116/177] tty: n_hdlc: make n_hdlc_tty_wakeup() asynchronous Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 117/177] USB: NO_LPM quirk Lenovo USB-C to Ethernet Adapher(RTL8153-04) Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 118/177] usb: dwc2: fix STM ID/VBUS detection startup delay in dwc2_driver_probe Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 119/177] PCI/MSI: Clear PCI_MSIX_FLAGS_MASKALL on error Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 120/177] PCI/MSI: Mask MSI-X vectors only on success Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 121/177] usb: xhci-mtk: fix list_del warning when enable list debug Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 122/177] usb: xhci: Extend support for runtime power management for AMDs Yellow carp Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 123/177] usb: cdnsp: Fix incorrect status for control request Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 124/177] usb: cdnsp: Fix incorrect calling of cdnsp_died function Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 125/177] usb: cdnsp: Fix issue in cdnsp_log_ep trace event Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 126/177] usb: cdnsp: Fix lack of spin_lock_irqsave/spin_lock_restore Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 127/177] usb: typec: tcpm: fix tcpm unregister port but leave a pending timer Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 128/177] usb: gadget: u_ether: fix race in setting MAC address in setup phase Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 129/177] USB: serial: cp210x: fix CP2105 GPIO registration Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 130/177] USB: serial: option: add Telit FN990 compositions Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 131/177] selinux: fix sleeping function called from invalid context Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 132/177] btrfs: fix memory leak in __add_inode_ref() Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 133/177] btrfs: fix double free of anon_dev after failure to create subvolume Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 134/177] btrfs: check WRITE_ERR when trying to read an extent buffer Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 135/177] btrfs: fix missing blkdev_put() call in btrfs_scan_one_device() Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 136/177] zonefs: add MODULE_ALIAS_FS Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 137/177] iocost: Fix divide-by-zero on donation from low hweight cgroup Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 138/177] serial: 8250_fintek: Fix garbled text for console Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 139/177] timekeeping: Really make sure wall_to_monotonic isnt positive Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 140/177] cifs: sanitize multiple delimiters in prepath Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 141/177] locking/rtmutex: Fix incorrect condition in rtmutex_spin_on_owner() Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 142/177] riscv: dts: unleashed: Add gpio card detect to mmc-spi-slot Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 143/177] riscv: dts: unmatched: " Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 144/177] perf inject: Fix segfault due to close without open Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 145/177] perf inject: Fix segfault due to perf_data__fd() " Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 146/177] libata: if T_LENGTH is zero, dma direction should be DMA_NONE Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 147/177] powerpc/module_64: Fix livepatching for RO modules Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 148/177] drm/amdgpu: correct register access for RLC_JUMP_TABLE_RESTORE Greg Kroah-Hartman
2021-12-20 14:34 ` [PATCH 5.15 149/177] drm/amdgpu: dont override default ECO_BITs setting Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 150/177] drm/amd/pm: fix reading SMU FW version from amdgpu_firmware_info on YC Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 151/177] Revert "can: m_can: remove support for custom bit timing" Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 152/177] can: m_can: make custom bittiming fields const Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 153/177] can: m_can: pci: use custom bit timings for Elkhart Lake Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 154/177] ARM: dts: imx6ull-pinfunc: Fix CSI_DATA07__ESAI_TX0 pad name Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 155/177] xsk: Do not sleep in poll() when need_wakeup set Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 156/177] mptcp: add missing documented NL params Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 157/177] bpf, x64: Factor out emission of REX byte in more cases Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 158/177] bpf: Fix extable address check Greg Kroah-Hartman
2021-12-20 14:35 ` Greg Kroah-Hartman [this message]
2021-12-20 14:35 ` [PATCH 5.15 160/177] media: mxl111sf: change mutex_init() location Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 161/177] fuse: annotate lock in fuse_reverse_inval_entry() Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 162/177] ovl: fix warning in ovl_create_real() Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 163/177] scsi: scsi_debug: Dont call kcalloc() if size arg is zero Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 164/177] scsi: scsi_debug: Fix type in min_t to avoid stack OOB Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 165/177] scsi: scsi_debug: Sanity check block descriptor length in resp_mode_select() Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 166/177] io-wq: remove spurious bit clear on task_work addition Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 167/177] io-wq: check for wq exit after adding new worker task_work Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 168/177] rcu: Mark accesses to rcu_state.n_force_qs Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 169/177] io-wq: drop wqe lock before creating new worker Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 170/177] bus: ti-sysc: Fix variable set but not used warning for reinit_modules Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 171/177] selftests/damon: test debugfs file reads/writes with huge count Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 172/177] Revert "xsk: Do not sleep in poll() when need_wakeup set" Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 173/177] xen/blkfront: harden blkfront against event channel storms Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 174/177] xen/netfront: harden netfront " Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 175/177] xen/console: harden hvc_xen " Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 176/177] xen/netback: fix rx queue stall detection Greg Kroah-Hartman
2021-12-20 14:35 ` [PATCH 5.15 177/177] xen/netback: dont queue unlimited number of packages Greg Kroah-Hartman
2021-12-20 23:17 ` [PATCH 5.15 000/177] 5.15.11-rc1 review Shuah Khan
2021-12-21 10:05 ` Naresh Kamboju
2021-12-21 10:56 ` Rudi Heitbaum
2021-12-21 18:10 ` Florian Fainelli
2021-12-21 23:14 ` 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=20211220143045.435716834@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oneukum@suse.com \
    --cc=stable@vger.kernel.org \
    --cc=stern@rowland.harvard.edu \
    --cc=syzbot+ada0f7d3d9fd2016d927@syzkaller.appspotmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).