public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Kamal Mostafa <kamal@canonical.com>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
	kernel-team@lists.ubuntu.com
Cc: Rik van Riel <riel@redhat.com>, Mel Gorman <mgorman@suse.de>,
	Alex Thorlton <athorlton@sgi.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Kamal Mostafa <kamal@canonical.com>
Subject: [PATCH 3.8 093/166] mm: fix TLB flush race between migration, and change_protection_range
Date: Wed, 15 Jan 2014 13:51:47 -0800	[thread overview]
Message-ID: <1389822780-4729-94-git-send-email-kamal@canonical.com> (raw)
In-Reply-To: <1389822780-4729-1-git-send-email-kamal@canonical.com>

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

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

From: Rik van Riel <riel@redhat.com>

commit 20841405940e7be0617612d521e206e4b6b325db upstream.

There are a few subtle races, between change_protection_range (used by
mprotect and change_prot_numa) on one side, and NUMA page migration and
compaction on the other side.

The basic race is that there is a time window between when the PTE gets
made non-present (PROT_NONE or NUMA), and the TLB is flushed.

During that time, a CPU may continue writing to the page.

This is fine most of the time, however compaction or the NUMA migration
code may come in, and migrate the page away.

When that happens, the CPU may continue writing, through the cached
translation, to what is no longer the current memory location of the
process.

This only affects x86, which has a somewhat optimistic pte_accessible.
All other architectures appear to be safe, and will either always flush,
or flush whenever there is a valid mapping, even with no permissions
(SPARC).

The basic race looks like this:

CPU A			CPU B			CPU C

						load TLB entry
make entry PTE/PMD_NUMA
			fault on entry
						read/write old page
			start migrating page
			change PTE/PMD to new page
						read/write old page [*]
flush TLB
						reload TLB from new entry
						read/write new page
						lose data

[*] the old page may belong to a new user at this point!

The obvious fix is to flush remote TLB entries, by making sure that
pte_accessible aware of the fact that PROT_NONE and PROT_NUMA memory may
still be accessible if there is a TLB flush pending for the mm.

This should fix both NUMA migration and compaction.

[mgorman@suse.de: fix build]
Signed-off-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Mel Gorman <mgorman@suse.de>
Cc: Alex Thorlton <athorlton@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
---
 arch/sparc/include/asm/pgtable_64.h |  4 ++--
 arch/x86/include/asm/pgtable.h      | 11 ++++++++--
 include/asm-generic/pgtable.h       |  2 +-
 include/linux/mm_types.h            | 44 +++++++++++++++++++++++++++++++++++++
 kernel/fork.c                       |  1 +
 mm/huge_memory.c                    |  7 ++++++
 mm/mprotect.c                       |  2 ++
 mm/pgtable-generic.c                |  5 +++--
 8 files changed, 69 insertions(+), 7 deletions(-)

diff --git a/arch/sparc/include/asm/pgtable_64.h b/arch/sparc/include/asm/pgtable_64.h
index 7619f2f..dfb0019 100644
--- a/arch/sparc/include/asm/pgtable_64.h
+++ b/arch/sparc/include/asm/pgtable_64.h
@@ -616,7 +616,7 @@ static inline unsigned long pte_present(pte_t pte)
 }
 
 #define pte_accessible pte_accessible
-static inline unsigned long pte_accessible(pte_t a)
+static inline unsigned long pte_accessible(struct mm_struct *mm, pte_t a)
 {
 	return pte_val(a) & _PAGE_VALID;
 }
@@ -806,7 +806,7 @@ static inline void __set_pte_at(struct mm_struct *mm, unsigned long addr,
 	 * SUN4V NOTE: _PAGE_VALID is the same value in both the SUN4U
 	 *             and SUN4V pte layout, so this inline test is fine.
 	 */
-	if (likely(mm != &init_mm) && pte_accessible(orig))
+	if (likely(mm != &init_mm) && pte_accessible(mm, orig))
 		tlb_batch_add(mm, addr, ptep, orig, fullmm);
 }
 
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index 1c1a955..e4f518b 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -414,9 +414,16 @@ static inline int pte_present(pte_t a)
 }
 
 #define pte_accessible pte_accessible
-static inline int pte_accessible(pte_t a)
+static inline bool pte_accessible(struct mm_struct *mm, pte_t a)
 {
-	return pte_flags(a) & _PAGE_PRESENT;
+	if (pte_flags(a) & _PAGE_PRESENT)
+		return true;
+
+	if ((pte_flags(a) & (_PAGE_PROTNONE | _PAGE_NUMA)) &&
+			mm_tlb_flush_pending(mm))
+		return true;
+
+	return false;
 }
 
 static inline int pte_hidden(pte_t pte)
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
index f50a87d..1af32dc 100644
--- a/include/asm-generic/pgtable.h
+++ b/include/asm-generic/pgtable.h
@@ -230,7 +230,7 @@ static inline int pmd_same(pmd_t pmd_a, pmd_t pmd_b)
 #endif
 
 #ifndef pte_accessible
-# define pte_accessible(pte)		((void)(pte),1)
+# define pte_accessible(mm, pte)	((void)(pte), 1)
 #endif
 
 #ifndef flush_tlb_fix_spurious_fault
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index 7716e38..939fbd3 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -436,6 +436,14 @@ struct mm_struct {
 	 */
 	int first_nid;
 #endif
+#if defined(CONFIG_NUMA_BALANCING) || defined(CONFIG_COMPACTION)
+	/*
+	 * An operation with batched TLB flushing is going on. Anything that
+	 * can move process memory needs to flush the TLB when moving a
+	 * PROT_NONE or PROT_NUMA mapped page.
+	 */
+	bool tlb_flush_pending;
+#endif
 	struct uprobes_state uprobes_state;
 };
 
@@ -456,4 +464,40 @@ static inline cpumask_t *mm_cpumask(struct mm_struct *mm)
 	return mm->cpu_vm_mask_var;
 }
 
+#if defined(CONFIG_NUMA_BALANCING) || defined(CONFIG_COMPACTION)
+/*
+ * Memory barriers to keep this state in sync are graciously provided by
+ * the page table locks, outside of which no page table modifications happen.
+ * The barriers below prevent the compiler from re-ordering the instructions
+ * around the memory barriers that are already present in the code.
+ */
+static inline bool mm_tlb_flush_pending(struct mm_struct *mm)
+{
+	barrier();
+	return mm->tlb_flush_pending;
+}
+static inline void set_tlb_flush_pending(struct mm_struct *mm)
+{
+	mm->tlb_flush_pending = true;
+	barrier();
+}
+/* Clearing is done after a TLB flush, which also provides a barrier. */
+static inline void clear_tlb_flush_pending(struct mm_struct *mm)
+{
+	barrier();
+	mm->tlb_flush_pending = false;
+}
+#else
+static inline bool mm_tlb_flush_pending(struct mm_struct *mm)
+{
+	return false;
+}
+static inline void set_tlb_flush_pending(struct mm_struct *mm)
+{
+}
+static inline void clear_tlb_flush_pending(struct mm_struct *mm)
+{
+}
+#endif
+
 #endif /* _LINUX_MM_TYPES_H */
diff --git a/kernel/fork.c b/kernel/fork.c
index 5c992f8..65b8b0a 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -543,6 +543,7 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p)
 	mm->cached_hole_size = ~0UL;
 	mm_init_aio(mm);
 	mm_init_owner(mm, p);
+	clear_tlb_flush_pending(mm);
 
 	if (likely(!mm_alloc_pgd(mm))) {
 		mm->def_flags = 0;
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 21ca328..b43f35a 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1379,6 +1379,13 @@ int do_huge_pmd_numa_page(struct mm_struct *mm, struct vm_area_struct *vma,
 	}
 
 	/*
+	 * The page_table_lock above provides a memory barrier
+	 * with change_protection_range.
+	 */
+	if (mm_tlb_flush_pending(mm))
+		flush_tlb_range(vma, haddr, haddr + HPAGE_PMD_SIZE);
+
+	/*
 	 * Migrate the THP to the requested node, returns with page unlocked
 	 * and pmd_numa cleared.
 	 */
diff --git a/mm/mprotect.c b/mm/mprotect.c
index c477655..0b6c605 100644
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -218,6 +218,7 @@ static unsigned long change_protection_range(struct vm_area_struct *vma,
 	BUG_ON(addr >= end);
 	pgd = pgd_offset(mm, addr);
 	flush_cache_range(vma, addr, end);
+	set_tlb_flush_pending(mm);
 	do {
 		next = pgd_addr_end(addr, end);
 		if (pgd_none_or_clear_bad(pgd))
@@ -229,6 +230,7 @@ static unsigned long change_protection_range(struct vm_area_struct *vma,
 	/* Only flush the TLB if we actually modified any entries: */
 	if (pages)
 		flush_tlb_range(vma, start, end);
+	clear_tlb_flush_pending(mm);
 
 	return pages;
 }
diff --git a/mm/pgtable-generic.c b/mm/pgtable-generic.c
index eb900bb..4b62a16 100644
--- a/mm/pgtable-generic.c
+++ b/mm/pgtable-generic.c
@@ -86,9 +86,10 @@ int pmdp_clear_flush_young(struct vm_area_struct *vma,
 pte_t ptep_clear_flush(struct vm_area_struct *vma, unsigned long address,
 		       pte_t *ptep)
 {
+	struct mm_struct *mm = (vma)->vm_mm;
 	pte_t pte;
-	pte = ptep_get_and_clear((vma)->vm_mm, address, ptep);
-	if (pte_accessible(pte))
+	pte = ptep_get_and_clear(mm, address, ptep);
+	if (pte_accessible(mm, pte))
 		flush_tlb_page(vma, address);
 	return pte;
 }
-- 
1.8.3.2


  parent reply	other threads:[~2014-01-15 21:51 UTC|newest]

Thread overview: 168+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-15 21:50 [3.8.y.z extended stable] Linux 3.8.13.16 stable review Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 001/166] selinux: handle TCP SYN-ACK packets correctly in selinux_ip_postroute() Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 002/166] selinux: look for IPsec labels on both inbound and outbound packets Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 003/166] selinux: process labeled IPsec TCP SYN-ACK packets properly in selinux_ip_postroute() Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 004/166] dm delay: fix a possible deadlock due to shared workqueue Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 005/166] mac80211: fix scheduled scan rtnl deadlock Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 006/166] mac80211: don't attempt to reorder multicast frames Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 007/166] usb: gadget: composite: reset delayed_status on reset_config Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 008/166] usb: musb: only cancel work if it is initialized Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 009/166] usb: dwc3: fix implementation of endpoint wedge Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 010/166] [media] af9035: add ID [0ccd:00aa] TerraTec Cinergy T Stick (rev. 2) Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 011/166] [media] af9035: [0ccd:0099] TerraTec Cinergy T Stick Dual RC " Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 012/166] [media] af9035: add [0413:6a05] Leadtek WinFast DTV Dongle Dual Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 013/166] [media] saa7164: fix return value check in saa7164_initdev() Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 014/166] ath9k: Fix QuickDrop usage Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 015/166] ath9k: Fix XLNA bias strength Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 016/166] USB: serial: option: blacklist interface 1 for Huawei E173s-6 Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 017/166] USB: option: support new huawei devices Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 018/166] USB: spcp8x5: correct handling of CS5 setting Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 019/166] USB: mos7840: " Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 020/166] USB: ftdi_sio: fixed handling of unsupported CSIZE setting Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 021/166] USB: pl2303: fixed handling of CS5 setting Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 022/166] USB: cdc-acm: Added support for the Lenovo RD02-D400 USB Modem Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 023/166] drm/radeon: fixup bad vram size on SI Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 024/166] drm/radeon/atom: fix bus probes when hw_i2c is set (v2) Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 025/166] usb: hub: Use correct reset for wedged USB3 devices that are NOTATTACHED Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 026/166] drivers/char/i8k.c: add Dell XPLS L421X Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 027/166] PCI: Disable Bus Master only on kexec reboot Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 028/166] ARM: 7912/1: check stack pointer in get_wchan Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 029/166] ARM: 7913/1: fix framepointer check in unwind_frame Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 030/166] x86, build: Pass in additional -mno-mmx, -mno-sse options Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 031/166] ALSA: memalloc.h - fix wrong truncation of dma_addr_t Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 032/166] ALSA: compress: Fix 64bit ABI incompatibility Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 033/166] dm snapshot: avoid snapshot space leak on crash Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 034/166] dm table: fail dm_table_create on dm_round_up overflow Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 035/166] dm thin: switch to read only mode if a mapping insert fails Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 036/166] dm thin: switch to read-only mode if metadata space is exhausted Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 037/166] dm thin: always fallback the pool mode if commit fails Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 038/166] dm thin: re-establish read-only state when switching to fail mode Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 039/166] dm thin: allow pool in read-only mode to transition to read-write mode Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 040/166] x86, build, icc: Remove uninitialized_var() from compiler-intel.h Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 041/166] x86, efi: Don't use (U)EFI time services on 32 bit Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 042/166] dm bufio: initialize read-only module parameters Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 043/166] ALSA: hda - hdmi: Fix IEC958 ctl indexes for some simple HDMI devices Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 044/166] ARM: pxa: tosa: fix keys mapping Kamal Mostafa
2014-01-15 21:50 ` [PATCH 3.8 045/166] ARM: pxa: prevent PXA270 occasional reboot freezes Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 046/166] hwmon: (w83l786ng) Fix fan speed control mode setting and reporting Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 047/166] hwmon: (w83l768ng) Fix fan speed control range Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 048/166] hwmon: Prevent some divide by zeros in FAN_TO_REG() Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 049/166] Btrfs: fix access_ok() check in btrfs_ioctl_send() Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 050/166] futex: fix handling of read-only-mapped hugepages Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 051/166] KVM: Improve create VCPU parameter (CVE-2013-4587) Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 052/166] KVM: x86: Fix potential divide by 0 in lapic (CVE-2013-6367) Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 053/166] KVM: x86: Convert vapic synchronization to _cached functions (CVE-2013-6368) Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 054/166] KVM: x86: fix guest-initiated crash with x2apic (CVE-2013-6376) Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 055/166] selinux: handle TCP SYN-ACK packets correctly in selinux_ip_output() Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 056/166] drivers/rtc/rtc-at91rm9200.c: correct alarm over day/month wrap Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 057/166] mm: memcg: fix race condition between memcg teardown and swapin Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 058/166] powerpc: kvm: fix rare but potential deadlock scene Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 059/166] drm/i915: Do not clobber config status after a forced restore of hw state Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 060/166] drm/i915: Hold mutex across i915_gem_release Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 061/166] ASoC: tegra: fix uninitialized variables in set_fmt Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 062/166] usb: cdc-wdm: manage_power should always set needs_remote_wakeup Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 063/166] usb: serial: zte_ev: move support for ZTE AC2726 from zte_ev back to option Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 064/166] xhci: Limit the spurious wakeup fix only to HP machines Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 065/166] drm/i915: don't update the dri1 breadcrumb with modesetting Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 066/166] iscsi-target: Fix-up all zero data-length CDBs with R/W_BIT set Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 067/166] qla2xxx: Fix schedule_delayed_work() for target timeout calculations Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 068/166] drm/radeon: Fix sideport problems on certain RS690 boards Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 069/166] ALSA: hda - Add enable_msi=0 workaround for four HP machines Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 070/166] gpio: msm: Fix irq mask/unmask by writing bits instead of numbers Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 071/166] firewire: sbp2: bring back WRITE SAME support Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 072/166] ftrace: Initialize the ftrace profiler for each possible cpu Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 073/166] drm/edid: add quirk for BPC in Samsung NP700G7A-S01PL notebook Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 074/166] ASoC: wm5110: Correct HPOUT3 DAPM route typo Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 075/166] sched/rt: Fix rq's cpupri leak while enqueue/dequeue child RT entities Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 076/166] xfs: fix infinite loop by detaching the group/project hints from user dquot Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 077/166] ALSA: Add SNDRV_PCM_STATE_PAUSED case in wait_for_avail function Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 078/166] cpupower: Fix segfault due to incorrect getopt_long arugments Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 079/166] iio:adc:ad7887 Fix channel reported endianness from cpu to big endian Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 080/166] ASoC: wm_adsp: Add small delay while polling DSP RAM start Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 081/166] ASoC: wm8904: fix DSP mode B configuration Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 082/166] net_dma: mark broken Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 083/166] mm: numa: serialise parallel get_user_page against THP migration Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 084/166] mm: numa: call MMU notifiers on " Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 085/166] mm: clear pmd_numa before invalidating Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 086/166] mm: numa: do not clear PMD during PTE update scan Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 087/166] mm: numa: do not clear PTE for pte_numa update Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 088/166] mm: numa: ensure anon_vma is locked to prevent parallel THP splits Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 089/166] mm: numa: avoid unnecessary work on the failure path Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 090/166] sched: numa: skip inaccessible VMAs Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 091/166] mm: numa: clear numa hinting information on mprotect Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 092/166] mm: numa: avoid unnecessary disruption of NUMA hinting during migration Kamal Mostafa
2014-01-15 21:51 ` Kamal Mostafa [this message]
2014-01-15 21:51 ` [PATCH 3.8 094/166] mm: numa: defer TLB flush for THP migration as long as possible Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 095/166] mm/compaction: respect ignore_skip_hint in update_pageblock_skip Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 096/166] target/file: Update hw_max_sectors based on current block_size Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 097/166] arm64: ptrace: avoid using HW_BREAKPOINT_EMPTY for disabled events Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 098/166] libata: add ATA_HORKAGE_BROKEN_FPDMA_AA quirk for Seagate Momentus SpinPoint M8 Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 099/166] ext4: call ext4_error_inode() if jbd2_journal_dirty_metadata() fails Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 100/166] ext4: fix use-after-free in ext4_mb_new_blocks Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 101/166] ext4: check for overlapping extents in ext4_valid_extent_entries() Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 102/166] ext2: Fix oops in ext2_get_block() called from ext2_quota_write() Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 103/166] ext4: fix del_timer() misuse for ->s_err_report Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 104/166] scripts/link-vmlinux.sh: only filter kernel symbols for arm Kamal Mostafa
2014-01-15 21:51 ` [PATCH 3.8 105/166] drm/i915: Use the correct GMCH_CTRL register for Sandybridge+ Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 106/166] ext4: fix deadlock when writing in ENOSPC conditions Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 107/166] libata, freezer: avoid block device removal while system is frozen Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 108/166] drm/radeon: fix asic gfx values for scrapper asics Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 109/166] selinux: fix broken peer recv check Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 110/166] selinux: selinux_setprocattr()->ptrace_parent() needs rcu_read_lock() Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 111/166] auxvec.h: account for AT_HWCAP2 in AT_VECTOR_SIZE_BASE Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 112/166] power_supply: Fix Oops from NULL pointer dereference from wakeup_source_activate Kamal Mostafa
2014-01-16 17:48   ` Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 113/166] radiotap: fix bitmap-end-finding buffer overrun Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 114/166] rtlwifi: pci: Fix oops on driver unload Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 115/166] ath9k: Fix interrupt handling for the AR9002 family Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 116/166] dm9601: fix reception of full size ethernet frames on dm9620/dm9621a Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 117/166] dm9601: work around tx fifo sync issue on dm962x Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 118/166] drm/radeon: 0x9649 is SUMO2 not SUMO Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 119/166] drm/radeon: fix render backend setup for SI and CIK Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 120/166] drm/radeon: expose render backend mask to the userspace Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 121/166] tg3: Expand 4g_overflow_test workaround to skb fragments of any size Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 122/166] powerpc: Fix bad stack check in exception entry Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 123/166] Revert "of/address: Handle #address-cells > 2 specially" Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 124/166] KVM: x86: Fix APIC map calculation after re-enabling Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 125/166] x86, fpu, amd: Clear exceptions in AMD FXSAVE workaround Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 126/166] ath9k_htc: properly set MAC address and BSSID mask Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 127/166] aacraid: prevent invalid pointer dereference Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 128/166] mfd: rtsx_pcr: Disable interrupts before cancelling delayed works Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 129/166] mac80211: move "bufferable MMPDU" check to fix AP mode scan Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 130/166] ARM: fix footbridge clockevent device Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 131/166] ahci: add PCI ID for Marvell 88SE9170 SATA controller Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 132/166] ARM: fix "bad mode in ... handler" message for undefined instructions Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 133/166] ACPI / TPM: fix memory leak when walking ACPI namespace Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 134/166] ACPI / Battery: Add a _BIX quirk for NEC LZ750/LS Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 135/166] drm/nouveau/bios: make jump conditional Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 136/166] clk: clk-divider: fix divisor > 255 bug Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 137/166] SELinux: Fix possible NULL pointer dereference in selinux_inode_permission() Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 138/166] IPv6: Fixed support for blackhole and prohibit routes Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 139/166] net: do not pretend FRAGLIST support Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 140/166] rds: prevent BUG_ON triggered on congestion update to loopback Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 141/166] macvtap: Do not double-count received packets Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 142/166] macvtap: update file current position Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 143/166] tun: " Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 144/166] macvtap: signal truncated packets Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 145/166] virtio: delete napi structures from netdev before releasing memory Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 146/166] packet: fix send path when running with proto == 0 Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 147/166] ipv6: don't count addrconf generated routes against gc limit Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 148/166] net: drop_monitor: fix the value of maxattr Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 149/166] net: unix: allow set_peek_off to fail Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 150/166] tg3: Initialize REG_BASE_ADDR at PCI config offset 120 to 0 Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 151/166] netvsc: don't flush peers notifying work during setting mtu Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 152/166] net: unix: allow bind to fail on mutex lock Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 153/166] net: inet_diag: zero out uninitialized idiag_{src,dst} fields Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 154/166] drivers/net/hamradio: Integer overflow in hdlcdrv_ioctl() Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 155/166] hamradio/yam: fix info leak in ioctl Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 156/166] ipv6: always set the new created dst's from in ip6_rt_copy Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 157/166] rds: prevent dereference of a NULL device Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 158/166] net: rose: restore old recvmsg behavior Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 159/166] vlan: Fix header ops passthru when doing TX VLAN offload Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 160/166] virtio_net: fix error handling for mergeable buffers Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 161/166] virtio-net: make all RX paths handle errors consistently Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 162/166] virtio_net: don't leak memory or block when too many frags Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 163/166] virtio-net: fix refill races during restore Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 164/166] net: llc: fix use after free in llc_ui_recvmsg Kamal Mostafa
2014-01-15 21:52 ` [PATCH 3.8 165/166] netpoll: Fix missing TXQ unlock and and OOPS Kamal Mostafa
2014-01-15 21:53 ` [PATCH 3.8 166/166] bridge: use spin_lock_bh() in br_multicast_set_hash_max Kamal Mostafa

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=1389822780-4729-94-git-send-email-kamal@canonical.com \
    --to=kamal@canonical.com \
    --cc=akpm@linux-foundation.org \
    --cc=athorlton@sgi.com \
    --cc=kernel-team@lists.ubuntu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mgorman@suse.de \
    --cc=riel@redhat.com \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

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

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