stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ben Hutchings <ben@decadent.org.uk>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: akpm@linux-foundation.org, Denis Kirjanov <kda@linux-powerpc.org>,
	"Kalle Valo" <kvalo@codeaurora.org>,
	"Christian Lamparter" <chunkeey@gmail.com>,
	"Alan Stern" <stern@rowland.harvard.edu>
Subject: [PATCH 3.16 122/132] p54usb: Fix race between disconnect and firmware loading
Date: Fri, 20 Sep 2019 15:23:35 +0100	[thread overview]
Message-ID: <lsq.1568989415.454818804@decadent.org.uk> (raw)
In-Reply-To: <lsq.1568989414.954567518@decadent.org.uk>

3.16.74-rc1 review patch.  If anyone has any objections, please let me know.

------------------

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

commit 6e41e2257f1094acc37618bf6c856115374c6922 upstream.

The syzbot fuzzer found a bug in the p54 USB wireless driver.  The
issue involves a race between disconnect and the firmware-loader
callback routine, and it has several aspects.

One big problem is that when the firmware can't be loaded, the
callback routine tries to unbind the driver from the USB _device_ (by
calling device_release_driver) instead of from the USB _interface_ to
which it is actually bound (by calling usb_driver_release_interface).

The race involves access to the private data structure.  The driver's
disconnect handler waits for a completion that is signalled by the
firmware-loader callback routine.  As soon as the completion is
signalled, you have to assume that the private data structure may have
been deallocated by the disconnect handler -- even if the firmware was
loaded without errors.  However, the callback routine does access the
private data several times after that point.

Another problem is that, in order to ensure that the USB device
structure hasn't been freed when the callback routine runs, the driver
takes a reference to it.  This isn't good enough any more, because now
that the callback routine calls usb_driver_release_interface, it has
to ensure that the interface structure hasn't been freed.

Finally, the driver takes an unnecessary reference to the USB device
structure in the probe function and drops the reference in the
disconnect handler.  This extra reference doesn't accomplish anything,
because the USB core already guarantees that a device structure won't
be deallocated while a driver is still bound to any of its interfaces.

To fix these problems, this patch makes the following changes:

	Call usb_driver_release_interface() rather than
	device_release_driver().

	Don't signal the completion until after the important
	information has been copied out of the private data structure,
	and don't refer to the private data at all thereafter.

	Lock udev (the interface's parent) before unbinding the driver
	instead of locking udev->parent.

	During the firmware loading process, take a reference to the
	USB interface instead of the USB device.

	Don't take an unnecessary reference to the device during probe
	(and then don't drop it during disconnect).

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reported-and-tested-by: syzbot+200d4bb11b23d929335f@syzkaller.appspotmail.com
Acked-by: Christian Lamparter <chunkeey@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
 drivers/net/wireless/p54/p54usb.c | 43 +++++++++-------------
 1 file changed, 18 insertions(+), 25 deletions(-)

--- a/drivers/net/wireless/p54/p54usb.c
+++ b/drivers/net/wireless/p54/p54usb.c
@@ -33,6 +33,8 @@ MODULE_ALIAS("prism54usb");
 MODULE_FIRMWARE("isl3886usb");
 MODULE_FIRMWARE("isl3887usb");
 
+static struct usb_driver p54u_driver;
+
 /*
  * Note:
  *
@@ -921,9 +923,9 @@ static void p54u_load_firmware_cb(const
 {
 	struct p54u_priv *priv = context;
 	struct usb_device *udev = priv->udev;
+	struct usb_interface *intf = priv->intf;
 	int err;
 
-	complete(&priv->fw_wait_load);
 	if (firmware) {
 		priv->fw = firmware;
 		err = p54u_start_ops(priv);
@@ -932,26 +934,22 @@ static void p54u_load_firmware_cb(const
 		dev_err(&udev->dev, "Firmware not found.\n");
 	}
 
-	if (err) {
-		struct device *parent = priv->udev->dev.parent;
-
-		dev_err(&udev->dev, "failed to initialize device (%d)\n", err);
-
-		if (parent)
-			device_lock(parent);
+	complete(&priv->fw_wait_load);
+	/*
+	 * At this point p54u_disconnect may have already freed
+	 * the "priv" context. Do not use it anymore!
+	 */
+	priv = NULL;
 
-		device_release_driver(&udev->dev);
-		/*
-		 * At this point p54u_disconnect has already freed
-		 * the "priv" context. Do not use it anymore!
-		 */
-		priv = NULL;
+	if (err) {
+		dev_err(&intf->dev, "failed to initialize device (%d)\n", err);
 
-		if (parent)
-			device_unlock(parent);
+		usb_lock_device(udev);
+		usb_driver_release_interface(&p54u_driver, intf);
+		usb_unlock_device(udev);
 	}
 
-	usb_put_dev(udev);
+	usb_put_intf(intf);
 }
 
 static int p54u_load_firmware(struct ieee80211_hw *dev,
@@ -972,14 +970,14 @@ static int p54u_load_firmware(struct iee
 	dev_info(&priv->udev->dev, "Loading firmware file %s\n",
 	       p54u_fwlist[i].fw);
 
-	usb_get_dev(udev);
+	usb_get_intf(intf);
 	err = request_firmware_nowait(THIS_MODULE, 1, p54u_fwlist[i].fw,
 				      device, GFP_KERNEL, priv,
 				      p54u_load_firmware_cb);
 	if (err) {
 		dev_err(&priv->udev->dev, "(p54usb) cannot load firmware %s "
 					  "(%d)!\n", p54u_fwlist[i].fw, err);
-		usb_put_dev(udev);
+		usb_put_intf(intf);
 	}
 
 	return err;
@@ -1011,8 +1009,6 @@ static int p54u_probe(struct usb_interfa
 	skb_queue_head_init(&priv->rx_queue);
 	init_usb_anchor(&priv->submitted);
 
-	usb_get_dev(udev);
-
 	/* really lazy and simple way of figuring out if we're a 3887 */
 	/* TODO: should just stick the identification in the device table */
 	i = intf->altsetting->desc.bNumEndpoints;
@@ -1053,10 +1049,8 @@ static int p54u_probe(struct usb_interfa
 		priv->upload_fw = p54u_upload_firmware_net2280;
 	}
 	err = p54u_load_firmware(dev, intf);
-	if (err) {
-		usb_put_dev(udev);
+	if (err)
 		p54_free_common(dev);
-	}
 	return err;
 }
 
@@ -1072,7 +1066,6 @@ static void p54u_disconnect(struct usb_i
 	wait_for_completion(&priv->fw_wait_load);
 	p54_unregister_common(dev);
 
-	usb_put_dev(interface_to_usbdev(intf));
 	release_firmware(priv->fw);
 	p54_free_common(dev);
 }


  parent reply	other threads:[~2019-09-20 14:33 UTC|newest]

Thread overview: 142+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-20 14:23 [PATCH 3.16 000/132] 3.16.74-rc1 review Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 049/132] bcache: fix memory corruption in init error path Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 063/132] ALSA: hda/realtek - EAPD turn on later Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 051/132] bcache: never set KEY_PTRS of journal key to 0 in journal_reclaim() Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 112/132] vhost: make sure log_num < in_num Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 095/132] bonding: fix arp_validate toggling in active-backup mode Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 120/132] media: smsusb: better handle optional alignment Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 132/132] staging: comedi: dt282x: fix a null pointer deref on interrupt Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 031/132] hwmon: (smsc47m1) Use request_muxed_region for Super-IO accesses Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 088/132] platform/x86: sony-laptop: Fix unintentional fall-through Ben Hutchings
2019-09-20 14:23 ` Ben Hutchings [this message]
2019-09-20 14:23 ` [PATCH 3.16 024/132] crypto: x86/crct10dif-pcl - fix use via crypto_shash_digest() Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 046/132] fuse: fix writepages on 32bit Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 082/132] tracing: Fix partial reading of trace event's id file Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 061/132] ext4: actually request zeroing of inode table after grow Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 005/132] ARM: dts: exynos: Fix interrupt for shared EINTs on Exynos5260 Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 043/132] smpboot: Place the __percpu annotation correctly Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 110/132] mwifiex: vendor_ie length check for parse WMM IEs Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 080/132] ceph: flush dirty inodes before proceeding with remount Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 068/132] cdc-acm: handle read pipe errors Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 042/132] PCI: Mark Atheros AR9462 to avoid bus reset Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 017/132] scsi: qla2xxx: Fix incorrect region-size setting in optrom SYSFS routines Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 058/132] at76c50x-usb: Don't register led_trigger if usb_register_driver failed Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 099/132] drivers/virt/fsl_hypervisor.c: dereferencing error pointers in ioctl Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 060/132] p54: drop device reference count if fails to enable device Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 086/132] media: davinci/vpbe: array underflow in vpbe_enum_outputs() Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 032/132] hwmon: (w83627hf) Use request_muxed_region for Super-IO accesses Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 084/132] ipv4: Use return value of inet_iif() for __raw_v4_lookup in the while loop Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 070/132] USB: cdc-acm: fix unthrottle races Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 020/132] PCI: Factor out pcie_retrain_link() function Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 033/132] hwmon: (vt1211) Use request_muxed_region for Super-IO accesses Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 013/132] media: wl128x: prevent two potential buffer overflows Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 128/132] Bluetooth: hci_ldisc: Postpone HCI_UART_PROTO_READY bit set in hci_uart_set_proto() Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 106/132] rsi: add fix for crash during assertions Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 125/132] appletalk: Fix compile regression Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 016/132] drm/fb-helper: dpms_legacy(): Only set on connectors in use Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 111/132] mwifiex: Fix three heap overflow at parsing element in cfg80211_ap_settings Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 011/132] tty/vt: fix write/write race in ioctl(KDSKBSENT) handler Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 094/132] kdb: do a sanity check on the cpu in kdb_per_cpu() Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 030/132] hwmon: (smsc47b397) Use request_muxed_region for Super-IO accesses Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 100/132] x86/speculation/mds: Revert CPU buffer clear on double fault exit Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 059/132] mwl8k: Fix rate_idx underflow Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 062/132] USB: serial: fix initial-termios handling Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 117/132] media: cpia2_usb: first wake up, then free in disconnect Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 108/132] mac80211: drop robust management frames from unknown TA Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 008/132] pwm: tiehrpwm: Update shadow register for disabling PWMs Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 056/132] Bluetooth: Fix faulty expression for minimum encryption key size check Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 054/132] Bluetooth: Align minimum encryption key size for LE and BR/EDR connections Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 041/132] media: pvrusb2: Prevent a buffer overflow Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 009/132] scsi: qla4xxx: avoid freeing unallocated dma memory Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 075/132] powerpc/booke64: set RI in default MSR Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 040/132] media: ov6650: Fix sensor possibly not detected on probe Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 077/132] net: ucc_geth - fix Oops when changing number of buffers in the ring Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 012/132] media: davinci-isif: avoid uninitialized variable use Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 127/132] Bluetooth: hci_ldisc: Fix null pointer derefence in case of early data Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 055/132] Bluetooth: Fix regression with minimum encryption key size alignment Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 004/132] media: cx18: update *pos correctly in cx18_read_pos() Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 102/132] GFS2: Fix rgrp end rounding problem for bsize < page size Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 028/132] hwmon: (f71805f) Use request_muxed_region for Super-IO accesses Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 053/132] PCI: Reset Lenovo ThinkPad P50 nvgpu at boot if necessary Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 036/132] crypto: salsa20 - don't access already-freed walk.iv Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 123/132] ALSA: line6: Fix write on zero-sized buffer Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 109/132] mac80211: handle deauthentication/disassociation from TDLS peer Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 121/132] USB: sisusbvga: fix oops in error path of sisusb_probe Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 052/132] TTY: serial_core, add ->install Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 006/132] media: wl128x: Fix an error code in fm_download_firmware() Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 026/132] arm64: compat: Reduce address limit Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 074/132] ASoC: fsl_esai: Fix missing break in switch statement Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 078/132] ALSA: hda/hdmi - Read the pin sense from register when repolling Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 003/132] media: ivtv: update *pos correctly in ivtv_read_pos() Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 044/132] x86/uaccess: Dont leak the AC flag into __put_user() argument evaluation Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 079/132] ASoC: max98090: Fix restore of DAPM Muxes Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 039/132] powerpc/83xx: Add missing of_node_put() after of_device_is_available() Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 098/132] ocfs2: fix ocfs2 read inode data panic in ocfs2_iget Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 023/132] crypto: crct10dif-generic - fix use via crypto_shash_digest() Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 007/132] pwm: Fix deadlock warning when removing PWM device Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 107/132] mac80211: add API to request TDLS operation from userspace Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 027/132] ARM: pxa: ssp: Fix "WARNING: invalid free of devm_ allocated data" Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 018/132] rtc: don't reference bogus function pointer in kdoc Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 047/132] fuse: honor RLIMIT_FSIZE in fuse_file_fallocate Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 001/132] spi: rspi: Fix register initialization while runtime-suspended Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 115/132] media: radio-raremono: change devm_k*alloc to k*alloc Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 069/132] usb: cdc-acm: fix race during wakeup blocking TX traffic Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 035/132] platform/x86: alienware-wmi: fix kfree on potentially uninitialized pointer Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 025/132] scsi: qla2xxx: Unregister chrdev if module initialization fails Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 114/132] ALSA: usb-audio: Fix a stack buffer overflow bug in check_input_term Ben Hutchings
     [not found]   ` <94525609-b88e-cc24-dfe5-9db470e105ef@gmail.com>
2019-09-21 18:39     ` Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 092/132] drm/radeon: prefer lower reference dividers Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 093/132] ext4: fix data corruption caused by overlapping unaligned and aligned IO Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 014/132] kobject: Don't trigger kobject_uevent(KOBJ_REMOVE) twice Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 029/132] hwmon: (pc87427) Use request_muxed_region for Super-IO accesses Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 038/132] selftests/ipc: Fix msgque compiler warnings Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 126/132] scsi: libsas: delete sas port if expander discover failed Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 065/132] ALSA: usb-audio: Fix a memory leak bug Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 071/132] USB: serial: use variable for status Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 105/132] xfs: clear sb->s_fs_info on mount failure Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 116/132] USB: rio500: refuse more than one device at a time Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 064/132] ALSA: hda/realtek - Fix overridden device-specific initialization Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 101/132] x86/speculation/mds: Improve CPU buffer clear documentation Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 087/132] platform/x86: alienware-wmi: printing the wrong error code Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 089/132] netfilter: ebtables: CONFIG_COMPAT: reject trailing data after last rule Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 022/132] jbd2: check superblock mapped prior to committing Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 019/132] ehea: Fix a copy-paste err in ehea_init_port_res Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 073/132] of: fix clang -Wunsequenced for be32_to_cpu() Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 104/132] net: arc_emac: fix koops caused by sk_buff free Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 015/132] cxgb3/l2t: Fix undefined behaviour Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 067/132] cdc-acm: store in and out pipes in acm structure Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 045/132] ALSA: usb-audio: Handle the error from snd_usb_mixer_apply_create_quirk() Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 130/132] KVM: coalesced_mmio: add bounds checking Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 034/132] RDMA/cxgb4: Fix null pointer dereference on alloc_skb failure Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 010/132] ARM: OMAP2+: Fix potentially uninitialized return value for _setup_reset() Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 096/132] mfd: da9063: Fix OTP control register names to match datasheets for DA9063/63L Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 097/132] backlight: lm3630a: Return 0 on success in update_status functions Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 091/132] NFS4: Fix v4.0 client state corruption when mount Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 129/132] ath6kl: add some bounds checking Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 103/132] GFS2: don't set rgrp gl_object until it's inserted into rgrp tree Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 119/132] media: usb: siano: Fix false-positive "uninitialized variable" warning Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 037/132] crypto: arm/aes-neonbs - don't access already-freed walk.iv Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 118/132] media: usb: siano: Fix general protection fault in smsusb Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 085/132] media: omap_vout: potential buffer overflow in vidioc_dqbuf() Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 124/132] appletalk: Fix use-after-free in atalk_proc_exit Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 090/132] ntp: Allow TAI-UTC offset to be set to zero Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 072/132] USB: serial: fix unthrottle races Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 131/132] media: poseidon: Depend on PM_RUNTIME Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 066/132] cdc-acm: fix race between callback and unthrottle Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 048/132] fuse: fallocate: fix return with locked inode Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 113/132] ALSA: usb-audio: Fix an OOB bug in parse_audio_mixer_unit Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 083/132] ipv4: Fix raw socket lookup for local traffic Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 050/132] bcache: fix a race between cache register and cacheset unregister Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 002/132] spi: rspi: Fix sequencer reset during initialization Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 057/132] clk: tegra: Fix PLLM programming on Tegra124+ when PMC overrides divider Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 076/132] iommu/vt-d: Set intel_iommu_gfx_mapped correctly Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 081/132] cifs: fix strcat buffer overflow and reduce raciness in smb21_set_oplock_level() Ben Hutchings
2019-09-20 14:23 ` [PATCH 3.16 021/132] PCI: Work around Pericom PCIe-to-PCI bridge Retrain Link erratum Ben Hutchings
2019-09-20 20:04 ` [PATCH 3.16 000/132] 3.16.74-rc1 review Guenter Roeck
2019-09-20 21:16   ` Ben Hutchings
2019-09-20 23:00     ` Guenter Roeck
2019-09-21  1:35     ` Guenter Roeck
2019-09-22 16:33       ` Ben Hutchings
2019-09-22 19:26     ` Miguel Ojeda
2019-11-19 14:58       ` Ben Hutchings
2019-11-19 20:40         ` 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=lsq.1568989415.454818804@decadent.org.uk \
    --to=ben@decadent.org.uk \
    --cc=akpm@linux-foundation.org \
    --cc=chunkeey@gmail.com \
    --cc=kda@linux-powerpc.org \
    --cc=kvalo@codeaurora.org \
    --cc=linux-kernel@vger.kernel.org \
    --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 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).