From: Ben Hutchings <ben@decadent.org.uk>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: akpm@linux-foundation.org,
"Michal Nazarewicz" <mina86@mina86.com>,
"Felipe Balbi" <felipe.balbi@linux.intel.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Alan Stern" <stern@rowland.harvard.edu>
Subject: [PATCH 3.16 038/204] USB: g_mass_storage: Fix deadlock when driver is unbound
Date: Thu, 28 Dec 2017 17:05:44 +0000 [thread overview]
Message-ID: <lsq.1514480744.572961542@decadent.org.uk> (raw)
In-Reply-To: <lsq.1514480743.579539031@decadent.org.uk>
3.16.52-rc1 review patch. If anyone has any objections, please let me know.
------------------
From: Alan Stern <stern@rowland.harvard.edu>
commit 1fbbb78f25d1291274f320462bf6908906f538db upstream.
As a holdover from the old g_file_storage gadget, the g_mass_storage
legacy gadget driver attempts to unregister itself when its main
operating thread terminates (if it hasn't been unregistered already).
This is not strictly necessary; it was never more than an attempt to
have the gadget fail cleanly if something went wrong and the main
thread was killed.
However, now that the UDC core manages gadget drivers independently of
UDC drivers, this scheme doesn't work any more. A simple test:
modprobe dummy-hcd
modprobe g-mass-storage file=...
rmmod dummy-hcd
ends up in a deadlock with the following backtrace:
sysrq: SysRq : Show Blocked State
task PC stack pid father
file-storage D 0 1130 2 0x00000000
Call Trace:
__schedule+0x53e/0x58c
schedule+0x6e/0x77
schedule_preempt_disabled+0xd/0xf
__mutex_lock.isra.1+0x129/0x224
? _raw_spin_unlock_irqrestore+0x12/0x14
__mutex_lock_slowpath+0x12/0x14
mutex_lock+0x28/0x2b
usb_gadget_unregister_driver+0x29/0x9b [udc_core]
usb_composite_unregister+0x10/0x12 [libcomposite]
msg_cleanup+0x1d/0x20 [g_mass_storage]
msg_thread_exits+0xd/0xdd7 [g_mass_storage]
fsg_main_thread+0x1395/0x13d6 [usb_f_mass_storage]
? __schedule+0x573/0x58c
kthread+0xd9/0xdb
? do_set_interface+0x25c/0x25c [usb_f_mass_storage]
? init_completion+0x1e/0x1e
ret_from_fork+0x19/0x24
rmmod D 0 1155 683 0x00000000
Call Trace:
__schedule+0x53e/0x58c
schedule+0x6e/0x77
schedule_timeout+0x26/0xbc
? __schedule+0x573/0x58c
do_wait_for_common+0xb3/0x128
? usleep_range+0x81/0x81
? wake_up_q+0x3f/0x3f
wait_for_common+0x2e/0x45
wait_for_completion+0x17/0x19
fsg_common_put+0x34/0x81 [usb_f_mass_storage]
fsg_free_inst+0x13/0x1e [usb_f_mass_storage]
usb_put_function_instance+0x1a/0x25 [libcomposite]
msg_unbind+0x2a/0x42 [g_mass_storage]
__composite_unbind+0x4a/0x6f [libcomposite]
composite_unbind+0x12/0x14 [libcomposite]
usb_gadget_remove_driver+0x4f/0x77 [udc_core]
usb_del_gadget_udc+0x52/0xcc [udc_core]
dummy_udc_remove+0x27/0x2c [dummy_hcd]
platform_drv_remove+0x1d/0x31
device_release_driver_internal+0xe9/0x16d
device_release_driver+0x11/0x13
bus_remove_device+0xd2/0xe2
device_del+0x19f/0x221
? selinux_capable+0x22/0x27
platform_device_del+0x21/0x63
platform_device_unregister+0x10/0x1a
cleanup+0x20/0x817 [dummy_hcd]
SyS_delete_module+0x10c/0x197
? ____fput+0xd/0xf
? task_work_run+0x55/0x62
? prepare_exit_to_usermode+0x65/0x75
do_fast_syscall_32+0x86/0xc3
entry_SYSENTER_32+0x4e/0x7c
What happens is that removing the dummy-hcd driver causes the UDC core
to unbind the gadget driver, which it does while holding the udc_lock
mutex. The unbind routine in g_mass_storage tells the main thread to
exit and waits for it to terminate.
But as mentioned above, when the main thread exits it tries to
unregister the mass-storage function driver. Via the composite
framework this ends up calling usb_gadget_unregister_driver(), which
tries to acquire the udc_lock mutex. The result is deadlock.
The simplest way to fix the problem is not to be so clever: The main
thread doesn't have to unregister the function driver. The side
effects won't be so terrible; if the gadget is still attached to a USB
host when the main thread is killed, it will appear to the host as
though the gadget's firmware has crashed -- a reasonably accurate
interpretation, and an all-too-common occurrence for USB mass-storage
devices.
In fact, the code to unregister the driver when the main thread exits
is specific to g-mass-storage; it is not used when f-mass-storage is
included as a function in a larger composite device. Therefore the
entire mechanism responsible for this (the fsg_operations structure
with its ->thread_exits method, the fsg_common_set_ops() routine, and
the msg_thread_exits() callback routine) can all be eliminated. Even
the msg_registered bitflag can be removed, because now the driver is
unregistered in only one place rather than in two places.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[bwh: Backported to 3.16:
- Preserve the old way of iterating over LUNs in fsg_main_thread() cleanup
- Adjust filename, context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
--- a/drivers/usb/gadget/f_mass_storage.c
+++ b/drivers/usb/gadget/f_mass_storage.c
@@ -307,8 +307,6 @@ struct fsg_common {
struct completion thread_notifier;
struct task_struct *thread_task;
- /* Callback functions. */
- const struct fsg_operations *ops;
/* Gadget's private data. */
void *private_data;
@@ -2498,6 +2496,8 @@ static void handle_exception(struct fsg_
static int fsg_main_thread(void *common_)
{
struct fsg_common *common = common_;
+ struct fsg_lun **curlun_it;
+ unsigned i;
/*
* Allow the thread to be killed by a signal, but set the signal mask
@@ -2559,22 +2559,18 @@ static int fsg_main_thread(void *common_
common->thread_task = NULL;
spin_unlock_irq(&common->lock);
- if (!common->ops || !common->ops->thread_exits
- || common->ops->thread_exits(common) < 0) {
- struct fsg_lun **curlun_it = common->luns;
- unsigned i = common->nluns;
-
- down_write(&common->filesem);
- for (; i--; ++curlun_it) {
- struct fsg_lun *curlun = *curlun_it;
- if (!curlun || !fsg_lun_is_open(curlun))
- continue;
+ /* Eject media from all LUNs */
+ curlun_it = common->luns;
+ i = common->nluns;
+
+ down_write(&common->filesem);
+ for (; i--; ++curlun_it) {
+ struct fsg_lun *curlun = *curlun_it;
+ if (curlun && fsg_lun_is_open(curlun))
fsg_lun_close(curlun);
- curlun->unit_attention_data = SS_MEDIUM_NOT_PRESENT;
- }
- up_write(&common->filesem);
}
+ up_write(&common->filesem);
/* Let fsg_unbind() know the thread has exited */
complete_and_exit(&common->thread_notifier, 0);
@@ -2842,13 +2838,6 @@ int fsg_common_set_nluns(struct fsg_comm
}
EXPORT_SYMBOL_GPL(fsg_common_set_nluns);
-void fsg_common_set_ops(struct fsg_common *common,
- const struct fsg_operations *ops)
-{
- common->ops = ops;
-}
-EXPORT_SYMBOL_GPL(fsg_common_set_ops);
-
void fsg_common_free_buffers(struct fsg_common *common)
{
_fsg_common_free_buffers(common->buffhds, common->fsg_num_buffers);
--- a/drivers/usb/gadget/f_mass_storage.h
+++ b/drivers/usb/gadget/f_mass_storage.h
@@ -60,17 +60,6 @@ struct fsg_module_parameters {
struct fsg_common;
/* FSF callback functions */
-struct fsg_operations {
- /*
- * Callback function to call when thread exits. If no
- * callback is set or it returns value lower then zero MSF
- * will force eject all LUNs it operates on (including those
- * marked as non-removable or with prevent_medium_removal flag
- * set).
- */
- int (*thread_exits)(struct fsg_common *common);
-};
-
struct fsg_lun_opts {
struct config_group group;
struct fsg_lun *lun;
@@ -145,9 +134,6 @@ void fsg_common_free_luns(struct fsg_com
int fsg_common_set_nluns(struct fsg_common *common, int nluns);
-void fsg_common_set_ops(struct fsg_common *common,
- const struct fsg_operations *ops);
-
int fsg_common_create_lun(struct fsg_common *common, struct fsg_lun_config *cfg,
unsigned int id, const char *name,
const char **name_pfx);
--- a/drivers/usb/gadget/mass_storage.c
+++ b/drivers/usb/gadget/mass_storage.c
@@ -121,15 +121,6 @@ static unsigned int fsg_num_buffers = CO
FSG_MODULE_PARAMETERS(/* no prefix */, mod_data);
-static unsigned long msg_registered;
-static void msg_cleanup(void);
-
-static int msg_thread_exits(struct fsg_common *common)
-{
- msg_cleanup();
- return 0;
-}
-
static int __init msg_do_config(struct usb_configuration *c)
{
struct fsg_opts *opts;
@@ -172,9 +163,6 @@ static struct usb_configuration msg_conf
static int __init msg_bind(struct usb_composite_dev *cdev)
{
- static const struct fsg_operations ops = {
- .thread_exits = msg_thread_exits,
- };
struct fsg_opts *opts;
struct fsg_config config;
int status;
@@ -195,8 +183,6 @@ static int __init msg_bind(struct usb_co
if (status)
goto fail_set_nluns;
- fsg_common_set_ops(opts->common, &ops);
-
status = fsg_common_set_cdev(opts->common, cdev, config.can_stall);
if (status)
goto fail_set_cdev;
@@ -221,7 +207,6 @@ static int __init msg_bind(struct usb_co
usb_composite_overwrite_options(cdev, &coverwrite);
dev_info(&cdev->gadget->dev,
DRIVER_DESC ", version: " DRIVER_VERSION "\n");
- set_bit(0, &msg_registered);
return 0;
fail_string_ids:
@@ -268,9 +253,8 @@ static int __init msg_init(void)
}
module_init(msg_init);
-static void msg_cleanup(void)
+static void __exit msg_cleanup(void)
{
- if (test_and_clear_bit(0, &msg_registered))
- usb_composite_unregister(&msg_driver);
+ usb_composite_unregister(&msg_driver);
}
module_exit(msg_cleanup);
next prev parent reply other threads:[~2017-12-28 17:33 UTC|newest]
Thread overview: 207+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-28 17:05 [PATCH 3.16 000/204] 3.16.52-rc1 review Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 070/204] usb: renesas_usbhs: fix usbhsf_fifo_clear() for RX direction Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 024/204] crypto: talitos - fix sha224 Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 081/204] ALSA: usx2y: Suppress kernel warning at page allocation failures Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 171/204] ALSA: timer: Limit max instances per timer Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 198/204] exec: Ensure mm->user_ns contains the execed files Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 131/204] sctp: add the missing sock_owned_by_user check in sctp_icmp_redirect Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 052/204] IB/mlx5: Fix the size parameter to find_first_bit Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 160/204] KEYS: trusted: sanitize all key material Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 110/204] FS-Cache: fix dereference of NULL user_key_payload Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 137/204] ipsec: Fix aborted xfrm policy dump crash Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 008/204] USB: serial: ftdi_sio: add id for Cypress WICED dev board Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 077/204] udp: perform source validation for mcast early demux Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 128/204] usb: hub: Allow reset retry for USB2 devices on connect bounce Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 113/204] iommu/amd: Finish TLB flush in amd_iommu_unmap() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 121/204] usb: xhci: Handle error condition in xhci_stop_device() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 152/204] ALSA: timer: Add missing mutex lock for compat ioctls Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 005/204] HID: i2c-hid: allocate hid buffers for real worst case Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 119/204] tun: call dev_get_valid_name() before register_netdevice() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 151/204] l2tp: hold tunnel in pppol2tp_connect() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 190/204] netfilter: xt_osf: Add missing permission checks Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 153/204] ALSA: seq: Fix nested rwsem annotation for lockdep splat Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 191/204] USB: core: prevent malicious bNumInterfaces overflow Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 002/204] ASoC: adau17x1: Workaround for noise bug in ADC Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 011/204] uwb: properly check kthread_run return value Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 045/204] staging: iio: ad7192: Fix - use the dedicated reset function avoiding dma from stack Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 043/204] iio: ad7793: Fix the serial interface reset Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 014/204] usb: pci-quirks.c: Corrected timeout values used in handshake Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 201/204] KVM: Fix stack-out-of-bounds read in write_mmio Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 172/204] ARM: 8720/1: ensure dump_instr() checks addr_limit Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 148/204] sctp: fix a type cast warnings that causes a_rwnd gets the wrong value Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 099/204] direct-io: Prevent NULL pointer access in submit_page_section Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 170/204] ALSA: timer: Protect the whole snd_timer_close() with open race Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 047/204] KEYS: don't revoke uninstantiated key in request_key_auth_new() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 015/204] ip6_gre: skb_push ipv6hdr before packing the header in ip6gre_header Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 060/204] l2tp: fix race condition in l2tp_tunnel_delete Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 182/204] sched/topology: Simplify build_overlap_sched_groups() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 021/204] tcp: fastopen: fix on syn-data transmit failure Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 044/204] iio: core: Return error for failed read_reg Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 114/204] include/linux/of.h: provide of_n_{addr,size}_cells wrappers for !CONFIG_OF Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 112/204] ecryptfs: fix dereference of NULL user_key_payload Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 065/204] USB: dummy-hcd: fix connection failures (wrong speed) Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 126/204] Input: ti_am335x_tsc - fix incorrect step config for 5 wire touchscreen Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 169/204] l2tp: don't use l2tp_tunnel_find() in l2tp_ip and l2tp_ip6 Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 023/204] ARM: dts: da850-evm: add serial and ethernet aliases Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 106/204] iommu/exynos: Remove initconst attribute to avoid potential kernel oops Ben Hutchings
2017-12-28 17:05 ` Ben Hutchings [this message]
2017-12-28 17:05 ` [PATCH 3.16 146/204] ip6_gre: Reduce log level in ip6gre_err() to debug Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 162/204] KEYS: fix out-of-bounds read during ASN.1 parsing Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 150/204] workqueue: Fix NULL pointer dereference Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 041/204] iio: adc: mcp320x: Fix oops on module unload Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 017/204] gpio: acpi: work around false-positive -Wstring-overflow warning Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 178/204] rbd: use GFP_NOIO for parent stat and data requests Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 173/204] ALSA: seq: Avoid invalid lockdep class warning Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 053/204] IB/mlx5: Simplify mlx5_ib_cont_pages Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 018/204] USB: serial: cp210x: add support for ELV TFD500 Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 039/204] IB/ocrdma: fix incorrect fall-through on switch statement Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 149/204] x86/uaccess, sched/preempt: Verify access_ok() context Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 040/204] SMB3: Don't ignore O_SYNC/O_DSYNC and O_DIRECT flags Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 155/204] MIPS: microMIPS: Fix incorrect mask in insn_table_MM Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 177/204] MIPS: AR7: Ensure that serial ports are properly set up Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 139/204] can: kvaser_usb: Correct return value in printout Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 064/204] Revert "IB/ipoib: Update broadcast object if PKey value was changed in index 0" Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 167/204] l2tp: hold socket before dropping lock in l2tp_ip{, 6}_recv() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 159/204] KEYS: return full count in keyring_read() if buffer is too small Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 059/204] vti: fix use after free in vti_tunnel_xmit/vti6_tnl_xmit Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 025/204] crypto: talitos - Don't provide setkey for non hmac hashing algs Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 165/204] ocfs2: fstrim: Fix start offset of first cluster group during fstrim Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 134/204] x86, amd_nb: Add device IDs to NB tables for F15h M60h Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 072/204] sched/sysctl: Check user input value of sysctl_sched_time_avg Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 200/204] ptrace: Properly initialize ptracer_cred on fork Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 104/204] ALSA: caiaq: Fix stray URB at probe error path Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 055/204] PCI: Fix race condition with driver_override Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 049/204] KEYS: fix key refcount leak in keyctl_read_key() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 195/204] ptrace: change __ptrace_unlink() to clear ->ptrace under ->siglock Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 204/204] KEYS: add missing permission check for request_key() destination Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 022/204] powerpc/sysrq: Fix oops whem ppmu is not registered Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 136/204] x86/cpu/AMD: Apply the Erratum 688 fix when the BIOS doesn't Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 147/204] ip6_gre: only increase err_count for some certain type icmpv6 in ip6gre_err Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 093/204] nl80211: Define policy for packet pattern attributes Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 130/204] can: gs_usb: fix busy loop if no more TX context is available Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 062/204] vfs: Return -ENXIO for negative SEEK_HOLE / SEEK_DATA offsets Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 063/204] arm64: Make sure SPsel is always set Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 001/204] tile: array underflow in setup_maxnodemem() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 157/204] tun/tap: sanitize TUNSETSNDBUF input Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 061/204] netfilter: ipset: pernet ops must be unregistered last Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 082/204] scsi: sd: Implement blacklist option for WRITE SAME w/ UNMAP Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 085/204] sh: sh7722: remove nonexistent GPIO_PTQ7 to fix pinctrl registration Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 028/204] cifs: release auth_key.response for reconnect Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 161/204] KEYS: trusted: fix writing past end of buffer in trusted_read() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 054/204] security/keys: properly zero out sensitive key material in big_key Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 042/204] iio: ad_sigma_delta: Implement a dedicated reset function Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 058/204] drm/i915/bios: ignore HDMI on port A Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 069/204] usb: renesas_usbhs: fix the BCLR setting condition for non-DCP pipe Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 084/204] kernel/params.c: align add_sysfs_param documentation with code Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 019/204] tracing: Erase irqsoff trace with empty write Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 105/204] scsi: libiscsi: fix shifting of DID_REQUEUE host byte Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 100/204] more bio_map_user_iov() leak fixes Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 133/204] pci_ids: Add PCI device IDs for F15h M60h Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 109/204] KEYS: encrypted: fix dereference of NULL user_key_payload Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 066/204] USB: dummy-hcd: fix infinite-loop resubmission bug Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 103/204] usb: gadget: composite: Fix use-after-free in usb_composite_overwrite_options Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 132/204] arm/arm64: KVM: set right LR register value for 32 bit guest when inject abort Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 086/204] sh: sh7757: remove nonexistent GPIO_PT[JLNQ]7_RESV to fix pinctrl registration Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 035/204] usb-storage: unusual_devs entry to fix write-access regression for Seagate external drives Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 095/204] ALSA: seq: Fix copy_from_user() call inside lock Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 091/204] Smack: remove unneeded NULL-termination from securtity label Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 163/204] arm64: fix dump_instr when PAN and UAO are in use Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 142/204] SMB: fix validate negotiate info uninitialised memory use Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 090/204] mm/memory_hotplug: define find_{smallest|biggest}_section_pfn as unsigned long Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 156/204] macvtap: fix TUNSETSNDBUF values > 64k Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 202/204] crypto: salsa20 - fix blkcipher_walk API usage Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 188/204] netfilter: nfnetlink_cthelper: Add missing permission checks Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 080/204] brcmfmac: Add check for short event packets Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 138/204] ARM: 8715/1: add a private asm/unaligned.h Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 145/204] SMB3: Validate negotiate request must always be signed Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 166/204] netfilter/ipvs: clear ipvs_property flag when SKB net namespace changed Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 034/204] usb-storage: fix bogus hardware error messages for ATA pass-thru devices Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 123/204] usb: quirks: add quirk for WORLDE MINI MIDI keyboard Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 184/204] dccp: CVE-2017-8824: use-after-free in DCCP code Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 185/204] Bluetooth: cmtp: cmtp_add_connection() should verify that it's dealing with l2cap socket Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 057/204] btrfs: prevent to set invalid default subvolid Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 073/204] arm64: fault: Route pte translation faults via do_translation_fault Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 010/204] uwb: ensure that endpoint is interrupt Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 115/204] fs/mpage.c: fix mpage_writepage() for pages with buffers Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 031/204] net_sched: always reset qdisc backlog in qdisc_reset() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 094/204] netfilter: x_tables: avoid stack-out-of-bounds read in xt_copy_counters_from_user Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 124/204] ALSA: hda: Remove superfluous '-' added by printk conversion Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 032/204] Input: uinput - avoid FF flush when destroying device Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 199/204] ptrace: Don't allow accessing an undumpable mm Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 192/204] mm, thp: Do not make page table dirty unconditionally in touch_p[mu]d() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 197/204] ptrace: Capture the ptracer's creds not PT_PTRACE_CAP Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 030/204] powerpc/pseries: Fix parent_dn reference leak in add_dt_node() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 122/204] usb: cdc_acm: Add quirk for Elatec TWN3 Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 013/204] xhci: fix finding correct bus_state structure for USB 3.1 hosts Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 003/204] iwlwifi: mvm: use IWL_HCMD_NOCOPY for MCAST_FILTER_CMD Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 108/204] bus: mbus: fix window size calculation for 4GB windows Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 048/204] KEYS: fix key refcount leak in keyctl_assume_authority() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 164/204] arm64: ensure __dump_instr() checks addr_limit Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 079/204] brcmfmac: Add length checks on firmware events Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 007/204] scsi: lpfc: Don't return internal MBXERR_ERROR code from probe function Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 004/204] cifs: check rsp for NULL before dereferencing in SMB2_open Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 096/204] udp: fix bcast packet reception Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 179/204] can: c_can: don't indicate triple sampling support for D_CAN Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 036/204] USB: gadgetfs: fix copy_to_user while holding spinlock Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 068/204] USB: dummy-hcd: Fix erroneous synchronization change Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 076/204] IPv4: early demux can return an error code Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 127/204] parisc: Fix double-word compare and exchange in LWS code on 32-bit kernels Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 107/204] KVM: nVMX: fix guest CR4 loading when emulating L2 to L1 exit Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 026/204] usb: gadget: dummy: fix nonsensical comparisons Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 181/204] sched/topology: Remove FORCE_SD_OVERLAP Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 102/204] usb: renesas_usbhs: Fix DMAC sequence for receiving zero-length packet Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 203/204] crypto: hmac - require that the underlying hash algorithm is unkeyed Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 050/204] KEYS: fix writing past end of user-supplied buffer in keyring_read() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 144/204] xfrm: Clear sk_dst_cache when applying per-socket policy Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 120/204] scsi: zfcp: fix erp_action use-before-initialize in REC action trace Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 087/204] sh: sh7264: remove nonexistent GPIO_PH[0-7] to fix pinctrl registration Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 158/204] tcp: fix tcp_mtu_probe() vs highest_sack Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 135/204] x86/amd_nb: Add Fam17h Data Fabric as "Northbridge" Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 006/204] spi: uapi: spidev: add missing ioctl header Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 194/204] security: let security modules use PTRACE_MODE_* with bitmasks Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 027/204] cifs: release cifs root_cred after exit_cifs Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 067/204] USB: gadgetfs, dummy-hcd, net2280: fix locking for callbacks Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 118/204] net: enable interface alias removal via rtnl Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 189/204] netlink: Add netns check on taps Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 078/204] l2tp: fix l2tp_eth module loading Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 033/204] Input: uinput - avoid crash when sending FF request to device going away Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 016/204] s390/mm: fix write access check in gup_huge_pmd() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 046/204] KEYS: fix cred refcount leak in request_key_auth_new() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 140/204] fuse: fix READDIRPLUS skipping an entry Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 009/204] USB: serial: option: add support for TP-Link LTE module Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 056/204] Btrfs: fix incorrect {node,sector}size endianness from BTRFS_IOC_FS_INFO Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 125/204] x86/microcode/intel: Disable late loading on model 79 Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 176/204] KEYS: fix NULL pointer dereference during ASN.1 parsing [ver #2] Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 074/204] staging: iio: ade7759: fix signed extension bug on shift of a u8 Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 029/204] SMB: Validate negotiate (to protect against downgrade) even if signing off Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 020/204] tracing: Fix trace_pipe behavior for instance traces Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 098/204] crypto: shash - Fix zero-length shash ahash digest crash Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 075/204] ipv4: fix broadcast packets reception Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 143/204] net/unix: don't show information about sockets from other namespaces Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 037/204] USB: gadgetfs: Fix crash caused by inadequate synchronization Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 117/204] USB: serial: metro-usb: add MS7820 device id Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 116/204] l2tp: check ps->sock before running pppol2tp_session_ioctl() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 097/204] workqueue: replace pool->manager_arb mutex with a flag Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 129/204] can: esd_usb2: Fix can_dlc value for received RTR, frames Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 175/204] x86/oprofile/ppro: Do not use __this_cpu*() in preemptible context Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 083/204] USB: serial: qcserial: add Dell DW5818, DW5819 Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 187/204] Input: ims-psu - check if CDC union descriptor is sane Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 101/204] USB: dummy-hcd: Fix deadlock caused by disconnect detection Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 186/204] Bluetooth: bnep: bnep_add_connection() should verify that it's dealing with l2cap socket Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 071/204] packet: only test po->has_vnet_hdr once in packet_snd Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 051/204] KEYS: prevent creating a different user's keyrings Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 012/204] usb: Increase quirk delay for USB devices Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 141/204] SMB: fix leak of validate negotiate info response buffer Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 088/204] sh: sh7269: remove nonexistent GPIO_PH[0-7] to fix pinctrl registration Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 180/204] vlan: fix a use-after-free in vlan_device_event() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 168/204] l2tp: hold tunnel socket when handling control frames in l2tp_ip and l2tp_ip6 Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 111/204] lib/digsig: fix dereference of NULL user_key_payload Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 196/204] mm: Add a user_ns owner to mm_struct and fix ptrace permission checks Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 089/204] mm/memory_hotplug: change pfn_to_section_nr/section_nr_to_pfn macro to inline function Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 183/204] sched/topology: Optimize build_group_mask() Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 154/204] MIPS: Fix CM region target definitions Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 193/204] KVM: VMX: remove I/O port 0x80 bypass on Intel hosts Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 092/204] lsm: fix smack_inode_removexattr and xattr_getsecurity memleak Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 174/204] ALSA: seq: Fix OSS sysex delivery in OSS emulation Ben Hutchings
2017-12-28 19:25 ` [PATCH 3.16 000/204] 3.16.52-rc1 review Guenter Roeck
2017-12-28 21:08 ` Ben Hutchings
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.1514480744.572961542@decadent.org.uk \
--to=ben@decadent.org.uk \
--cc=akpm@linux-foundation.org \
--cc=felipe.balbi@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mina86@mina86.com \
--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
Powered by JetHome