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>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Balasubramani Vivekanandan"
<balasubramani_vivekanandan@mentor.com>
Subject: [PATCH 3.16 004/136] tick: broadcast-hrtimer: Fix a race in bc_set_next
Date: Tue, 17 Dec 2019 00:45:38 +0000 [thread overview]
Message-ID: <lsq.1576543535.300087233@decadent.org.uk> (raw)
In-Reply-To: <lsq.1576543534.33060804@decadent.org.uk>
3.16.80-rc1 review patch. If anyone has any objections, please let me know.
------------------
From: Balasubramani Vivekanandan <balasubramani_vivekanandan@mentor.com>
commit b9023b91dd020ad7e093baa5122b6968c48cc9e0 upstream.
When a cpu requests broadcasting, before starting the tick broadcast
hrtimer, bc_set_next() checks if the timer callback (bc_handler) is active
using hrtimer_try_to_cancel(). But hrtimer_try_to_cancel() does not provide
the required synchronization when the callback is active on other core.
The callback could have already executed tick_handle_oneshot_broadcast()
and could have also returned. But still there is a small time window where
the hrtimer_try_to_cancel() returns -1. In that case bc_set_next() returns
without doing anything, but the next_event of the tick broadcast clock
device is already set to a timeout value.
In the race condition diagram below, CPU #1 is running the timer callback
and CPU #2 is entering idle state and so calls bc_set_next().
In the worst case, the next_event will contain an expiry time, but the
hrtimer will not be started which happens when the racing callback returns
HRTIMER_NORESTART. The hrtimer might never recover if all further requests
from the CPUs to subscribe to tick broadcast have timeout greater than the
next_event of tick broadcast clock device. This leads to cascading of
failures and finally noticed as rcu stall warnings
Here is a depiction of the race condition
CPU #1 (Running timer callback) CPU #2 (Enter idle
and subscribe to
tick broadcast)
--------------------- ---------------------
__run_hrtimer() tick_broadcast_enter()
bc_handler() __tick_broadcast_oneshot_control()
tick_handle_oneshot_broadcast()
raw_spin_lock(&tick_broadcast_lock);
dev->next_event = KTIME_MAX; //wait for tick_broadcast_lock
//next_event for tick broadcast clock
set to KTIME_MAX since no other cores
subscribed to tick broadcasting
raw_spin_unlock(&tick_broadcast_lock);
if (dev->next_event == KTIME_MAX)
return HRTIMER_NORESTART
// callback function exits without
restarting the hrtimer //tick_broadcast_lock acquired
raw_spin_lock(&tick_broadcast_lock);
tick_broadcast_set_event()
clockevents_program_event()
dev->next_event = expires;
bc_set_next()
hrtimer_try_to_cancel()
//returns -1 since the timer
callback is active. Exits without
restarting the timer
cpu_base->running = NULL;
The comment that hrtimer cannot be armed from within the callback is
wrong. It is fine to start the hrtimer from within the callback. Also it is
safe to start the hrtimer from the enter/exit idle code while the broadcast
handler is active. The enter/exit idle code and the broadcast handler are
synchronized using tick_broadcast_lock. So there is no need for the
existing try to cancel logic. All this can be removed which will eliminate
the race condition as well.
Fixes: 5d1638acb9f6 ("tick: Introduce hrtimer based broadcast")
Originally-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Balasubramani Vivekanandan <balasubramani_vivekanandan@mentor.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20190926135101.12102-2-balasubramani_vivekanandan@mentor.com
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
--- a/kernel/time/tick-broadcast-hrtimer.c
+++ b/kernel/time/tick-broadcast-hrtimer.c
@@ -50,34 +50,39 @@ static void bc_set_mode(enum clock_event
*/
static int bc_set_next(ktime_t expires, struct clock_event_device *bc)
{
- int bc_moved;
/*
- * We try to cancel the timer first. If the callback is on
- * flight on some other cpu then we let it handle it. If we
- * were able to cancel the timer nothing can rearm it as we
- * own broadcast_lock.
+ * This is called either from enter/exit idle code or from the
+ * broadcast handler. In all cases tick_broadcast_lock is held.
*
- * However we can also be called from the event handler of
- * ce_broadcast_hrtimer itself when it expires. We cannot
- * restart the timer because we are in the callback, but we
- * can set the expiry time and let the callback return
- * HRTIMER_RESTART.
+ * hrtimer_cancel() cannot be called here neither from the
+ * broadcast handler nor from the enter/exit idle code. The idle
+ * code can run into the problem described in bc_shutdown() and the
+ * broadcast handler cannot wait for itself to complete for obvious
+ * reasons.
*
- * Since we are in the idle loop at this point and because
- * hrtimer_{start/cancel} functions call into tracing,
- * calls to these functions must be bound within RCU_NONIDLE.
+ * Each caller tries to arm the hrtimer on its own CPU, but if the
+ * hrtimer callbback function is currently running, then
+ * hrtimer_start() cannot move it and the timer stays on the CPU on
+ * which it is assigned at the moment.
+ *
+ * As this can be called from idle code, the hrtimer_start()
+ * invocation has to be wrapped with RCU_NONIDLE() as
+ * hrtimer_start() can call into tracing.
*/
- RCU_NONIDLE({
- bc_moved = hrtimer_try_to_cancel(&bctimer) >= 0;
- if (bc_moved)
- hrtimer_start(&bctimer, expires,
- HRTIMER_MODE_ABS_PINNED);});
- if (bc_moved) {
- /* Bind the "device" to the cpu */
- bc->bound_on = smp_processor_id();
- } else if (bc->bound_on == smp_processor_id()) {
- hrtimer_set_expires(&bctimer, expires);
- }
+ RCU_NONIDLE( {
+ hrtimer_start(&bctimer, expires, HRTIMER_MODE_ABS_PINNED);
+ /*
+ * The core tick broadcast mode expects bc->bound_on to be set
+ * correctly to prevent a CPU which has the broadcast hrtimer
+ * armed from going deep idle.
+ *
+ * As tick_broadcast_lock is held, nothing can change the cpu
+ * base which was just established in hrtimer_start() above. So
+ * the below access is safe even without holding the hrtimer
+ * base lock.
+ */
+ bc->bound_on = bctimer.base->cpu_base->cpu;
+ } );
return 0;
}
@@ -102,13 +107,7 @@ static enum hrtimer_restart bc_handler(s
{
ce_broadcast_hrtimer.event_handler(&ce_broadcast_hrtimer);
- switch (ce_broadcast_hrtimer.mode) {
- case CLOCK_EVT_MODE_ONESHOT:
- if (ce_broadcast_hrtimer.next_event.tv64 != KTIME_MAX)
- return HRTIMER_RESTART;
- default:
- return HRTIMER_NORESTART;
- }
+ return HRTIMER_NORESTART;
}
void tick_setup_hrtimer_broadcast(void)
next prev parent reply other threads:[~2019-12-17 1:00 UTC|newest]
Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-17 0:45 [PATCH 3.16 000/136] 3.16.80-rc1 review Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 001/136] hrtimer: Store cpu-number in struct hrtimer_cpu_base Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 002/136] tick: broadcast-hrtimer: Remove overly clever return value abuse Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 003/136] tick: hrtimer-broadcast: Prevent endless restarting when broadcast device is unused Ben Hutchings
2019-12-17 0:45 ` Ben Hutchings [this message]
2019-12-17 0:45 ` [PATCH 3.16 005/136] sch_cbq: validate TCA_CBQ_WRROPT to avoid crash Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 006/136] scsi: sd: Ignore a failure to sync cache due to lack of authorization Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 007/136] staging: rtl8188eu: fix HighestRate check in odm_ARFBRefresh_8188E() Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 008/136] HID: fix error message in hid_open_report() Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 009/136] RDMA/iwcm: Fix a lock inversion issue Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 010/136] net: stmmac: Correctly take timestamp for PTPv2 Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 011/136] hso: fix NULL-deref on tty open Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 012/136] USB: serial: ftdi_sio: add device IDs for Sienna and Echelon PL-20 Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 013/136] drm/omap: fix max fclk divider for omap36xx Ben Hutchings
2019-12-23 14:00 ` Adam Ford
2019-12-17 0:45 ` [PATCH 3.16 014/136] ipv6: drop incoming packets having a v4mapped source address Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 015/136] scsi: zfcp: fix reaction on bit error threshold notification Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 016/136] USB: rio500: Remove Rio 500 kernel driver Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 017/136] USB: serial: keyspan: fix NULL-derefs on open() and write() Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 018/136] USB: microtek: fix info-leak at probe Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 019/136] USB: adutux: fix NULL-derefs on disconnect Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 020/136] USB: yurex: Don't retry on unexpected errors Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 021/136] USB: dummy-hcd: fix power budget for SuperSpeed mode Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 022/136] USB: usblcd: fix I/O after disconnect Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 023/136] mac80211: Reject malformed SSID elements Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 024/136] USB: legousbtower: fix slab info leak at probe Ben Hutchings
2019-12-17 0:45 ` [PATCH 3.16 025/136] USB: legousbtower: fix deadlock on disconnect Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 026/136] USB: legousbtower: fix potential NULL-deref " Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 027/136] USB: legousbtower: fix open after failed reset request Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 028/136] xhci: Prevent device initiated U1/U2 link pm if exit latency is too long Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 029/136] xhci: Check all endpoints for LPM timeout Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 030/136] usb: xhci: wait for CNR controller not ready bit in xhci resume Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 031/136] usb: renesas_usbhs: gadget: Do not discard queues in usb_ep_set_{halt,wedge}() Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 032/136] usb: renesas_usbhs: gadget: Fix usb_ep_set_{halt,wedge}() behavior Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 033/136] USB: usb-skeleton: fix runtime PM after driver unbind Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 034/136] USB: usblp: " Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 035/136] USB: serial: " Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 036/136] media: stkwebcam: " Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 037/136] serial: uartlite: fix exit path null pointer Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 038/136] net: ipv4: use a dedicated counter for icmp_v4 redirect packets Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 039/136] net: ipv4: avoid mixed n_redirects and rate_tokens usage Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 040/136] sch_dsmark: fix potential NULL deref in dsmark_init() Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 041/136] nfc: fix memory leak in llcp_sock_bind() Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 042/136] CIFS: Gracefully handle QueryInfo errors during open Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 043/136] panic: ensure preemption is disabled during panic() Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 044/136] llc: fix sk_buff leak in llc_sap_state_process() Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 045/136] Fix to check Unique id and FileType when client refer file directly Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 046/136] cifs: Check uniqueid for SMB2+ and return -ESTALE if necessary Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 047/136] CIFS: Force revalidate inode when dentry is stale Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 048/136] CIFS: Force reval dentry if LOOKUP_REVAL flag is set Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 049/136] memstick: jmb38x_ms: Fix an error handling path in 'jmb38x_ms_probe()' Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 050/136] sched/fair: Scale bandwidth quota and period without losing quota/period ratio precision Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 051/136] ARM: mm: fix alignment handler faults under memory pressure Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 052/136] USB: usb-skeleton: fix NULL-deref on disconnect Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 053/136] USB: legousbtower: fix use-after-free on release Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 054/136] USB: ldusb: fix NULL-derefs on driver unbind Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 055/136] USB: adutux: fix use-after-free on release Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 056/136] USB: iowarrior: " Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 057/136] USB: iowarrior: fix use-after-free after driver unbind Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 058/136] USB: yurex: fix NULL-derefs on disconnect Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 059/136] tracing: Get trace_array reference for available_tracers files Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 060/136] batman-adv: iv_ogm_iface_enable, direct return values Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 061/136] batman-adv: Avoid free/alloc race when handling OGM buffer Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 062/136] parisc: Fix vmap memory leak in ioremap()/iounmap() Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 063/136] mm/slub: fix a deadlock in show_slab_objects() Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 064/136] xtensa: drop EXPORT_SYMBOL for outs*/ins* Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 065/136] ceph: just skip unrecognized info in ceph_reply_info_extra Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 066/136] USB: ldusb: fix memleak on disconnect Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 067/136] USB: legousbtower: " Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 068/136] USB: legousbtower: fix a signedness bug in tower_probe() Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 069/136] usb: udc: lpc32xx: fix bad bit shift operation Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 070/136] USB: usblp: fix use-after-free on disconnect Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 071/136] PCI: PM: Fix pci_power_up() Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 072/136] net: avoid potential infinite loop in tc_ctl_action() Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 073/136] net: bcmgenet: Fix RGMII_MODE_EN value for GENET v1/2/3 Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 074/136] USB: serial: ti_usb_3410_5052: fix port-close races Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 075/136] Btrfs: check for the full sync flag while holding the inode lock during fsync Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 076/136] scsi: core: try to get module before removing device Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 077/136] net: phy: bcm7xxx: define soft_reset for 40nm EPHY Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 078/136] net: bcmgenet: reset 40nm EPHY on energy detect Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 079/136] USB: ldusb: fix read info leaks Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 080/136] xen/netback: fix error path of xenvif_connect_data() Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 081/136] net: netem: correct the parent's backlog when corrupted packet was dropped Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 082/136] CIFS: avoid using MID 0xFFFF Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 083/136] ARC: perf: Accommodate big-endian CPU Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 084/136] scsi: lpfc: Honor module parameter lpfc_use_adisc Ben Hutchings
2019-12-17 0:46 ` [PATCH 3.16 085/136] fuse: flush dirty data/metadata before non-truncate setattr Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 086/136] fuse: truncate pending writes on O_TRUNC Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 087/136] ASoC: kirkwood: fix external clock probe defer Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 088/136] MIPS: bmips: mark exception vectors as char arrays Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 089/136] MIPS: tlbex: Fix build_restore_pagemask KScratch restore Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 090/136] ipvs: move old_secure_tcp into struct netns_ipvs Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 091/136] bonding: fix unexpected IFF_BONDING bit unset Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 092/136] clk: samsung: exynos5420: Preserve PLL configuration during suspend/resume Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 093/136] ALSA: bebob: Fix prototype of helper function to return negative value Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 094/136] usb: gadget: udc: atmel: Fix interrupt storm in FIFO mode Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 095/136] perf/x86/amd/ibs: Fix reading of the IBS OpData register and thus precise RIP validity Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 096/136] perf/x86/amd/ibs: Handle erratum #420 only on the affected CPU family (10h) Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 097/136] clk: at91: avoid sleeping early Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 098/136] USB: ldusb: fix ring-buffer locking Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 099/136] USB: ldusb: fix control-message timeout Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 100/136] net: fix sk_page_frag() recursion from memory reclaim Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 101/136] scsi: qla2xxx: stop timer in shutdown path Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 102/136] USB: gadget: Reject endpoints with 0 maxpacket value Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 103/136] ceph: fix use-after-free in __ceph_remove_cap() Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 104/136] ceph: add missing check in d_revalidate snapdir handling Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 105/136] USB: serial: whiteheat: fix potential slab corruption Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 106/136] USB: serial: whiteheat: fix line-speed endianness Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 107/136] nl80211: fix validation of mesh path nexthop Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 108/136] ALSA: timer: Simplify error path in snd_timer_open() Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 109/136] ALSA: timer: Fix incorrectly assigned timer instance Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 110/136] ALSA: timer: Fix mutex deadlock at releasing card Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 111/136] s390/cmm: fix information leak in cmm_timeout_handler() Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 112/136] inet: stop leaking jiffies on the wire Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 113/136] ALSA: bebob: fix to detect configured source of sampling clock for Focusrite Saffire Pro i/o series Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 114/136] dccp: do not leak jiffies on the wire Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 115/136] netfilter: ipset: Fix an error code in ip_set_sockfn_get() Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 116/136] netfilter: nf_tables: Align nft_expr private data to 64-bit Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 117/136] can: usb_8dev: fix use-after-free on disconnect Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 118/136] can: peak_usb: fix a potential out-of-sync while decoding packets Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 119/136] can: c_can: c_can_poll(): only read status register after status IRQ Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 120/136] perf tools: Fix time sorting Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 121/136] mm, vmstat: hide /proc/pagetypeinfo from normal users Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 122/136] dump_stack: avoid the livelock of the dump_lock Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 123/136] drm/radeon: fix si_enable_smc_cac() failed issue Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 124/136] block: drbd: remove a stray unlock in __drbd_send_protocol() Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 125/136] ALSA: usb-audio: Fix missing error check at mixer resolution test Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 126/136] ecryptfs_lookup_interpose(): lower_dentry->d_inode is not stable Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 127/136] ecryptfs_lookup_interpose(): lower_dentry->d_parent is not stable either Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 128/136] x86/quirks: Disable HPET on Intel Coffe Lake platforms Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 129/136] ALSA: usb-audio: not submit urb for stopped endpoint Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 130/136] mm: memcg: switch to css_tryget() in get_mem_cgroup_from_mm() Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 131/136] mm: hugetlb: switch to css_tryget() in hugetlb_cgroup_charge_cgroup() Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 132/136] virtio_console: allocate inbufs in add_port() only if it is needed Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 133/136] net/sched: act_pedit: fix WARN() in the traffic path Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 134/136] sfc: Only cancel the PPS workqueue if it exists Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 135/136] mm/ksm.c: don't WARN if page is still mapped in remove_stable_node() Ben Hutchings
2019-12-17 0:47 ` [PATCH 3.16 136/136] fs/dcache: move security_d_instantiate() behind attaching dentry to inode Ben Hutchings
2019-12-17 18:19 ` [PATCH 3.16 000/136] 3.16.80-rc1 review Guenter Roeck
2019-12-17 18:43 ` 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.1576543535.300087233@decadent.org.uk \
--to=ben@decadent.org.uk \
--cc=akpm@linux-foundation.org \
--cc=balasubramani_vivekanandan@mentor.com \
--cc=kda@linux-powerpc.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=tglx@linutronix.de \
/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