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,
	"Lai Jiangshan" <jiangshanlai@gmail.com>,
	"Josef Bacik" <josef@toxicpanda.com>,
	"Peter Zijlstra" <peterz@infradead.org>,
	"Boqun Feng" <boqun.feng@gmail.com>, "Tejun Heo" <tj@kernel.org>
Subject: [PATCH 3.16 097/204] workqueue: replace pool->manager_arb mutex with a flag
Date: Thu, 28 Dec 2017 17:05:44 +0000	[thread overview]
Message-ID: <lsq.1514480744.711144614@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: Tejun Heo <tj@kernel.org>

commit 692b48258dda7c302e777d7d5f4217244478f1f6 upstream.

Josef reported a HARDIRQ-safe -> HARDIRQ-unsafe lock order detected by
lockdep:

 [ 1270.472259] WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected
 [ 1270.472783] 4.14.0-rc1-xfstests-12888-g76833e8 #110 Not tainted
 [ 1270.473240] -----------------------------------------------------
 [ 1270.473710] kworker/u5:2/5157 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
 [ 1270.474239]  (&(&lock->wait_lock)->rlock){+.+.}, at: [<ffffffff8da253d2>] __mutex_unlock_slowpath+0xa2/0x280
 [ 1270.474994]
 [ 1270.474994] and this task is already holding:
 [ 1270.475440]  (&pool->lock/1){-.-.}, at: [<ffffffff8d2992f6>] worker_thread+0x366/0x3c0
 [ 1270.476046] which would create a new lock dependency:
 [ 1270.476436]  (&pool->lock/1){-.-.} -> (&(&lock->wait_lock)->rlock){+.+.}
 [ 1270.476949]
 [ 1270.476949] but this new dependency connects a HARDIRQ-irq-safe lock:
 [ 1270.477553]  (&pool->lock/1){-.-.}
 ...
 [ 1270.488900] to a HARDIRQ-irq-unsafe lock:
 [ 1270.489327]  (&(&lock->wait_lock)->rlock){+.+.}
 ...
 [ 1270.494735]  Possible interrupt unsafe locking scenario:
 [ 1270.494735]
 [ 1270.495250]        CPU0                    CPU1
 [ 1270.495600]        ----                    ----
 [ 1270.495947]   lock(&(&lock->wait_lock)->rlock);
 [ 1270.496295]                                local_irq_disable();
 [ 1270.496753]                                lock(&pool->lock/1);
 [ 1270.497205]                                lock(&(&lock->wait_lock)->rlock);
 [ 1270.497744]   <Interrupt>
 [ 1270.497948]     lock(&pool->lock/1);

, which will cause a irq inversion deadlock if the above lock scenario
happens.

The root cause of this safe -> unsafe lock order is the
mutex_unlock(pool->manager_arb) in manage_workers() with pool->lock
held.

Unlocking mutex while holding an irq spinlock was never safe and this
problem has been around forever but it never got noticed because the
only time the mutex is usually trylocked while holding irqlock making
actual failures very unlikely and lockdep annotation missed the
condition until the recent b9c16a0e1f73 ("locking/mutex: Fix
lockdep_assert_held() fail").

Using mutex for pool->manager_arb has always been a bit of stretch.
It primarily is an mechanism to arbitrate managership between workers
which can easily be done with a pool flag.  The only reason it became
a mutex is that pool destruction path wants to exclude parallel
managing operations.

This patch replaces the mutex with a new pool flag POOL_MANAGER_ACTIVE
and make the destruction path wait for the current manager on a wait
queue.

v2: Drop unnecessary flag clearing before pool destruction as
    suggested by Boqun.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Lai Jiangshan <jiangshanlai@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Boqun Feng <boqun.feng@gmail.com>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
 kernel/workqueue.c | 37 +++++++++++++++----------------------
 1 file changed, 15 insertions(+), 22 deletions(-)

--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -68,6 +68,7 @@ enum {
 	 * attach_mutex to avoid changing binding state while
 	 * worker_attach_to_pool() is in progress.
 	 */
+	POOL_MANAGER_ACTIVE	= 1 << 0,	/* being managed */
 	POOL_DISASSOCIATED	= 1 << 2,	/* cpu can't serve workers */
 
 	/* worker flags */
@@ -158,7 +159,6 @@ struct worker_pool {
 						/* L: hash of busy workers */
 
 	/* see manage_workers() for details on the two manager mutexes */
-	struct mutex		manager_arb;	/* manager arbitration */
 	struct mutex		attach_mutex;	/* attach/detach exclusion */
 	struct list_head	workers;	/* A: attached workers */
 	struct completion	*detach_completion; /* all workers detached */
@@ -288,6 +288,7 @@ static struct workqueue_attrs *wq_update
 
 static DEFINE_MUTEX(wq_pool_mutex);	/* protects pools and workqueues list */
 static DEFINE_SPINLOCK(wq_mayday_lock);	/* protects wq->maydays list */
+static DECLARE_WAIT_QUEUE_HEAD(wq_manager_wait); /* wait for manager to go away */
 
 static LIST_HEAD(workqueues);		/* PL: list of all workqueues */
 static bool workqueue_freezing;		/* PL: have wqs started freezing? */
@@ -793,7 +794,7 @@ static bool need_to_create_worker(struct
 /* Do we have too many workers and should some go away? */
 static bool too_many_workers(struct worker_pool *pool)
 {
-	bool managing = mutex_is_locked(&pool->manager_arb);
+	bool managing = pool->flags & POOL_MANAGER_ACTIVE;
 	int nr_idle = pool->nr_idle + managing; /* manager is considered idle */
 	int nr_busy = pool->nr_workers - nr_idle;
 
@@ -1996,22 +1997,15 @@ static bool manage_workers(struct worker
 {
 	struct worker_pool *pool = worker->pool;
 
-	/*
-	 * Anyone who successfully grabs manager_arb wins the arbitration
-	 * and becomes the manager.  mutex_trylock() on pool->manager_arb
-	 * failure while holding pool->lock reliably indicates that someone
-	 * else is managing the pool and the worker which failed trylock
-	 * can proceed to executing work items.  This means that anyone
-	 * grabbing manager_arb is responsible for actually performing
-	 * manager duties.  If manager_arb is grabbed and released without
-	 * actual management, the pool may stall indefinitely.
-	 */
-	if (!mutex_trylock(&pool->manager_arb))
+	if (pool->flags & POOL_MANAGER_ACTIVE)
 		return false;
 
+	pool->flags |= POOL_MANAGER_ACTIVE;
+
 	maybe_create_worker(pool);
 
-	mutex_unlock(&pool->manager_arb);
+	pool->flags &= ~POOL_MANAGER_ACTIVE;
+	wake_up(&wq_manager_wait);
 	return true;
 }
 
@@ -3490,7 +3484,6 @@ static int init_worker_pool(struct worke
 	setup_timer(&pool->mayday_timer, pool_mayday_timeout,
 		    (unsigned long)pool);
 
-	mutex_init(&pool->manager_arb);
 	mutex_init(&pool->attach_mutex);
 	INIT_LIST_HEAD(&pool->workers);
 
@@ -3546,13 +3539,15 @@ static void put_unbound_pool(struct work
 	hash_del(&pool->hash_node);
 
 	/*
-	 * Become the manager and destroy all workers.  Grabbing
-	 * manager_arb prevents @pool's workers from blocking on
-	 * attach_mutex.
+	 * Become the manager and destroy all workers.  This prevents
+	 * @pool's workers from blocking on attach_mutex.  We're the last
+	 * manager and @pool gets freed with the flag set.
 	 */
-	mutex_lock(&pool->manager_arb);
-
 	spin_lock_irq(&pool->lock);
+	wait_event_lock_irq(wq_manager_wait,
+			    !(pool->flags & POOL_MANAGER_ACTIVE), pool->lock);
+	pool->flags |= POOL_MANAGER_ACTIVE;
+
 	while ((worker = first_idle_worker(pool)))
 		destroy_worker(worker);
 	WARN_ON(pool->nr_workers || pool->nr_idle);
@@ -3566,8 +3561,6 @@ static void put_unbound_pool(struct work
 	if (pool->detach_completion)
 		wait_for_completion(pool->detach_completion);
 
-	mutex_unlock(&pool->manager_arb);
-
 	/* shut down the timers */
 	del_timer_sync(&pool->idle_timer);
 	del_timer_sync(&pool->mayday_timer);

  parent reply	other threads:[~2017-12-28 17:13 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 050/204] KEYS: fix writing past end of user-supplied buffer in keyring_read() 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 079/204] brcmfmac: Add length checks on firmware events 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 078/204] l2tp: fix l2tp_eth module loading 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 118/204] net: enable interface alias removal via rtnl 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 170/204] ALSA: timer: Protect the whole snd_timer_close() with open race 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 018/204] USB: serial: cp210x: add support for ELV TFD500 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 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 004/204] cifs: check rsp for NULL before dereferencing in SMB2_open 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 145/204] SMB3: Validate negotiate request must always be signed 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 027/204] cifs: release cifs root_cred after exit_cifs 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 121/204] usb: xhci: Handle error condition in xhci_stop_device() 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 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 044/204] iio: core: Return error for failed read_reg 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 087/204] sh: sh7264: remove nonexistent GPIO_PH[0-7] to fix pinctrl registration 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 134/204] x86, amd_nb: Add device IDs to NB tables for F15h M60h 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 120/204] scsi: zfcp: fix erp_action use-before-initialize in REC action trace 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 049/204] KEYS: fix key refcount leak in keyctl_read_key() 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 183/204] sched/topology: Optimize build_group_mask() 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 135/204] x86/amd_nb: Add Fam17h Data Fabric as "Northbridge" 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 126/204] Input: ti_am335x_tsc - fix incorrect step config for 5 wire touchscreen 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 007/204] scsi: lpfc: Don't return internal MBXERR_ERROR code from probe function 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 023/204] ARM: dts: da850-evm: add serial and ethernet aliases 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 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 077/204] udp: perform source validation for mcast early demux 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 090/204] mm/memory_hotplug: define find_{smallest|biggest}_section_pfn as unsigned long 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 029/204] SMB: Validate negotiate (to protect against downgrade) even if signing off 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 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 163/204] arm64: fix dump_instr when PAN and UAO are in use 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 093/204] nl80211: Define policy for packet pattern attributes 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 069/204] usb: renesas_usbhs: fix the BCLR setting condition for non-DCP pipe 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 197/204] ptrace: Capture the ptracer's creds not PT_PTRACE_CAP 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 096/204] udp: fix bcast packet reception 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 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 153/204] ALSA: seq: Fix nested rwsem annotation for lockdep splat 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 052/204] IB/mlx5: Fix the size parameter to find_first_bit 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 139/204] can: kvaser_usb: Correct return value in printout 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 011/204] uwb: properly check kthread_run return value 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 108/204] bus: mbus: fix window size calculation for 4GB windows 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 149/204] x86/uaccess, sched/preempt: Verify access_ok() context 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 074/204] staging: iio: ade7759: fix signed extension bug on shift of a u8 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 119/204] tun: call dev_get_valid_name() before register_netdevice() 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 187/204] Input: ims-psu - check if CDC union descriptor is sane 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 076/204] IPv4: early demux can return an error code 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 073/204] arm64: fault: Route pte translation faults via do_translation_fault 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 053/204] IB/mlx5: Simplify mlx5_ib_cont_pages 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 047/204] KEYS: don't revoke uninstantiated key in request_key_auth_new() 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 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 085/204] sh: sh7722: remove nonexistent GPIO_PTQ7 to fix pinctrl registration 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 159/204] KEYS: return full count in keyring_read() if buffer is too small 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 021/204] tcp: fastopen: fix on syn-data transmit failure 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 123/204] usb: quirks: add quirk for WORLDE MINI MIDI keyboard 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 167/204] l2tp: hold socket before dropping lock in l2tp_ip{, 6}_recv() 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 181/204] sched/topology: Remove FORCE_SD_OVERLAP 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 083/204] USB: serial: qcserial: add Dell DW5818, DW5819 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 194/204] security: let security modules use PTRACE_MODE_* with bitmasks 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 057/204] btrfs: prevent to set invalid default subvolid 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 177/204] MIPS: AR7: Ensure that serial ports are properly set up 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 129/204] can: esd_usb2: Fix can_dlc value for received RTR, frames 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 056/204] Btrfs: fix incorrect {node,sector}size endianness from BTRFS_IOC_FS_INFO 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 189/204] netlink: Add netns check on taps 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 ` Ben Hutchings [this message]
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 125/204] x86/microcode/intel: Disable late loading on model 79 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 142/204] SMB: fix validate negotiate info uninitialised memory use 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 152/204] ALSA: timer: Add missing mutex lock for compat ioctls 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 036/204] USB: gadgetfs: fix copy_to_user while holding spinlock 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 101/204] USB: dummy-hcd: Fix deadlock caused by disconnect detection 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 075/204] ipv4: fix broadcast packets reception 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 180/204] vlan: fix a use-after-free in vlan_device_event() 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 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 106/204] iommu/exynos: Remove initconst attribute to avoid potential kernel oops 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 154/204] MIPS: Fix CM region target definitions 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 008/204] USB: serial: ftdi_sio: add id for Cypress WICED dev board 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 048/204] KEYS: fix key refcount leak in keyctl_assume_authority() 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 165/204] ocfs2: fstrim: Fix start offset of first cluster group during fstrim 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 043/204] iio: ad7793: Fix the serial interface reset 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 146/204] ip6_gre: Reduce log level in ip6gre_err() to debug 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 062/204] vfs: Return -ENXIO for negative SEEK_HOLE / SEEK_DATA offsets Ben Hutchings
2017-12-28 17:05 ` [PATCH 3.16 038/204] USB: g_mass_storage: Fix deadlock when driver is unbound 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 112/204] ecryptfs: fix dereference of NULL user_key_payload 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 117/204] USB: serial: metro-usb: add MS7820 device id 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 155/204] MIPS: microMIPS: Fix incorrect mask in insn_table_MM 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 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 046/204] KEYS: fix cred refcount leak in request_key_auth_new() 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 172/204] ARM: 8720/1: ensure dump_instr() checks addr_limit 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 113/204] iommu/amd: Finish TLB flush in amd_iommu_unmap() 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 092/204] lsm: fix smack_inode_removexattr and xattr_getsecurity memleak 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 026/204] usb: gadget: dummy: fix nonsensical comparisons 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 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 015/204] ip6_gre: skb_push ipv6hdr before packing the header in ip6gre_header 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 105/204] scsi: libiscsi: fix shifting of DID_REQUEUE host byte 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 158/204] tcp: fix tcp_mtu_probe() vs highest_sack 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 063/204] arm64: Make sure SPsel is always set 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 095/204] ALSA: seq: Fix copy_from_user() call inside lock 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 160/204] KEYS: trusted: sanitize all key material 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 006/204] spi: uapi: spidev: add missing ioctl header 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 164/204] arm64: ensure __dump_instr() checks addr_limit 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 111/204] lib/digsig: fix dereference of NULL user_key_payload 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 110/204] FS-Cache: fix dereference of NULL user_key_payload 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 024/204] crypto: talitos - fix sha224 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 084/204] kernel/params.c: align add_sysfs_param documentation with code 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 005/204] HID: i2c-hid: allocate hid buffers for real worst case 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 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 122/204] usb: cdc_acm: Add quirk for Elatec TWN3 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 033/204] Input: uinput - avoid crash when sending FF request to device going away 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 203/204] crypto: hmac - require that the underlying hash algorithm is unkeyed 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 080/204] brcmfmac: Add check for short event packets 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 202/204] crypto: salsa20 - fix blkcipher_walk API usage 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 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.711144614@decadent.org.uk \
    --to=ben@decadent.org.uk \
    --cc=akpm@linux-foundation.org \
    --cc=boqun.feng@gmail.com \
    --cc=jiangshanlai@gmail.com \
    --cc=josef@toxicpanda.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=stable@vger.kernel.org \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

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

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