All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Greg KH <gregkh@linuxfoundation.org>,
	torvalds@linux-foundation.org, akpm@linux-foundation.org,
	alan@lxorguk.ukuu.org.uk, Ulrich Obergfell <uobergfe@redhat.com>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Mel Gorman <mgorman@suse.de>, Hugh Dickins <hughd@google.com>,
	Larry Woodman <lwoodman@redhat.com>,
	Petr Matousek <pmatouse@redhat.com>,
	Rik van Riel <riel@redhat.com>
Subject: [ 169/187] mm: pmd_read_atomic: fix 32bit PAE pmd walk vs pmd_populate SMP race condition
Date: Thu, 12 Jul 2012 15:35:25 -0700	[thread overview]
Message-ID: <20120712191538.969292748@linuxfoundation.org> (raw)
In-Reply-To: <20120712191522.742634173@linuxfoundation.org>

From: Greg KH <gregkh@linuxfoundation.org>

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

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

From: Andrea Arcangeli <aarcange@redhat.com>

commit 26c191788f18129af0eb32a358cdaea0c7479626 upstream.

When holding the mmap_sem for reading, pmd_offset_map_lock should only
run on a pmd_t that has been read atomically from the pmdp pointer,
otherwise we may read only half of it leading to this crash.

PID: 11679  TASK: f06e8000  CPU: 3   COMMAND: "do_race_2_panic"
 #0 [f06a9dd8] crash_kexec at c049b5ec
 #1 [f06a9e2c] oops_end at c083d1c2
 #2 [f06a9e40] no_context at c0433ded
 #3 [f06a9e64] bad_area_nosemaphore at c043401a
 #4 [f06a9e6c] __do_page_fault at c0434493
 #5 [f06a9eec] do_page_fault at c083eb45
 #6 [f06a9f04] error_code (via page_fault) at c083c5d5
    EAX: 01fb470c EBX: fff35000 ECX: 00000003 EDX: 00000100 EBP:
    00000000
    DS:  007b     ESI: 9e201000 ES:  007b     EDI: 01fb4700 GS:  00e0
    CS:  0060     EIP: c083bc14 ERR: ffffffff EFLAGS: 00010246
 #7 [f06a9f38] _spin_lock at c083bc14
 #8 [f06a9f44] sys_mincore at c0507b7d
 #9 [f06a9fb0] system_call at c083becd
                         start           len
    EAX: ffffffda  EBX: 9e200000  ECX: 00001000  EDX: 6228537f
    DS:  007b      ESI: 00000000  ES:  007b      EDI: 003d0f00
    SS:  007b      ESP: 62285354  EBP: 62285388  GS:  0033
    CS:  0073      EIP: 00291416  ERR: 000000da  EFLAGS: 00000286

This should be a longstanding bug affecting x86 32bit PAE without THP.
Only archs with 64bit large pmd_t and 32bit unsigned long should be
affected.

With THP enabled the barrier() in pmd_none_or_trans_huge_or_clear_bad()
would partly hide the bug when the pmd transition from none to stable,
by forcing a re-read of the *pmd in pmd_offset_map_lock, but when THP is
enabled a new set of problem arises by the fact could then transition
freely in any of the none, pmd_trans_huge or pmd_trans_stable states.
So making the barrier in pmd_none_or_trans_huge_or_clear_bad()
unconditional isn't good idea and it would be a flakey solution.

This should be fully fixed by introducing a pmd_read_atomic that reads
the pmd in order with THP disabled, or by reading the pmd atomically
with cmpxchg8b with THP enabled.

Luckily this new race condition only triggers in the places that must
already be covered by pmd_none_or_trans_huge_or_clear_bad() so the fix
is localized there but this bug is not related to THP.

NOTE: this can trigger on x86 32bit systems with PAE enabled with more
than 4G of ram, otherwise the high part of the pmd will never risk to be
truncated because it would be zero at all times, in turn so hiding the
SMP race.

This bug was discovered and fully debugged by Ulrich, quote:

----
[..]
pmd_none_or_trans_huge_or_clear_bad() loads the content of edx and
eax.

    496 static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t
    *pmd)
    497 {
    498         /* depend on compiler for an atomic pmd read */
    499         pmd_t pmdval = *pmd;

                                // edi = pmd pointer
0xc0507a74 <sys_mincore+548>:   mov    0x8(%esp),%edi
...
                                // edx = PTE page table high address
0xc0507a84 <sys_mincore+564>:   mov    0x4(%edi),%edx
...
                                // eax = PTE page table low address
0xc0507a8e <sys_mincore+574>:   mov    (%edi),%eax

[..]

Please note that the PMD is not read atomically. These are two "mov"
instructions where the high order bits of the PMD entry are fetched
first. Hence, the above machine code is prone to the following race.

-  The PMD entry {high|low} is 0x0000000000000000.
   The "mov" at 0xc0507a84 loads 0x00000000 into edx.

-  A page fault (on another CPU) sneaks in between the two "mov"
   instructions and instantiates the PMD.

-  The PMD entry {high|low} is now 0x00000003fda38067.
   The "mov" at 0xc0507a8e loads 0xfda38067 into eax.
----

Reported-by: Ulrich Obergfell <uobergfe@redhat.com>
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Hugh Dickins <hughd@google.com>
Cc: Larry Woodman <lwoodman@redhat.com>
Cc: Petr Matousek <pmatouse@redhat.com>
Cc: Rik van Riel <riel@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/include/asm/pgtable-3level.h |   50 ++++++++++++++++++++++++++++++++++
 include/asm-generic/pgtable.h         |   22 +++++++++++++-
 2 files changed, 70 insertions(+), 2 deletions(-)

--- a/arch/x86/include/asm/pgtable-3level.h
+++ b/arch/x86/include/asm/pgtable-3level.h
@@ -31,6 +31,56 @@ static inline void native_set_pte(pte_t
 	ptep->pte_low = pte.pte_low;
 }
 
+#define pmd_read_atomic pmd_read_atomic
+/*
+ * pte_offset_map_lock on 32bit PAE kernels was reading the pmd_t with
+ * a "*pmdp" dereference done by gcc. Problem is, in certain places
+ * where pte_offset_map_lock is called, concurrent page faults are
+ * allowed, if the mmap_sem is hold for reading. An example is mincore
+ * vs page faults vs MADV_DONTNEED. On the page fault side
+ * pmd_populate rightfully does a set_64bit, but if we're reading the
+ * pmd_t with a "*pmdp" on the mincore side, a SMP race can happen
+ * because gcc will not read the 64bit of the pmd atomically. To fix
+ * this all places running pmd_offset_map_lock() while holding the
+ * mmap_sem in read mode, shall read the pmdp pointer using this
+ * function to know if the pmd is null nor not, and in turn to know if
+ * they can run pmd_offset_map_lock or pmd_trans_huge or other pmd
+ * operations.
+ *
+ * Without THP if the mmap_sem is hold for reading, the
+ * pmd can only transition from null to not null while pmd_read_atomic runs.
+ * So there's no need of literally reading it atomically.
+ *
+ * With THP if the mmap_sem is hold for reading, the pmd can become
+ * THP or null or point to a pte (and in turn become "stable") at any
+ * time under pmd_read_atomic, so it's mandatory to read it atomically
+ * with cmpxchg8b.
+ */
+#ifndef CONFIG_TRANSPARENT_HUGEPAGE
+static inline pmd_t pmd_read_atomic(pmd_t *pmdp)
+{
+	pmdval_t ret;
+	u32 *tmp = (u32 *)pmdp;
+
+	ret = (pmdval_t) (*tmp);
+	if (ret) {
+		/*
+		 * If the low part is null, we must not read the high part
+		 * or we can end up with a partial pmd.
+		 */
+		smp_rmb();
+		ret |= ((pmdval_t)*(tmp + 1)) << 32;
+	}
+
+	return (pmd_t) { ret };
+}
+#else /* CONFIG_TRANSPARENT_HUGEPAGE */
+static inline pmd_t pmd_read_atomic(pmd_t *pmdp)
+{
+	return (pmd_t) { atomic64_read((atomic64_t *)pmdp) };
+}
+#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
+
 static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
 {
 	set_64bit((unsigned long long *)(ptep), native_pte_val(pte));
--- a/include/asm-generic/pgtable.h
+++ b/include/asm-generic/pgtable.h
@@ -446,6 +446,18 @@ static inline int pmd_write(pmd_t pmd)
 #endif /* __HAVE_ARCH_PMD_WRITE */
 #endif /* CONFIG_TRANSPARENT_HUGEPAGE */
 
+#ifndef pmd_read_atomic
+static inline pmd_t pmd_read_atomic(pmd_t *pmdp)
+{
+	/*
+	 * Depend on compiler for an atomic pmd read. NOTE: this is
+	 * only going to work, if the pmdval_t isn't larger than
+	 * an unsigned long.
+	 */
+	return *pmdp;
+}
+#endif
+
 /*
  * This function is meant to be used by sites walking pagetables with
  * the mmap_sem hold in read mode to protect against MADV_DONTNEED and
@@ -459,11 +471,17 @@ static inline int pmd_write(pmd_t pmd)
  * undefined so behaving like if the pmd was none is safe (because it
  * can return none anyway). The compiler level barrier() is critically
  * important to compute the two checks atomically on the same pmdval.
+ *
+ * For 32bit kernels with a 64bit large pmd_t this automatically takes
+ * care of reading the pmd atomically to avoid SMP race conditions
+ * against pmd_populate() when the mmap_sem is hold for reading by the
+ * caller (a special atomic read not done by "gcc" as in the generic
+ * version above, is also needed when THP is disabled because the page
+ * fault can populate the pmd from under us).
  */
 static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t *pmd)
 {
-	/* depend on compiler for an atomic pmd read */
-	pmd_t pmdval = *pmd;
+	pmd_t pmdval = pmd_read_atomic(pmd);
 	/*
 	 * The barrier will stabilize the pmdval in a register or on
 	 * the stack so that it will stop changing under the code.



  parent reply	other threads:[~2012-07-12 22:51 UTC|newest]

Thread overview: 191+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-12 19:24 [ 000/187] 3.4.5-stable review Greg KH
2012-07-12 22:23 ` [ 001/187] Tools: hv: verify origin of netlink connector message Greg Kroah-Hartman
2012-07-12 22:23   ` [ 002/187] ARM: tegra: make tegra_cpu_reset_handler_enable() __init Greg Kroah-Hartman
2012-07-12 22:23   ` [ 003/187] ALSA: hda - Add Realtek ALC280 codec support Greg Kroah-Hartman
2012-07-12 22:23   ` [ 004/187] ALSA: hda - Fix memory leaks at module unload Greg Kroah-Hartman
2012-07-12 22:32 ` [ 005/187] ALSA: hda - Fix power-map regression for HP dv6 & co Greg Kroah-Hartman
2012-07-12 22:32   ` [ 006/187] powerpc/ftrace: Do not trace restore_interrupts() Greg Kroah-Hartman
2012-07-12 22:32   ` [ 007/187] powerpc: Fix uninitialised error in numa.c Greg Kroah-Hartman
2012-07-12 22:32   ` [ 008/187] powerpc/pseries: Fix software invalidate TCE Greg Kroah-Hartman
2012-07-12 22:32   ` [ 009/187] powerpc: check_and_cede_processor() never cedes Greg Kroah-Hartman
2012-07-12 22:32   ` [ 010/187] ARM: SAMSUNG: Fix for S3C2412 EBI memory mapping Greg Kroah-Hartman
2012-07-12 22:32   ` [ 011/187] ARM: SAMSUNG: Should check for IS_ERR(clk) instead of NULL Greg Kroah-Hartman
2012-07-12 22:32   ` [ 012/187] ARM: 7438/1: fill possible PMD empty section gaps Greg Kroah-Hartman
2012-07-12 22:32   ` [ 013/187] powerpc/kvm: sldi should be sld Greg Kroah-Hartman
2012-07-12 22:32   ` [ 014/187] powerpc/xmon: Use cpumask iterator to avoid warning Greg Kroah-Hartman
2012-07-12 22:32   ` [ 015/187] media: smsusb: add autodetection support for USB ID 2040:f5a0 Greg Kroah-Hartman
2012-07-12 22:32   ` [ 016/187] bql: Fix POSDIFF() to integer overflow aware Greg Kroah-Hartman
2012-07-12 22:32   ` [ 017/187] bql: Avoid unneeded limit decrement Greg Kroah-Hartman
2012-07-12 22:32   ` [ 018/187] bql: Avoid possible inconsistent calculation Greg Kroah-Hartman
2012-07-12 22:32   ` [ 019/187] net: sock: validate data_len before allocating skb in sock_alloc_send_pskb() Greg Kroah-Hartman
2012-07-12 22:32   ` [ 020/187] cipso: handle CIPSO options correctly when NetLabel is disabled Greg Kroah-Hartman
2012-07-12 22:32   ` [ 021/187] r8169: call netif_napi_del at errpaths and at driver unload Greg Kroah-Hartman
2012-07-12 22:32   ` [ 022/187] drop_monitor: dont sleep in atomic context Greg Kroah-Hartman
2012-07-12 22:32   ` [ 023/187] inetpeer: fix a race in inetpeer_gc_worker() Greg Kroah-Hartman
2012-07-12 22:33   ` [ 024/187] net: l2tp_eth: fix kernel panic on rmmod l2tp_eth Greg Kroah-Hartman
2012-07-12 22:33   ` [ 025/187] l2tp: fix a race in l2tp_ip_sendmsg() Greg Kroah-Hartman
2012-07-12 22:33   ` [ 026/187] lpc_eth: add missing ndo_change_mtu() Greg Kroah-Hartman
2012-07-12 22:33   ` [ 027/187] lpc_eth: fix tx completion Greg Kroah-Hartman
2012-07-12 22:33   ` [ 028/187] net: neighbour: fix neigh_dump_info() Greg Kroah-Hartman
2012-07-12 22:33   ` [ 029/187] ipv6: fib: Restore NTF_ROUTER exception in fib6_age() Greg Kroah-Hartman
2012-07-12 22:33   ` [ 030/187] ipv6: Move ipv6 proc file registration to end of init order Greg Kroah-Hartman
2012-07-12 22:33   ` [ 031/187] sky2: fix checksum bit management on some chips Greg Kroah-Hartman
2012-07-12 22:33   ` [ 032/187] Revert "niu: Add support for byte queue limits." Greg Kroah-Hartman
2012-07-12 22:33   ` [ 033/187] be2net: fix a race in be_xmit() Greg Kroah-Hartman
2012-07-12 22:33   ` [ 034/187] dummy: fix rcu_sched self-detected stalls Greg Kroah-Hartman
2012-07-12 22:33   ` [ 035/187] bonding: Fix corrupted queue_mapping Greg Kroah-Hartman
2012-07-12 22:33   ` [ 036/187] netpoll: fix netpoll_send_udp() bugs Greg Kroah-Hartman
2012-07-12 22:33   ` [ 037/187] bnx2x: fix checksum validation Greg Kroah-Hartman
2012-07-12 22:33   ` [ 038/187] bnx2x: fix panic when TX ring is full Greg Kroah-Hartman
2012-07-12 22:33   ` [ 039/187] net: remove skb_orphan_try() Greg Kroah-Hartman
2012-07-12 22:33   ` [ 040/187] bridge: Assign rtnl_link_ops to bridge devices created via ioctl (v2) Greg Kroah-Hartman
2012-07-12 22:33   ` [ 041/187] xen/netfront: teardown the device before unregistering it Greg Kroah-Hartman
2012-07-12 22:33   ` [ 042/187] mm: fix slab->page _count corruption when using slub Greg Kroah-Hartman
2012-07-12 22:33   ` [ 043/187] powerpc: More fixes for lazy IRQ vs. idle Greg Kroah-Hartman
2012-07-12 22:33   ` [ 044/187] powerpc: Fix build of some debug irq code Greg Kroah-Hartman
2012-07-12 22:33   ` [ 045/187] NFC: Return from rawsock_release when sk is NULL Greg Kroah-Hartman
2012-07-12 22:33   ` [ 046/187] NFC: Prevent multiple buffer overflows in NCI Greg Kroah-Hartman
2012-07-12 22:33   ` [ 047/187] hwmon: (applesmc) Limit key length in warning messages Greg Kroah-Hartman
2012-07-12 22:33   ` [ 048/187] staging: r8712u: Add new USB IDs Greg Kroah-Hartman
2012-07-12 22:33   ` [ 049/187] nilfs2: ensure proper cache clearing for gc-inodes Greg Kroah-Hartman
2012-07-12 22:33   ` [ 050/187] udf: Use ret instead of abusing i in udf_load_logicalvol() Greg Kroah-Hartman
2012-07-12 22:33   ` [ 051/187] udf: Avoid run away loop when partition table length is corrupted Greg Kroah-Hartman
2012-07-12 22:33   ` [ 052/187] udf: Fortify loading of sparing table Greg Kroah-Hartman
2012-07-12 22:33   ` [ 053/187] iommu/amd: Fix missing iommu_shutdown initialization in passthrough mode Greg Kroah-Hartman
2012-07-12 22:33   ` [ 054/187] iommu/amd: Initialize dma_ops for hotplug and sriov devices Greg Kroah-Hartman
2012-07-12 22:33   ` [ 055/187] iommu/tegra: smmu: Fix unsleepable memory allocation Greg Kroah-Hartman
2012-07-12 22:33   ` [ 056/187] rpmsg: avoid premature deallocation of endpoints Greg Kroah-Hartman
2012-07-12 22:33   ` [ 057/187] rpmsg: make sure inflight messages dont invoke just-removed callbacks Greg Kroah-Hartman
2012-07-12 22:33   ` [ 058/187] cifs: fix parsing of password mount option Greg Kroah-Hartman
2012-07-12 22:33   ` [ 060/187] ath9k: Fix a WARNING on suspend/resume with IBSS Greg Kroah-Hartman
2012-07-12 22:33   ` [ 061/187] ath9k: Fix softlockup in AR9485 Greg Kroah-Hartman
2012-07-12 22:33   ` [ 062/187] ath9k: fix a tx rate duration calculation bug Greg Kroah-Hartman
2012-07-12 22:33   ` =?y?q?=5B=20063/187=5D=20ath9k=3A=20fix=20invalid=20pointer=20access=20in=20the=20tx=20path?= Greg Kroah-Hartman
2012-07-12 22:33   ` [ 064/187] ath9k_hw: avoid possible infinite loop in ar9003_get_pll_sqsum_dvc Greg Kroah-Hartman
2012-07-12 22:33   ` [ 065/187] ath9k_htc: configure bssid on ASSOC/IBSS change Greg Kroah-Hartman
2012-07-12 22:33   ` [ 066/187] ath9k: fix dynamic WEP related regression Greg Kroah-Hartman
2012-07-12 22:33   ` [ 067/187] ath9k: enable serialize_regmode for non-PCIE AR9287 Greg Kroah-Hartman
2012-07-12 22:33   ` [ 068/187] ASoC: wm2200: Add missing BCLK rate Greg Kroah-Hartman
2012-07-12 22:33   ` [ 069/187] ASoC: tlv320aic3x: Fix codec pll configure bug Greg Kroah-Hartman
2012-07-12 22:33   ` [ 070/187] Btrfs: run delayed directory updates during log replay Greg Kroah-Hartman
2012-07-12 22:33   ` [ 071/187] drm/edid: dont return stack garbage from supports_rb Greg Kroah-Hartman
2012-07-12 22:33   ` [ 072/187] drm/nouveau/fbcon: using nv_two_heads is not a good idea Greg Kroah-Hartman
2012-07-12 22:33   ` [ 073/187] drm/i915: Fix eDP blank screen after S3 resume on HP desktops Greg Kroah-Hartman
2012-07-12 22:33   ` [ 074/187] drm/radeon: fix VM page table setup on SI Greg Kroah-Hartman
2012-07-12 22:33   ` [ 075/187] ACPI video: Still use ACPI backlight control if _DOS doesnt exist Greg Kroah-Hartman
2012-07-12 22:33   ` [ 076/187] acpi_pad: fix power_saving thread deadlock Greg Kroah-Hartman
2012-07-12 22:33   ` [ 077/187] ACPI, APEI, Avoid too much error reporting in runtime Greg Kroah-Hartman
2012-07-12 22:33   ` [ 078/187] ACPI: Make acpi_skip_timer_override cover all source_irq==0 cases Greg Kroah-Hartman
2012-07-12 22:33   ` [ 079/187] ACPI: Remove one board specific WARN when ignoring timer overriding Greg Kroah-Hartman
2012-07-12 22:33   ` [ 080/187] ACPI: Add a quirk for "AMILO PRO V2030" to ignore the " Greg Kroah-Hartman
2012-07-12 22:33   ` [ 081/187] ACPI, x86: fix Dell M6600 ACPI reboot regression via DMI Greg Kroah-Hartman
2012-07-12 22:33   ` [ 082/187] ACPI sysfs.c strlen fix Greg Kroah-Hartman
2012-07-12 22:33   ` [ 083/187] ARM: Orion: Fix Virtual/Physical mixup with watchdog Greg Kroah-Hartman
2012-07-12 22:34   ` [ 084/187] ARM: Orion: Fix WDT compile for Dove and MV78xx0 Greg Kroah-Hartman
2012-07-12 22:34   ` [ 085/187] xen/blkback: Copy id field when doing BLKIF_DISCARD Greg Kroah-Hartman
2012-07-12 22:34   ` [ 086/187] umem: fix up unplugging Greg Kroah-Hartman
2012-07-12 22:34   ` [ 087/187] stable: Allow merging of backports for serious user-visible performance issues Greg Kroah-Hartman
2012-07-12 22:34   ` [ 088/187] mm: correctly synchronize rss-counters at exit/exec Greg Kroah-Hartman
2012-07-12 22:34   ` [ 089/187] PM / Sleep: Prevent waiting forever on asynchronous suspend after abort Greg Kroah-Hartman
2012-07-12 22:34   ` [ 090/187] dmaengine: pl330: dont complete descriptor for cyclic dma Greg Kroah-Hartman
2012-07-12 22:34   ` [ 091/187] NFS: Force the legacy idmapper to be single threaded Greg Kroah-Hartman
2012-07-12 22:34   ` [ 092/187] clk: Allow late cache allocation for clk->parents Greg Kroah-Hartman
2012-07-12 22:34   ` [ 093/187] clk: fix parent validation in __clk_set_parent() Greg Kroah-Hartman
2012-07-12 22:34   ` [ 094/187] gpiolib: wm8994: Pay attention to the value set when enabling as output Greg Kroah-Hartman
2012-07-12 22:34   ` [ 095/187] USB: option: add id for Cellient MEN-200 Greg Kroah-Hartman
2012-07-12 22:34   ` [ 096/187] USB: option: Add USB ID for Novatel Ovation MC551 Greg Kroah-Hartman
2012-07-12 22:34   ` [ 097/187] USB: CP210x Add 10 Device IDs Greg Kroah-Hartman
2012-07-12 22:34   ` [ 098/187] SCSI & usb-storage: add try_rc_10_first flag Greg Kroah-Hartman
2012-07-12 22:34   ` [ 099/187] usb-storage: revert commit afff07e61a52 (Add 090c:1000 to unusal-devs) Greg Kroah-Hartman
2012-07-12 22:34   ` [ 100/187] cfg80211: fix potential deadlock in regulatory Greg Kroah-Hartman
2012-07-12 22:34   ` [ 101/187] batman-adv: fix skb->data assignment Greg Kroah-Hartman
2012-07-12 22:34   ` [ 102/187] batman-adv: only drop packets of known wifi clients Greg Kroah-Hartman
2012-07-12 22:34   ` [ 103/187] ixgbe: Do not pad FCoE frames as this can cause issues with FCoE DDP Greg Kroah-Hartman
2012-07-12 22:34   ` [ 104/187] can: c_can: precedence error in c_can_chip_config() Greg Kroah-Hartman
2012-07-12 22:34   ` [ 105/187] can: flexcan: use be32_to_cpup to handle the value of dt entry Greg Kroah-Hartman
2012-07-12 22:34   ` =?y?q?=5B=20106/187=5D=20USB=3A=20qmi=5Fwwan=3A=20Make=20forced=20int=204=20whitelist=20generic?= Greg Kroah-Hartman
2012-07-12 22:34   ` =?y?q?=5B=20107/187=5D=20USB=3A=20qmi=5Fwwan=3A=20Add=20ZTE=20=28Vodafone=29=20K3520-Z?= Greg Kroah-Hartman
2012-07-12 22:34   ` =?y?q?=5B=20108/187=5D=20net=3A=20qmi=5Fwwan=3A=20fix=20Gobi=20device=20probing?= Greg Kroah-Hartman
2012-07-12 22:34   ` =?y?q?=5B=20109/187=5D=20net=3A=20qmi=5Fwwan=3A=20fix=20Oops=20while=20disconnecting?= Greg Kroah-Hartman
2012-07-12 22:34   ` [ 110/187] oprofile: perf: use NR_CPUS instead or nr_cpumask_bits for static array Greg Kroah-Hartman
2012-07-12 22:34   ` [ 111/187] x86, compat: Use test_thread_flag(TIF_IA32) in compat signal delivery Greg Kroah-Hartman
2012-07-12 22:34   ` [ 112/187] x86, cpufeature: Rename X86_FEATURE_DTS to X86_FEATURE_DTHERM Greg Kroah-Hartman
2012-07-12 22:34   ` [ 113/187] igbvf: fix divide by zero Greg Kroah-Hartman
2012-07-12 22:34   ` [ 114/187] rtlwifi: rtl8192cu: New USB IDs Greg Kroah-Hartman
2012-07-12 22:34   ` [ 115/187] mac80211: clear ifmgd->bssid only after building DELBA Greg Kroah-Hartman
2012-07-12 22:34   ` [ 116/187] mac80211: correct behaviour on unrecognised action frames Greg Kroah-Hartman
2012-07-12 22:34   ` [ 117/187] mwifiex: fix 11n rx packet drop issue Greg Kroah-Hartman
2012-07-12 22:34   ` [ 118/187] mwifiex: fix WPS eapol handshake failure Greg Kroah-Hartman
2012-07-12 22:34   ` =?y?q?=5B=20119/187=5D=20vfs=3A=20make=20O=5FPATH=20file=20descriptors=20usable=20for=20fchdir=28=29?= Greg Kroah-Hartman
2012-07-12 22:34   ` [ 120/187] mtd: cafe_nand: fix an & vs | mistake Greg Kroah-Hartman
2012-07-12 22:34   ` [ 121/187] aio: make kiocb->private NUll in init_sync_kiocb() Greg Kroah-Hartman
2012-07-12 22:34   ` [ 122/187] ocfs2: clear unaligned io flag when dio fails Greg Kroah-Hartman
2012-07-12 22:34   ` [ 123/187] iwlwifi: fix activating inactive stations Greg Kroah-Hartman
2012-07-12 22:34   ` [ 124/187] tcm_fc: Resolve suspicious RCU usage warnings Greg Kroah-Hartman
2012-07-12 22:34   ` [ 125/187] e1000e: remove use of IP payload checksum Greg Kroah-Hartman
2012-07-12 22:34   ` [ 126/187] remoteproc/omap: fix randconfig unmet direct dependencies Greg Kroah-Hartman
2012-07-12 22:34   ` [ 127/187] remoteproc: fix missing CONFIG_FW_LOADER configurations Greg Kroah-Hartman
2012-07-12 22:34   ` [ 128/187] hwspinlock/core: use global ID to register hwspinlocks on multiple devices Greg Kroah-Hartman
2012-07-12 22:34   ` [ 129/187] md/raid10: Dont try to recovery unmatched (and unused) chunks Greg Kroah-Hartman
2012-07-12 22:34   ` [ 130/187] md/raid10: fix failure when trying to repair a read error Greg Kroah-Hartman
2012-07-12 22:34   ` [ 131/187] md/raid5: In ops_run_io, inc nr_pending before calling md_wait_for_blocked_rdev Greg Kroah-Hartman
2012-07-12 22:34   ` [ 132/187] dm: verity fix documentation Greg Kroah-Hartman
2012-07-12 22:34   ` [ 133/187] dm persistent data: fix shadow_info_leak on dm_tm_destroy Greg Kroah-Hartman
2012-07-12 22:34   ` [ 134/187] dm persistent data: handle space map checker creation failure Greg Kroah-Hartman
2012-07-12 22:34   ` [ 135/187] dm persistent data: fix allocation failure in space map checker init Greg Kroah-Hartman
2012-07-12 22:34   ` [ 136/187] eCryptfs: Gracefully refuse miscdev file ops on inherited/passed files Greg Kroah-Hartman
2012-07-12 22:34   ` [ 137/187] eCryptfs: Fix lockdep warning in miscdev operations Greg Kroah-Hartman
2012-07-12 22:34   ` [ 138/187] eCryptfs: Properly check for O_RDONLY flag before doing privileged open Greg Kroah-Hartman
2012-07-12 22:34   ` [ 139/187] mm/memblock: cleanup on duplicate VA/PA conversion Greg Kroah-Hartman
2012-07-12 22:34   ` [ 140/187] mm/memblock: fix memory leak on extending regions Greg Kroah-Hartman
2012-07-12 22:34   ` [ 141/187] mm/memblock: fix overlapping allocation when doubling reserved array Greg Kroah-Hartman
2012-07-12 22:34   ` [ 142/187] OMAPDSS: use DSI_FIFO_BUG workaround only for manual update displays Greg Kroah-Hartman
2012-07-12 22:34   ` [ 143/187] e1000e: test for valid check_reset_block function pointer Greg Kroah-Hartman
2012-07-12 22:35   ` [ 144/187] HID: hid-multitouch: fix wrong protocol detection Greg Kroah-Hartman
2012-07-12 22:35   ` [ 145/187] ACPI / PM: Make acpi_pm_device_sleep_state() follow the specification Greg Kroah-Hartman
2012-07-12 22:35   ` [ 146/187] SCSI: Fix NULL dereferences in scsi_cmd_to_driver Greg Kroah-Hartman
2012-07-12 22:35   ` [ 147/187] SCSI: libsas: fix taskfile corruption in sas_ata_qc_fill_rtf Greg Kroah-Hartman
2012-07-12 22:35   ` [ 148/187] ACPI / PM: Leave Bus Master Arbitration enabled for suspend/resume Greg Kroah-Hartman
2012-07-12 22:35   ` [ 149/187] USB: metro-usb: fix tty_flip_buffer_push use Greg Kroah-Hartman
2012-07-12 22:35   ` =?y?q?=5B=20150/187=5D=20USB=3A=20cdc-wdm=3A=20fix=20lockup=20on=20error=20in=20wdm=5Fread?= Greg Kroah-Hartman
2012-07-12 22:35   ` =?y?q?=5B=20151/187=5D=20USB=3A=20option=3A=20add=20ZTE=20MF60?= Greg Kroah-Hartman
2012-07-12 22:35   ` [ 152/187] USB: option: Add MEDIATEK product ids Greg Kroah-Hartman
2012-07-12 22:35   ` [ 153/187] usb: Add support for root hub port status CAS Greg Kroah-Hartman
2012-07-12 22:35   ` [ 154/187] xhci: Fix hang on back-to-back Set TR Deq Ptr commands Greg Kroah-Hartman
2012-07-12 22:35   ` [ 155/187] PCI: EHCI: fix crash during suspend on ASUS computers Greg Kroah-Hartman
2012-07-12 22:35   ` [ 156/187] ipheth: add support for iPad Greg Kroah-Hartman
2012-07-12 22:35   ` [ 157/187] Lockd: pass network namespace to creation and destruction routines Greg Kroah-Hartman
2012-07-12 22:35   ` [ 158/187] SUNRPC: new svc_bind() routine introduced Greg Kroah-Hartman
2012-07-12 22:35   ` [ 159/187] SUNRPC: move per-net operations from svc_destroy() Greg Kroah-Hartman
2012-07-12 22:35   ` [ 160/187] NFS: hard-code init_net for NFS callback transports Greg Kroah-Hartman
2012-07-12 22:35   ` [ 161/187] mac80211: fix queues stuck issue with HT bandwidth change Greg Kroah-Hartman
2012-07-12 22:35   ` [ 162/187] iwlwifi: remove log_event debugfs file debugging is disabled Greg Kroah-Hartman
2012-07-12 22:35   ` [ 163/187] tracing: change CPU ring buffer state from tracing_cpumask Greg Kroah-Hartman
2012-07-12 22:35   ` [ 164/187] mwifiex: fix wrong return values in add_virtual_intf() error cases Greg Kroah-Hartman
2012-07-12 22:35   ` [ 165/187] gspca-core: Fix buffers staying in queued state after a stream_off Greg Kroah-Hartman
2012-07-12 22:35   ` [ 166/187] raid5: delayed stripe fix Greg Kroah-Hartman
2012-07-12 22:35   ` [ 167/187] tg3: Apply short DMA frag workaround to 5906 Greg Kroah-Hartman
2012-07-12 22:35   ` [ 168/187] ath9k: fix panic caused by returning a descriptor we have queued for reuse Greg Kroah-Hartman
2012-07-12 22:35   ` Greg Kroah-Hartman [this message]
2012-07-12 22:35   ` [ 170/187] thp: avoid atomic64_read in pmd_read_atomic for 32bit PAE Greg Kroah-Hartman
2012-07-12 22:35   ` [ 171/187] rtl8187: ->brightness_set can not sleep Greg Kroah-Hartman
2012-07-12 22:35   ` [ 172/187] macvtap: zerocopy: validate vectors before building skb Greg Kroah-Hartman
2012-07-12 22:35   ` [ 173/187] net/wireless: ipw2x00: add supported cipher suites to wiphy initialization Greg Kroah-Hartman
2012-07-12 22:35   ` [ 174/187] splice: fix racy pipe->buffers uses Greg Kroah-Hartman
2012-07-12 22:35   ` [ 175/187] drm/i915: Refactor the deferred PM_IIR handling into a single function Greg Kroah-Hartman
2012-07-12 22:35   ` [ 176/187] drm/i915: rip out the PM_IIR WARN Greg Kroah-Hartman
2012-07-12 22:35   ` [ 177/187] mm: Hold a file reference in madvise_remove Greg Kroah-Hartman
2012-07-12 22:35   ` [ 178/187] md/raid5: Do not add data_offset before call to is_badblock Greg Kroah-Hartman
2012-07-12 22:35   ` [ 179/187] staging:iio:ad7606: Re-add missing scale attribute Greg Kroah-Hartman
2012-07-12 22:35   ` [ 180/187] memory hotplug: fix invalid memory access caused by stale kswapd pointer Greg Kroah-Hartman
2012-07-12 22:35   ` [ 181/187] drivers/rtc/rtc-spear.c: fix use-after-free in spear_rtc_remove() Greg Kroah-Hartman
2012-07-12 22:35   ` [ 182/187] drivers/rtc/rtc-ab8500.c: use IRQF_ONESHOT when requesting a threaded IRQ Greg Kroah-Hartman
2012-07-12 22:35   ` =?y?q?=5B=20183/187=5D=20drivers/rtc/rtc-mxc=2Ec=3A=20fix=20irq=20enabled=20interrupts=20warning?= Greg Kroah-Hartman
2012-07-12 22:35   ` [ 184/187] mm, thp: abort compaction if migration page cannot be charged to memcg Greg Kroah-Hartman
2012-07-12 22:35   ` [ 185/187] fs: ramfs: file-nommu: add SetPageUptodate() Greg Kroah-Hartman
2012-07-12 22:35   ` [ 186/187] memblock: free allocated memblock_reserved_regions later Greg Kroah-Hartman
2012-07-12 22:35   ` [ 187/187] ocfs2: fix NULL pointer dereference in __ocfs2_change_file_space() Greg Kroah-Hartman
2012-07-13  4:42 ` [ 000/187] 3.4.5-stable review Sven Joachim
2012-07-13 14:06   ` Greg KH
2012-07-13 14:18   ` Herton Ronaldo Krzesinski
2012-07-13 14:25     ` Greg KH

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=20120712191538.969292748@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=hughd@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lwoodman@redhat.com \
    --cc=mgorman@suse.de \
    --cc=pmatouse@redhat.com \
    --cc=riel@redhat.com \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=uobergfe@redhat.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 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.