public inbox for stable@vger.kernel.org
 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,
	"Wolfgang Grandegger" <wg@grandegger.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Austin Schuh" <austin@peloton-tech.com>,
	"Till Straumann" <strauman@slac.stanford.edu>,
	"Marc Kleine-Budde" <mkl@pengutronix.de>,
	"Oliver Hartkopp" <socketcan@hartkopp.net>,
	linux-can@vger.kernel.org, "Pavel Pisa" <pisa@cmp.felk.cvut.cz>
Subject: [PATCH 3.2 003/125] genirq: Sanitize spurious interrupt detection of threaded irqs
Date: Tue, 08 Jul 2014 20:01:50 +0100	[thread overview]
Message-ID: <lsq.1404846110.451812438@decadent.org.uk> (raw)
In-Reply-To: <lsq.1404846109.699842714@decadent.org.uk>

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

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

From: Thomas Gleixner <tglx@linutronix.de>

commit 1e77d0a1ed7417d2a5a52a7b8d32aea1833faa6c upstream.

Till reported that the spurious interrupt detection of threaded
interrupts is broken in two ways:

- note_interrupt() is called for each action thread of a shared
  interrupt line. That's wrong as we are only interested whether none
  of the device drivers felt responsible for the interrupt, but by
  calling multiple times for a single interrupt line we account
  IRQ_NONE even if one of the drivers felt responsible.

- note_interrupt() when called from the thread handler is not
  serialized. That leaves the members of irq_desc which are used for
  the spurious detection unprotected.

To solve this we need to defer the spurious detection of a threaded
interrupt to the next hardware interrupt context where we have
implicit serialization.

If note_interrupt is called with action_ret == IRQ_WAKE_THREAD, we
check whether the previous interrupt requested a deferred check. If
not, we request a deferred check for the next hardware interrupt and
return.

If set, we check whether one of the interrupt threads signaled
success. Depending on this information we feed the result into the
spurious detector.

If one primary handler of a shared interrupt returns IRQ_HANDLED we
disable the deferred check of irq threads on the same line, as we have
found at least one device driver who cared.

Reported-by: Till Straumann <strauman@slac.stanford.edu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Austin Schuh <austin@peloton-tech.com>
Cc: Oliver Hartkopp <socketcan@hartkopp.net>
Cc: Wolfgang Grandegger <wg@grandegger.com>
Cc: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Cc: Marc Kleine-Budde <mkl@pengutronix.de>
Cc: linux-can@vger.kernel.org
Link: http://lkml.kernel.org/r/alpine.LFD.2.02.1303071450130.22263@ionos
[bwh: Backported to 3.2: adjust context, indentation]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
 include/linux/irqdesc.h |   4 ++
 kernel/irq/manage.c     |   4 +-
 kernel/irq/spurious.c   | 106 ++++++++++++++++++++++++++++++++++++++++++++++--
 3 files changed, 108 insertions(+), 6 deletions(-)

--- a/include/linux/irqdesc.h
+++ b/include/linux/irqdesc.h
@@ -27,6 +27,8 @@ struct module;
  * @irq_count:		stats field to detect stalled irqs
  * @last_unhandled:	aging timer for unhandled count
  * @irqs_unhandled:	stats field for spurious unhandled interrupts
+ * @threads_handled:	stats field for deferred spurious detection of threaded handlers
+ * @threads_handled_last: comparator field for deferred spurious detection of theraded handlers
  * @lock:		locking for SMP
  * @affinity_hint:	hint to user space for preferred irq affinity
  * @affinity_notify:	context for notification of affinity changes
@@ -53,6 +55,8 @@ struct irq_desc {
 	unsigned int		irq_count;	/* For detecting broken IRQs */
 	unsigned long		last_unhandled;	/* Aging timer for unhandled count */
 	unsigned int		irqs_unhandled;
+	atomic_t		threads_handled;
+	int			threads_handled_last;
 	raw_spinlock_t		lock;
 	struct cpumask		*percpu_enabled;
 #ifdef CONFIG_SMP
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -813,8 +813,8 @@ static int irq_thread(void *data)
 
 			raw_spin_unlock_irq(&desc->lock);
 			action_ret = handler_fn(desc, action);
-			if (!noirqdebug)
-				note_interrupt(action->irq, desc, action_ret);
+			if (action_ret == IRQ_HANDLED)
+				atomic_inc(&desc->threads_handled);
 		}
 
 		wake = atomic_dec_and_test(&desc->threads_active);
--- a/kernel/irq/spurious.c
+++ b/kernel/irq/spurious.c
@@ -265,21 +265,119 @@ try_misrouted_irq(unsigned int irq, stru
 	return action && (action->flags & IRQF_IRQPOLL);
 }
 
+#define SPURIOUS_DEFERRED	0x80000000
+
 void note_interrupt(unsigned int irq, struct irq_desc *desc,
 		    irqreturn_t action_ret)
 {
 	if (desc->istate & IRQS_POLL_INPROGRESS)
 		return;
 
-	/* we get here again via the threaded handler */
-	if (action_ret == IRQ_WAKE_THREAD)
-		return;
-
 	if (bad_action_ret(action_ret)) {
 		report_bad_irq(irq, desc, action_ret);
 		return;
 	}
 
+	/*
+	 * We cannot call note_interrupt from the threaded handler
+	 * because we need to look at the compound of all handlers
+	 * (primary and threaded). Aside of that in the threaded
+	 * shared case we have no serialization against an incoming
+	 * hardware interrupt while we are dealing with a threaded
+	 * result.
+	 *
+	 * So in case a thread is woken, we just note the fact and
+	 * defer the analysis to the next hardware interrupt.
+	 *
+	 * The threaded handlers store whether they sucessfully
+	 * handled an interrupt and we check whether that number
+	 * changed versus the last invocation.
+	 *
+	 * We could handle all interrupts with the delayed by one
+	 * mechanism, but for the non forced threaded case we'd just
+	 * add pointless overhead to the straight hardirq interrupts
+	 * for the sake of a few lines less code.
+	 */
+	if (action_ret & IRQ_WAKE_THREAD) {
+		/*
+		 * There is a thread woken. Check whether one of the
+		 * shared primary handlers returned IRQ_HANDLED. If
+		 * not we defer the spurious detection to the next
+		 * interrupt.
+		 */
+		if (action_ret == IRQ_WAKE_THREAD) {
+			int handled;
+			/*
+			 * We use bit 31 of thread_handled_last to
+			 * denote the deferred spurious detection
+			 * active. No locking necessary as
+			 * thread_handled_last is only accessed here
+			 * and we have the guarantee that hard
+			 * interrupts are not reentrant.
+			 */
+			if (!(desc->threads_handled_last & SPURIOUS_DEFERRED)) {
+				desc->threads_handled_last |= SPURIOUS_DEFERRED;
+				return;
+			}
+			/*
+			 * Check whether one of the threaded handlers
+			 * returned IRQ_HANDLED since the last
+			 * interrupt happened.
+			 *
+			 * For simplicity we just set bit 31, as it is
+			 * set in threads_handled_last as well. So we
+			 * avoid extra masking. And we really do not
+			 * care about the high bits of the handled
+			 * count. We just care about the count being
+			 * different than the one we saw before.
+			 */
+			handled = atomic_read(&desc->threads_handled);
+			handled |= SPURIOUS_DEFERRED;
+			if (handled != desc->threads_handled_last) {
+				action_ret = IRQ_HANDLED;
+				/*
+				 * Note: We keep the SPURIOUS_DEFERRED
+				 * bit set. We are handling the
+				 * previous invocation right now.
+				 * Keep it for the current one, so the
+				 * next hardware interrupt will
+				 * account for it.
+				 */
+				desc->threads_handled_last = handled;
+			} else {
+				/*
+				 * None of the threaded handlers felt
+				 * responsible for the last interrupt
+				 *
+				 * We keep the SPURIOUS_DEFERRED bit
+				 * set in threads_handled_last as we
+				 * need to account for the current
+				 * interrupt as well.
+				 */
+				action_ret = IRQ_NONE;
+			}
+		} else {
+			/*
+			 * One of the primary handlers returned
+			 * IRQ_HANDLED. So we don't care about the
+			 * threaded handlers on the same line. Clear
+			 * the deferred detection bit.
+			 *
+			 * In theory we could/should check whether the
+			 * deferred bit is set and take the result of
+			 * the previous run into account here as
+			 * well. But it's really not worth the
+			 * trouble. If every other interrupt is
+			 * handled we never trigger the spurious
+			 * detector. And if this is just the one out
+			 * of 100k unhandled ones which is handled
+			 * then we merily delay the spurious detection
+			 * by one hard interrupt. Not a real problem.
+			 */
+			desc->threads_handled_last &= ~SPURIOUS_DEFERRED;
+		}
+	}
+
 	if (unlikely(action_ret == IRQ_NONE)) {
 		/*
 		 * If we are seeing only the odd spurious IRQ caused by


  parent reply	other threads:[~2014-07-08 19:01 UTC|newest]

Thread overview: 137+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-08 19:01 [PATCH 3.2 000/125] 3.2.61-rc1 review Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 096/125] x86_32, entry: Do syscall exit work on badsys (CVE-2014-4508) Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 078/125] mm: rmap: fix use-after-free in __put_anon_vma Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 099/125] mm: fix crashes from mbind() merging vmas Ben Hutchings
2014-07-08 20:45   ` Hugh Dickins
2014-07-08 21:26     ` Hugh Dickins
2014-07-09  1:53       ` Ben Hutchings
2014-07-09  5:58         ` Hugh Dickins
2014-07-08 19:01 ` [PATCH 3.2 110/125] netlink: rate-limit leftover bytes warning and print process name Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 075/125] powerpc: Don't setup CPUs with bad status Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 103/125] target: Fix left-over se_lun->lun_sep pointer OOPs Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 068/125] Input: elantech - don't set bit 1 of reg_10 when the no_hw_res quirk is set Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 125/125] skbuff: skb_segment: orphan frags before copying Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 114/125] mlx4_core: Stash PCI ID driver_data in mlx4_priv structure Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 107/125] perf: Fix race in removing an event Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 066/125] idr: fix overflow bug during maximum ID calculation at maximum height Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 048/125] xhci: delete endpoints from bandwidth list before freeing whole device Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 101/125] recordmcount/MIPS: Fix possible incorrect mcount_loc table entries in modules Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 013/125] USB: Avoid runtime suspend loops for HCDs that can't handle suspend/resume Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 060/125] powerpc/serial: Use saner flags when creating legacy ports Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 093/125] lib/lzo: Rename lzo1x_decompress.c to lzo1x_decompress_safe.c Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 069/125] Input: synaptics - fix resolution for manually provided min/max Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 080/125] rtmutex: Detect changes in the pi lock chain Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 119/125] iommu/vt-d: Fix missing IOTLB flush in intel_iommu_unmap() Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 023/125] IB/ipath: Translate legacy diagpkt into newer extended diagpkt Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 116/125] target: Explicitly clear ramdisk_mcp backend pages Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 004/125] UBIFS: fix an mmap and fsync race condition Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 083/125] ALSA: control: Protect user controls against concurrent access Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 025/125] USB: sierra: fix urb and memory leak in resume error path Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 021/125] ext4: fix wrong assert in ext4_mb_normalize_request() Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 009/125] reiserfs: drop vmtruncate Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 029/125] USB: usb_wwan: fix urb leak in write error path Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 088/125] Bluetooth: Fix check for connection encryption Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 094/125] lib/lzo: Update LZO compression to current upstream version Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 005/125] Input: synaptics - add min/max quirk for the ThinkPad W540 Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 030/125] USB: usb_wwan: fix race between write and resume Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 082/125] USB: EHCI: avoid BIOS handover on the HASEE E200 Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 027/125] USB: sierra: fix remote wakeup Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 105/125] [SCSI] fix our current target reap infrastructure Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 077/125] ALSA: hda - Add quirk for external mic on Lifebook U904 Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 014/125] ARM: 8051/1: put_user: fix possible data corruption in put_user Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 086/125] ALSA: control: Handle numid overflow Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 057/125] ahci: Add Device ID for HighPoint RocketRaid 642L Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 020/125] ext4: fix zeroing of page during writeback Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 047/125] rtmutex: Fix deadlock detector for real Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 062/125] iscsi-target: Reject mutual authentication with reflected CHAP_C Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 054/125] drm/radeon: fix typo in radeon_connector_is_dp12_capable() Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 032/125] USB: usb_wwan: fix urb leak at shutdown Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 058/125] nfsd4: use recall_lock for delegation hashing Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 046/125] mac80211: don't check netdev state for debugfs read/write Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 007/125] HID: core: fix validation of report id 0 Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 074/125] watchdog: ath79_wdt: avoid spurious restarts on AR934x Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 050/125] RDMA/cxgb4: Fix four byte info leak in c4iw_create_cq() Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 042/125] usb: usbtest: fix unlink write error with pattern 1 Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 041/125] USB: serial: option: add support for Novatel E371 PCIe card Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 091/125] b43: fix frequency reported on G-PHY with /new/ firmware Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 079/125] rtmutex: Handle deadlock detection smarter Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 034/125] USB: cdc-acm: fix write and suspend race Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 026/125] USB: sierra: fix urb and memory leak on disconnect Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 022/125] IB/qib: Fix port in pkey change event Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 124/125] skbuff: export skb_copy_ubufs Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 055/125] drm/radeon/atom: fix dithering on certain panels Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 064/125] rtc: rtc-at91rm9200: fix infinite wait for ACKUPD irq Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 097/125] hugetlb: fix copy_hugetlb_page_range() to handle migration/hwpoisoned entry Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 120/125] ARM: 8012/1: kdump: Avoid overflow when converting pfn to physaddr Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 118/125] [SCSI] megaraid: Use resource_size_t for PCI resources, not long Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 081/125] rtmutex: Plug slow unlock race Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 033/125] USB: usb_wwan: fix potential blocked I/O after resume Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 006/125] ACPI: Fix conflict between customized DSDT and DSDT local copy Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 056/125] drm/radeon: only apply hdmi bpc pll flags when encoder mode is hdmi Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 061/125] ALSA: hda/realtek - Add support of ALC891 codec Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 100/125] drm: fix NULL pointer access by wrong ioctl Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 067/125] Input: elantech - deal with clickpads reporting right button events Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 010/125] reiserfs: call truncate_setsize under tailpack mutex Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 036/125] USB: cdc-acm: fix broken runtime suspend Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 037/125] USB: cdc-acm: fix runtime PM for control messages Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 070/125] nfsd4: fix FREE_STATEID lockowner leak Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 012/125] matroxfb: perform a dummy read of M_STATUS Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 024/125] USB: sierra: fix AA deadlock in open error path Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 051/125] RDMA/cxgb4: Add missing padding at end of struct c4iw_create_cq_resp Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 053/125] UBIFS: Remove incorrect assertion in shrink_tnc() Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 111/125] net: tunnels - enable module autoloading Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 092/125] tracing: Fix syscall_*regfunc() vs copy_process() race Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 008/125] IB/srp: Fix a sporadic crash triggered by cable pulling Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 040/125] USB: ftdi_sio: add NovaTech OrionLXm product ID Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 035/125] USB: cdc-acm: fix write and resume race Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 018/125] drm/i915: Only copy back the modified fields to userspace from execbuffer Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 071/125] Btrfs: fix double free in find_lock_delalloc_range Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 084/125] ALSA: control: Fix replacing user controls Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 085/125] ALSA: control: Don't access controls outside of protected regions Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 087/125] ALSA: control: Make sure that id->index does not overflow Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 115/125] net/mlx4_core: Preserve pci_dev_data after __mlx4_remove_one() Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 043/125] powerpc: Fix 64 bit builds with binutils 2.24 Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 122/125] ptrace,x86: force IRET path after a ptrace_stop() Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 059/125] mm: fix sleeping function warning from __put_anon_vma Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 113/125] sctp: Fix sk_ack_backlog wrap-around problem Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 112/125] net: fix inet_getid() and ipv6_select_ident() bugs Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 038/125] USB: cdc-acm: fix potential urb leak and PM imbalance in write Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 106/125] [SCSI] dual scan thread bug fix Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 065/125] ptrace: fix fork event messages across pid namespaces Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 017/125] drm/i915: s/DRM_ERROR/DRM_DEBUG in i915_gem_execbuffer.c Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 015/125] Input: synaptics - T540p - unify with other LEN0034 models Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 117/125] [SCSI] Fix spurious request sense in error handling Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 108/125] MIPS: Cleanup flags in syscall flags handlers Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 052/125] nfsd: getattr for FATTR4_WORD0_FILES_AVAIL needs the statfs buffer Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 073/125] auditsc: audit_krule mask accesses need bounds checking Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 123/125] skbuff: add an api to orphan frags Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 011/125] ARM: imx: fix error handling in ipu device registration Ben Hutchings
2014-07-08 19:01 ` Ben Hutchings [this message]
2014-07-08 19:01 ` [PATCH 3.2 044/125] md: always set MD_RECOVERY_INTR when aborting a reshape or other "resync" Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 076/125] evm: prohibit userspace writing 'security.evm' HMAC value Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 001/125] mm: highmem: don't treat PKMAP_ADDR(LAST_PKMAP) as a highmem address Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 039/125] USB: io_ti: fix firmware download on big-endian machines (part 2) Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 028/125] USB: option: fix runtime PM handling Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 121/125] Documentation: Update stable address in Chinese and Japanese translations Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 019/125] ahci: add PCI ID for Marvell 88SE91A0 SATA Controller Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 049/125] IB/umad: Fix error handling Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 102/125] MIPS: MSC: Prevent out-of-bounds writes to MIPS SC ioremap'd region Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 063/125] mm: vmscan: clear kswapd's special reclaim powers before exiting Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 072/125] drm/radeon: stop poisoning the GART TLB Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 016/125] mac80211: fix IBSS join by initializing last_scan_completed Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 002/125] bluetooth: hci_ldisc: fix deadlock condition Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 045/125] s390/lowcore: reserve 96 bytes for IRB in lowcore Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 031/125] USB: usb_wwan: fix write and suspend race Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 104/125] [SCSI] Stop accepting SCSI requests before removing a device Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 089/125] Bluetooth: Fix SSP acceptor just-works confirmation without MITM Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 109/125] MIPS: asm: thread_info: Add _TIF_SECCOMP flag Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 098/125] mm: revert 0def08e3 ("mm/mempolicy.c: check return code of check_range") Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 095/125] lzo: properly check for overruns Ben Hutchings
2014-07-08 19:01 ` [PATCH 3.2 090/125] rt2x00: disable TKIP on USB Ben Hutchings
2014-07-08 20:12 ` [PATCH 3.2 000/125] 3.2.61-rc1 review Guenter Roeck
2014-07-09  1:27 ` Guenter Roeck
2014-07-09  2:01   ` Ben Hutchings
2014-07-09 11:53   ` Satoru Takeuchi
2014-07-09 21:30     ` Ben Hutchings
2014-07-09  2:40 ` Ben Hutchings
2014-07-09  3:13 ` 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.1404846110.451812438@decadent.org.uk \
    --to=ben@decadent.org.uk \
    --cc=akpm@linux-foundation.org \
    --cc=austin@peloton-tech.com \
    --cc=linux-can@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mkl@pengutronix.de \
    --cc=pisa@cmp.felk.cvut.cz \
    --cc=socketcan@hartkopp.net \
    --cc=stable@vger.kernel.org \
    --cc=strauman@slac.stanford.edu \
    --cc=tglx@linutronix.de \
    --cc=wg@grandegger.com \
    /path/to/YOUR_REPLY

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

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