All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Slaby <jslaby@suse.cz>
To: stable@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>, Jiri Slaby <jslaby@suse.cz>
Subject: [PATCH 3.12 083/176] genirq: Prevent proc race against freeing of irq descriptors
Date: Wed, 28 Jan 2015 15:28:33 +0100	[thread overview]
Message-ID: <b3bc17d5bf7eb79e2c84ed93cfc5972239f61dfb.1422455352.git.jslaby@suse.cz> (raw)
In-Reply-To: <ce4a451f616a1e7ab58cfeceea5e49c8b1c68c81.1422455352.git.jslaby@suse.cz>
In-Reply-To: <cover.1422455352.git.jslaby@suse.cz>

From: Thomas Gleixner <tglx@linutronix.de>

3.12-stable review patch.  If anyone has any objections, please let me know.

===============

commit c291ee622165cb2c8d4e7af63fffd499354a23be upstream.

Since the rework of the sparse interrupt code to actually free the
unused interrupt descriptors there exists a race between the /proc
interfaces to the irq subsystem and the code which frees the interrupt
descriptor.

CPU0				CPU1
				show_interrupts()
				  desc = irq_to_desc(X);
free_desc(desc)
  remove_from_radix_tree();
  kfree(desc);
				  raw_spinlock_irq(&desc->lock);

/proc/interrupts is the only interface which can actively corrupt
kernel memory via the lock access. /proc/stat can only read from freed
memory. Extremly hard to trigger, but possible.

The interfaces in /proc/irq/N/ are not affected by this because the
removal of the proc file is serialized in procfs against concurrent
readers/writers. The removal happens before the descriptor is freed.

For architectures which have CONFIG_SPARSE_IRQ=n this is a non issue
as the descriptor is never freed. It's merely cleared out with the irq
descriptor lock held. So any concurrent proc access will either see
the old correct value or the cleared out ones.

Protect the lookup and access to the irq descriptor in
show_interrupts() with the sparse_irq_lock.

Provide kstat_irqs_usr() which is protecting the lookup and access
with sparse_irq_lock and switch /proc/stat to use it.

Document the existing kstat_irqs interfaces so it's clear that the
caller needs to take care about protection. The users of these
interfaces are either not affected due to SPARSE_IRQ=n or already
protected against removal.

Fixes: 1f5a5b87f78f "genirq: Implement a sane sparse_irq allocator"
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 fs/proc/stat.c              |  2 +-
 include/linux/kernel_stat.h |  1 +
 kernel/irq/internals.h      |  8 +++++++
 kernel/irq/irqdesc.c        | 52 +++++++++++++++++++++++++++++++++++++++++++++
 kernel/irq/proc.c           | 22 ++++++++++++++++++-
 5 files changed, 83 insertions(+), 2 deletions(-)

diff --git a/fs/proc/stat.c b/fs/proc/stat.c
index 1cf86c0e8689..b5c72a3be359 100644
--- a/fs/proc/stat.c
+++ b/fs/proc/stat.c
@@ -159,7 +159,7 @@ static int show_stat(struct seq_file *p, void *v)
 
 	/* sum again ? it could be updated? */
 	for_each_irq_nr(j)
-		seq_put_decimal_ull(p, ' ', kstat_irqs(j));
+		seq_put_decimal_ull(p, ' ', kstat_irqs_usr(j));
 
 	seq_printf(p,
 		"\nctxt %llu\n"
diff --git a/include/linux/kernel_stat.h b/include/linux/kernel_stat.h
index 51c72be4a7c3..4b2053a232c9 100644
--- a/include/linux/kernel_stat.h
+++ b/include/linux/kernel_stat.h
@@ -74,6 +74,7 @@ static inline unsigned int kstat_softirqs_cpu(unsigned int irq, int cpu)
  * Number of interrupts per specific IRQ source, since bootup
  */
 extern unsigned int kstat_irqs(unsigned int irq);
+extern unsigned int kstat_irqs_usr(unsigned int irq);
 
 /*
  * Number of interrupts per cpu, since bootup
diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
index 001fa5bab490..8a160e8a44e8 100644
--- a/kernel/irq/internals.h
+++ b/kernel/irq/internals.h
@@ -74,6 +74,14 @@ extern void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu);
 extern void mask_irq(struct irq_desc *desc);
 extern void unmask_irq(struct irq_desc *desc);
 
+#ifdef CONFIG_SPARSE_IRQ
+extern void irq_lock_sparse(void);
+extern void irq_unlock_sparse(void);
+#else
+static inline void irq_lock_sparse(void) { }
+static inline void irq_unlock_sparse(void) { }
+#endif
+
 extern void init_kstat_irqs(struct irq_desc *desc, int node, int nr);
 
 irqreturn_t handle_irq_event_percpu(struct irq_desc *desc, struct irqaction *action);
diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c
index 8ab8e9390297..07d45516b540 100644
--- a/kernel/irq/irqdesc.c
+++ b/kernel/irq/irqdesc.c
@@ -131,6 +131,16 @@ static void free_masks(struct irq_desc *desc)
 static inline void free_masks(struct irq_desc *desc) { }
 #endif
 
+void irq_lock_sparse(void)
+{
+	mutex_lock(&sparse_irq_lock);
+}
+
+void irq_unlock_sparse(void)
+{
+	mutex_unlock(&sparse_irq_lock);
+}
+
 static struct irq_desc *alloc_desc(int irq, int node, struct module *owner)
 {
 	struct irq_desc *desc;
@@ -167,6 +177,12 @@ static void free_desc(unsigned int irq)
 
 	unregister_irq_proc(irq, desc);
 
+	/*
+	 * sparse_irq_lock protects also show_interrupts() and
+	 * kstat_irq_usr(). Once we deleted the descriptor from the
+	 * sparse tree we can free it. Access in proc will fail to
+	 * lookup the descriptor.
+	 */
 	mutex_lock(&sparse_irq_lock);
 	delete_irq_desc(irq);
 	mutex_unlock(&sparse_irq_lock);
@@ -489,6 +505,15 @@ void dynamic_irq_cleanup(unsigned int irq)
 	raw_spin_unlock_irqrestore(&desc->lock, flags);
 }
 
+/**
+ * kstat_irqs_cpu - Get the statistics for an interrupt on a cpu
+ * @irq:	The interrupt number
+ * @cpu:	The cpu number
+ *
+ * Returns the sum of interrupt counts on @cpu since boot for
+ * @irq. The caller must ensure that the interrupt is not removed
+ * concurrently.
+ */
 unsigned int kstat_irqs_cpu(unsigned int irq, int cpu)
 {
 	struct irq_desc *desc = irq_to_desc(irq);
@@ -497,6 +522,14 @@ unsigned int kstat_irqs_cpu(unsigned int irq, int cpu)
 			*per_cpu_ptr(desc->kstat_irqs, cpu) : 0;
 }
 
+/**
+ * kstat_irqs - Get the statistics for an interrupt
+ * @irq:	The interrupt number
+ *
+ * Returns the sum of interrupt counts on all cpus since boot for
+ * @irq. The caller must ensure that the interrupt is not removed
+ * concurrently.
+ */
 unsigned int kstat_irqs(unsigned int irq)
 {
 	struct irq_desc *desc = irq_to_desc(irq);
@@ -509,3 +542,22 @@ unsigned int kstat_irqs(unsigned int irq)
 		sum += *per_cpu_ptr(desc->kstat_irqs, cpu);
 	return sum;
 }
+
+/**
+ * kstat_irqs_usr - Get the statistics for an interrupt
+ * @irq:	The interrupt number
+ *
+ * Returns the sum of interrupt counts on all cpus since boot for
+ * @irq. Contrary to kstat_irqs() this can be called from any
+ * preemptible context. It's protected against concurrent removal of
+ * an interrupt descriptor when sparse irqs are enabled.
+ */
+unsigned int kstat_irqs_usr(unsigned int irq)
+{
+	int sum;
+
+	irq_lock_sparse();
+	sum = kstat_irqs(irq);
+	irq_unlock_sparse();
+	return sum;
+}
diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c
index 36f6ee181b0c..095cd7230aef 100644
--- a/kernel/irq/proc.c
+++ b/kernel/irq/proc.c
@@ -15,6 +15,23 @@
 
 #include "internals.h"
 
+/*
+ * Access rules:
+ *
+ * procfs protects read/write of /proc/irq/N/ files against a
+ * concurrent free of the interrupt descriptor. remove_proc_entry()
+ * immediately prevents new read/writes to happen and waits for
+ * already running read/write functions to complete.
+ *
+ * We remove the proc entries first and then delete the interrupt
+ * descriptor from the radix tree and free it. So it is guaranteed
+ * that irq_to_desc(N) is valid as long as the read/writes are
+ * permitted by procfs.
+ *
+ * The read from /proc/interrupts is a different problem because there
+ * is no protection. So the lookup and the access to irqdesc
+ * information must be protected by sparse_irq_lock.
+ */
 static struct proc_dir_entry *root_irq_dir;
 
 #ifdef CONFIG_SMP
@@ -437,9 +454,10 @@ int show_interrupts(struct seq_file *p, void *v)
 		seq_putc(p, '\n');
 	}
 
+	irq_lock_sparse();
 	desc = irq_to_desc(i);
 	if (!desc)
-		return 0;
+		goto outsparse;
 
 	raw_spin_lock_irqsave(&desc->lock, flags);
 	for_each_online_cpu(j)
@@ -479,6 +497,8 @@ int show_interrupts(struct seq_file *p, void *v)
 	seq_putc(p, '\n');
 out:
 	raw_spin_unlock_irqrestore(&desc->lock, flags);
+outsparse:
+	irq_unlock_sparse();
 	return 0;
 }
 #endif
-- 
2.2.2


  parent reply	other threads:[~2015-01-29  9:01 UTC|newest]

Thread overview: 187+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-28 14:29 [PATCH 3.12 000/176] 3.12.37-stable review Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 001/176] fsnotify: next_i is freed during fsnotify_unmount_inodes Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 002/176] drivers/rtc/rtc-sirfsoc.c: move hardware initilization earlier in probe Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 003/176] ocfs2: fix journal commit deadlock Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 004/176] ath9k_hw: fix hardware queue allocation Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 005/176] ath9k: fix BE/BK queue order Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 006/176] can: peak_usb: fix cleanup sequence order in case of error during init Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 007/176] can: peak_usb: fix memset() usage Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 008/176] ath5k: fix hardware queue index assignment Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 009/176] ASoC: sigmadsp: Refuse to load firmware files with a non-supported version Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 010/176] ASoC: max98090: Fix ill-defined sidetone route Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 011/176] ASoC: dwc: Ensure FIFOs are flushed to prevent channel swap Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 012/176] powerpc: Fix bad NULL pointer check in udbg_uart_getc_poll() Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 013/176] powerpc/powernv: Switch off MMU before entering nap/sleep/rvwinkle mode Jiri Slaby
2015-01-28 14:27   ` Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 014/176] PCI: Restore detection of read-only BARs Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 015/176] pstore-ram: Fix hangs by using write-combine mappings Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 016/176] pstore-ram: Allow optional mapping with pgprot_noncached Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 017/176] UBI: Fix invalid vfree() Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 018/176] UBI: Fix double free after do_sync_erase() Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 019/176] iommu/vt-d: Fix an off-by-one bug in __domain_mapping() Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 020/176] HID: i2c-hid: fix race condition reading reports Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 021/176] HID: i2c-hid: prevent buffer overflow in early IRQ Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 022/176] HID: roccat: potential out of bounds in pyra_sysfs_write_settings() Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 023/176] HID: add battery quirk for USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO keyboard Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 024/176] HID: Add a new id 0x501a for Genius MousePen i608X Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 025/176] kvm: x86: drop severity of "generation wraparound" message Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 026/176] x86_64, vdso: Fix the vdso address randomization algorithm Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 027/176] x86, vdso: Use asm volatile in __getcpu Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 028/176] driver core: Fix unbalanced device reference in drivers_probe Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 029/176] ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 030/176] ALSA: hda - using uninitialized data Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 031/176] ALSA: hda - Fix wrong gpio_dir & gpio_mask hint setups for IDT/STAC codecs Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 032/176] USB: cdc-acm: check for valid interfaces Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 033/176] Add USB_EHCI_EXYNOS to multi_v7_defconfig Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 034/176] genhd: check for int overflow in disk_expand_part_tbl() Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 035/176] cdc-acm: memory leak in error case Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 036/176] writeback: fix a subtle race condition in I_DIRTY clearing Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 037/176] serial: samsung: wait for transfer completion before clock disable Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 038/176] n_tty: Fix read_buf race condition, increment read_head after pushing data Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 039/176] Drivers: hv: vmbus: Fix a race condition when unregistering a device Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 040/176] fs: nfsd: Fix signedness bug in compare_blob Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 041/176] nfsd4: fix xdr4 inclusion of escaped char Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 042/176] ceph: do_sync is never initialized Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 043/176] mtd: tests: abort torturetest on erase errors Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 044/176] nilfs2: fix the nilfs_iget() vs. nilfs_new_inode() races Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 045/176] scripts/kernel-doc: don't eat struct members with __aligned Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 046/176] ARM: OMAP4: PM: Only do static dependency configuration in omap4_init_static_deps Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 047/176] Revert "ARM: 7830/1: delay: don't bother reporting bogomips in /proc/cpuinfo" Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 048/176] ARM: mvebu: disable I/O coherency on non-SMP situations on Armada 370/375/38x/XP Jiri Slaby
2015-01-28 14:27 ` [PATCH 3.12 049/176] perf/x86/intel/uncore: Make sure only uncore events are collected Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 050/176] perf: Fix events installation during moving group Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 051/176] perf session: Do not fail on processing out of order event Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 052/176] spi: fsl: Fix problem with multi message transfers Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 053/176] mmc: sdhci: Fix sleep in atomic after inserting SD card Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 054/176] mm, vmscan: prevent kswapd livelock due to pfmemalloc-throttled process being killed Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 055/176] mm: propagate error from stack expansion even for guard page Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 056/176] mm: Don't count the stack guard page towards RLIMIT_STACK Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 057/176] netlink: Always copy on mmap TX Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 058/176] netlink: Don't reorder loads/stores before marking mmap netlink frame as available Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 059/176] in6: fix conflict with glibc Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 060/176] tg3: tg3_disable_ints using uninitialized mailbox value to disable interrupts Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 061/176] net: Fix stacked vlan offload features computation Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 062/176] net: Reset secmark when scrubbing packet Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 063/176] tcp: Do not apply TSO segment limit to non-TSO packets Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 064/176] alx: fix alx_poll() Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 065/176] team: avoid possible underflow of count_pending value for notify_peers and mcast_rejoin Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 066/176] enic: fix rx skb checksum Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 067/176] net/core: Handle csum for CHECKSUM_COMPLETE VXLAN forwarding Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 068/176] netfilter: ipset: small potential read beyond the end of buffer Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 069/176] ACPI / osl: speedup grace period in acpi_os_map_cleanup Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 070/176] drm/i915: Resolving the memory region conflict for Stolen area Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 071/176] drm/vmwgfx: Fix fence event code Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 072/176] drm/ttm: Avoid memory allocation from shrinker functions Jiri Slaby
2015-01-28 14:28   ` Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 073/176] drm/radeon: fix typo in CI dpm disable Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 074/176] drm/radeon: work around a hw bug in MGCG on CIK Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 075/176] drm/radeon: check the right ring in radeon_evict_flags() Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 076/176] drm/radeon: properly filter DP1.2 4k modes on non-DP1.2 hw Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 077/176] drm/i915: Don't complain about stolen conflicts on gen3 Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 078/176] drm/i915: Invalidate media caches on gen7 Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 079/176] drm/i915: Force the CS stall for invalidate flushes Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 080/176] cfg80211: avoid mem leak on driver hint set Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 081/176] hp_accel: Add support for HP ZBook 15 Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 082/176] tick/powerclamp: Remove tick_nohz_idle abuse Jiri Slaby
2015-01-28 14:28   ` Jiri Slaby
2015-01-28 14:28 ` Jiri Slaby [this message]
2015-01-28 14:28 ` [PATCH 3.12 084/176] iscsi-target: Fail connection on short sendmsg writes Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 085/176] Revert "[SCSI] mpt2sas: Remove phys on topology change." Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 086/176] Revert "[SCSI] mpt3sas: Remove phys on topology change" Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 087/176] scsi: blacklist RSOC for Microsoft iSCSI target devices Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 088/176] ipvs: correct usage/allocation of seqadj ext in ipvs Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 089/176] ALSA: usb-audio: Add support for Focusrite Saffire 6 USB Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 090/176] ALSA: snd-usb: re-order some quirk entries Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 091/176] storvsc: ring buffer failures may result in I/O freeze Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 092/176] net: ethernet: cpsw: fix hangs with interrupts Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 093/176] video/logo: prevent use of logos after they have been freed Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 094/176] smiapp-pll: Correct clock debug prints Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 095/176] af9005: fix kernel panic on init if compiled without IR Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 096/176] smiapp: Take mutex during PLL update in sensor initialisation Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 097/176] sound: simplify au0828 quirk table Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 098/176] sound: Update au0828 quirks table Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 099/176] uvcvideo: Fix destruction order in uvc_delete() Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 100/176] vfio-pci: Fix the check on pci device type in vfio_pci_probe() Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 101/176] drivers: net: cpsw: fix multicast flush in dual emac mode Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 102/176] ftrace/jprobes/x86: Fix conflict between jprobes and function graph tracing Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 103/176] NFSv4.1: Fix client id trunking on Linux Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 104/176] gpiolib: of: Correct error handling in of_get_named_gpiod_flags Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 105/176] gpio: fix memory and reference leaks in gpiochip_add error path Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 106/176] OHCI: add a quirk for ULi M5237 blocking on reset Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 107/176] usb: dwc3: gadget: Fix TRB preparation during SG Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 108/176] usb: dwc3: gadget: Stop TRB preparation after limit is reached Jiri Slaby
2015-01-28 14:28 ` [PATCH 3.12 109/176] USB: cp210x: fix ID for production CEL MeshConnect USB Stick Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 110/176] USB: cp210x: add IDs for CEL USB sticks and MeshWorks devices Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 111/176] USB: keyspan: fix null-deref at probe Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 112/176] USB: console: fix uninitialised ldisc semaphore Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 113/176] USB: console: fix potential use after free Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 114/176] USB: EHCI: fix initialization bug in iso_stream_schedule() Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 115/176] usb: musb: stuff leak of struct usb_hcd Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 116/176] can: kvaser_usb: Don't free packets when tight on URBs Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 117/176] can: kvaser_usb: Reset all URB tx contexts upon channel close Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 118/176] can: kvaser_usb: Don't send a RESET_CHIP for non-existing channels Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 119/176] Input: i8042 - reset keyboard to fix Elantech touchpad detection Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 120/176] Input: I8042 - add Acer Aspire 7738 to the nomux list Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 121/176] ARM: dts: imx25: Fix the SPI1 clocks Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 122/176] ARM: imx6q: drop unnecessary semicolon Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 123/176] ARM: clk-imx6q: fix video divider for rev T0 1.0 Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 124/176] ARM: omap5/dra7xx: Fix frequency typos Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 125/176] ARM: shmobile: sh73a0 legacy: Set .control_parent for all irqpin instances Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 126/176] decompress_bunzip2: off by one in get_next_block() Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 127/176] um: Skip futex_atomic_cmpxchg_inatomic() test Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 128/176] x86, um: actually mark system call tables readonly Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 129/176] LOCKD: Fix a race when initialising nlmsvc_timeout Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 130/176] vhost-scsi: Add missing virtio-scsi -> TCM attribute conversion Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 131/176] iscsi,iser-target: Initiate termination only once Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 132/176] iser-target: Fix flush + disconnect completion handling Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 133/176] iser-target: Parallelize CM connection establishment Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 134/176] iser-target: Fix connected_handler + teardown flow race Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 135/176] iser-target: Handle ADDR_CHANGE event for listener cm_id Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 136/176] iser-target: Fix implicit termination of connections Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 137/176] bcache: Make sure to pass GFP_WAIT to mempool_alloc() Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 138/176] crypto: sha256_ssse3 - use correct module alias for sha224 Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 139/176] gpio: sysfs: fix gpio-chip device-attribute leak Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 140/176] gpio: sysfs: fix gpio " Jiri Slaby
2015-01-28 16:10   ` Johan Hovold
2015-01-28 17:46     ` Jiri Slaby
2015-01-28 18:06       ` Johan Hovold
2015-01-28 19:40         ` Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 141/176] pinctrl: Fix two deadlocks Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 142/176] libata: prevent HSM state change race between ISR and PIO Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 143/176] ALSA: usb-audio: Add mic volume fix quirk for Logitech Webcam C210 Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 144/176] scripts/recordmcount.pl: There is no -m32 gcc option on Super-H anymore Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 145/176] drm/i915: Fix mutex->owner inspection race under DEBUG_MUTEXES Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 146/176] drm/radeon: add si dpm quirk list Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 147/176] ipr: wait for aborted command responses Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 148/176] dm cache: share cache-metadata object across inactive and active DM tables Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 149/176] dm cache: fix problematic dual use of a single migration count variable Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 150/176] time: settimeofday: Validate the values of tv from user Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 151/176] time: adjtimex: Validate the ADJ_FREQUENCY values Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 152/176] ARM: dts: imx25: Fix PWM "per" clocks Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 153/176] bus: mvebu-mbus: fix support of MBus window 13 Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 154/176] can: dev: fix crtlmode_supported check Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 155/176] clocksource: exynos_mct: Fix bitmask regression for exynos4_mct_write Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 156/176] x86, hyperv: Mark the Hyper-V clocksource as being continuous Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 157/176] x86/tsc: Change Fast TSC calibration failed from error to info Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 158/176] x86, boot: Skip relocs when load address unchanged Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 159/176] x86, tls, ldt: Stop checking lm in LDT_empty Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 160/176] x86, tls: Interpret an all-zero struct user_desc as "no segment" Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 161/176] x86/apic: Re-enable PCI_MSI support for non-SMP X86_32 Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 162/176] x86/asm/traps: Disable tracing and kprobes in fixup_bad_iret and sync_regs Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 163/176] sata_dwc_460ex: fix resource leak on error path Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 164/176] KEYS: close race between key lookup and freeing Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 165/176] ipvs: uninitialized data with IP_VS_IPV6 Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 167/176] crypto: prefix module autoloading with "crypto-" Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 168/176] crypto: include crypto- module prefix in template Jiri Slaby
2015-01-28 14:29 ` [PATCH 3.12 169/176] crypto: add missing crypto module aliases Jiri Slaby
2015-01-28 14:30 ` [PATCH 3.12 170/176] mmc: sdhci: Don't signal the sdio irq if it's not setup Jiri Slaby
2015-01-28 14:30 ` [PATCH 3.12 171/176] mm: get rid of radix tree gfp mask for pagecache_get_page Jiri Slaby
2015-01-28 14:30 ` [PATCH 3.12 172/176] md/raid5: fetch_block must fetch all the blocks handle_stripe_dirtying wants Jiri Slaby
2015-01-28 14:30 ` [PATCH 3.12 173/176] USB: adutux: NULL dereferences on disconnect Jiri Slaby
2015-01-28 14:30 ` [PATCH 3.12 174/176] usb: musb: Fix a few off-by-one lengths Jiri Slaby
2015-01-28 14:30 ` [PATCH 3.12 175/176] move d_rcu from overlapping d_child to overlapping d_alias Jiri Slaby
2015-01-28 14:30 ` [PATCH 3.12 176/176] deal with deadlock in d_walk() Jiri Slaby
2015-01-28 16:48 ` [PATCH 3.12 000/176] 3.12.37-stable review Guenter Roeck
2015-01-29 14:49   ` Jiri Slaby
2015-01-29 18:39     ` Guenter Roeck
2015-01-28 16:51 ` Shuah Khan

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=b3bc17d5bf7eb79e2c84ed93cfc5972239f61dfb.1422455352.git.jslaby@suse.cz \
    --to=jslaby@suse.cz \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.