public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Luis Henriques <luis.henriques@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>,
	Luis Henriques <luis.henriques@canonical.com>
Subject: [PATCH 3.11 153/208] mm: fix TLB flush race between migration, and change_protection_range
Date: Mon, 13 Jan 2014 15:59:54 +0000	[thread overview]
Message-ID: <1389628849-1614-154-git-send-email-luis.henriques@canonical.com> (raw)
In-Reply-To: <1389628849-1614-1-git-send-email-luis.henriques@canonical.com>

3.11.10.3 -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: Luis Henriques <luis.henriques@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 3676031..90f289f 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 1c00631..90cf8db4 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -465,9 +465,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 0807ddf..380acce 100644
--- a/include/asm-generic/pgtable.h
+++ b/include/asm-generic/pgtable.h
@@ -221,7 +221,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 faf4b7c..ef9dc52 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -434,6 +434,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;
 };
 
@@ -454,4 +462,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 200a7a2..f1f82cf 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -540,6 +540,7 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p)
 	spin_lock_init(&mm->page_table_lock);
 	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 31950d6..37a8cd8 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1372,6 +1372,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 00edb75..7651a57 100644
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -216,6 +216,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))
@@ -227,6 +228,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 0e083c5..683f476 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-13 15:59 UTC|newest]

Thread overview: 210+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-13 15:57 [3.11.y.z extended stable] Linux 3.11.10.3 stable review Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 001/208] ARM: OMAP3: hwmod data: Don't prevent RESET of USB Host module Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 002/208] ARM: OMAP2+: hwmod: Fix SOFTRESET logic Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 003/208] Input: usbtouchscreen - separate report and transmit buffer size handling Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 004/208] staging: comedi: pcmuio: fix possible NULL deref on detach Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 005/208] staging: comedi: ssv_dnp: use comedi_dio_update_state() Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 006/208] staging: comedi: drivers: use comedi_dio_update_state() for simple cases Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 007/208] sc1200_wdt: Fix oops Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 008/208] [media] cxd2820r_core: fix sparse warnings Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 009/208] Btrfs: fix memory leak of chunks' extent map Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 010/208] Btrfs: fix hole check in log_one_extent Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 011/208] Btrfs: fix incorrect inode acl reset Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 012/208] Btrfs: do not run snapshot-aware defragment on error Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 013/208] xen-netback: fix refcnt unbalance for 3.11 and earlier versions Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 014/208] mm/hugetlb: check for pte NULL pointer in __page_check_address() Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 015/208] selinux: look for IPsec labels on both inbound and outbound packets Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 016/208] selinux: process labeled IPsec TCP SYN-ACK packets properly in selinux_ip_postroute() Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 017/208] IB/qib: Convert qib_user_sdma_pin_pages() to use get_user_pages_fast() Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 018/208] x86/apic: Disable I/O APIC before shutdown of the local APIC Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 019/208] TTY: pmac_zilog, check existence of ports in pmz_console_init() Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 020/208] ceph: cleanup aborted requests when re-sending requests Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 021/208] ceph: wake up 'safe' waiters when unregistering request Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 022/208] powerpc: kvm: fix rare but potential deadlock scene Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 023/208] libata: add ATA_HORKAGE_BROKEN_FPDMA_AA quirk for Seagate Momentus SpinPoint M8 Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 024/208] ext4: call ext4_error_inode() if jbd2_journal_dirty_metadata() fails Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 025/208] ahci: imx: Explicitly clear IMX6Q_GPR13_SATA_MPLL_CLK_EN Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 026/208] drm/i915: Take modeset locks around intel_modeset_setup_hw_state() Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 027/208] drm/i915: Do not clobber config status after a forced restore of hw state Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 028/208] ext4: fix use-after-free in ext4_mb_new_blocks Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 029/208] ext4: check for overlapping extents in ext4_valid_extent_entries() Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 030/208] ext2: Fix oops in ext2_get_block() called from ext2_quota_write() Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 031/208] drm/i915: Hold mutex across i915_gem_release Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 032/208] drm/i915: Fix use-after-free in do_switch Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 033/208] ext4: fix del_timer() misuse for ->s_err_report Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 034/208] ext4: Do not reserve clusters when fs doesn't support extents Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 035/208] ASoC: tegra: fix uninitialized variables in set_fmt Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 036/208] usb: cdc-wdm: manage_power should always set needs_remote_wakeup Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 037/208] usb: serial: zte_ev: move support for ZTE AC2726 from zte_ev back to option Luis Henriques
2014-01-13 15:57 ` [PATCH 3.11 038/208] scripts/link-vmlinux.sh: only filter kernel symbols for arm Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 039/208] gpio: twl4030: Fix regression for twl gpio LED output Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 040/208] drm/i915: don't update the dri1 breadcrumb with modesetting Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 041/208] iscsi-target: Fix-up all zero data-length CDBs with R/W_BIT set Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 042/208] iser-target: fix error return code in isert_create_device_ib_res() Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 043/208] qla2xxx: Fix schedule_delayed_work() for target timeout calculations Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 044/208] drm/radeon: Fix sideport problems on certain RS690 boards Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 045/208] ALSA: hda - Add enable_msi=0 workaround for four HP machines Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 046/208] drm/radeon: fix typo in cik_copy_dma Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 047/208] drm/radeon: add missing display tiling setup for oland Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 048/208] gpio: msm: Fix irq mask/unmask by writing bits instead of numbers Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 049/208] ALSA: hda - Add Dell headset detection quirk for three laptop models Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 050/208] firewire: sbp2: bring back WRITE SAME support Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 051/208] radiotap: fix bitmap-end-finding buffer overrun Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 052/208] ftrace: Initialize the ftrace profiler for each possible cpu Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 053/208] libata: disable a disk via libata.force params Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 054/208] bcache: Fix dirty_data accounting Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 055/208] drm/edid: add quirk for BPC in Samsung NP700G7A-S01PL notebook Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 056/208] ASoC: wm5110: Correct HPOUT3 DAPM route typo Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 057/208] sched/rt: Fix rq's cpupri leak while enqueue/dequeue child RT entities Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 058/208] drm/radeon/dpm: disable ss on Cayman Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 059/208] drm/radeon: check for 0 count in speaker allocation and SAD code Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 060/208] xfs: fix infinite loop by detaching the group/project hints from user dquot Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 061/208] ALSA: Add SNDRV_PCM_STATE_PAUSED case in wait_for_avail function Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 062/208] serial: 8250_dw: add new ACPI IDs Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 063/208] drm/i915: Use the correct GMCH_CTRL register for Sandybridge+ Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 064/208] rtlwifi: pci: Fix oops on driver unload Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 065/208] ath9k: Fix interrupt handling for the AR9002 family Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 066/208] cpupower: Fix segfault due to incorrect getopt_long arugments Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 067/208] iio:imu:adis16400 fix pressure channel scan type Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 068/208] iio:adc:ad7887 Fix channel reported endianness from cpu to big endian Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 069/208] staging: comedi: drivers: fix return value of comedi_load_firmware() Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 070/208] ext4: fix deadlock when writing in ENOSPC conditions Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 071/208] ASoC: wm_adsp: Add small delay while polling DSP RAM start Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 072/208] ASoC: wm8904: fix DSP mode B configuration Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 073/208] net_dma: mark broken Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 074/208] dm9601: fix reception of full size ethernet frames on dm9620/dm9621a Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 075/208] dm9601: work around tx fifo sync issue on dm962x Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 076/208] kexec: migrate to reboot cpu Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 077/208] mm/compaction: respect ignore_skip_hint in update_pageblock_skip Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 078/208] mm/memory-failure.c: recheck PageHuge() after hugetlb page migrate successfully Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 079/208] target/file: Update hw_max_sectors based on current block_size Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 080/208] arm64: ptrace: avoid using HW_BREAKPOINT_EMPTY for disabled events Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 081/208] libata, freezer: avoid block device removal while system is frozen Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 082/208] drm/radeon: fix asic gfx values for scrapper asics Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 083/208] ext4: add explicit casts when masking cluster sizes Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 084/208] drm/radeon: fix UVD 256MB check Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 085/208] drm/radeon: 0x9649 is SUMO2 not SUMO Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 086/208] drm/radeon: fix render backend setup for SI and CIK Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 087/208] selinux: fix broken peer recv check Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 088/208] selinux: selinux_setprocattr()->ptrace_parent() needs rcu_read_lock() Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 089/208] auxvec.h: account for AT_HWCAP2 in AT_VECTOR_SIZE_BASE Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 090/208] tg3: Expand 4g_overflow_test workaround to skb fragments of any size Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 091/208] cifs: We do not drop reference to tlink in CIFSCheckMFSymlink() Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 092/208] ARM: fix footbridge clockevent device Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 093/208] ARM: 7923/1: mm: fix dcache flush logic for compound high pages Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 094/208] powerpc: Fix bad stack check in exception entry Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 095/208] Revert "of/address: Handle #address-cells > 2 specially" Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 096/208] KVM: x86: Fix APIC map calculation after re-enabling Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 097/208] intel_pstate: Fail initialization if P-state information is missing Luis Henriques
2014-01-13 15:58 ` [PATCH 3.11 098/208] mm: fix use-after-free in sys_remap_file_pages Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 099/208] mm/memory-failure.c: transfer page count from head page to tail page after split thp Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 100/208] ARM: fix "bad mode in ... handler" message for undefined instructions Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 101/208] staging: comedi: 8255_pci: fix for newer PCI-DIO48H Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 102/208] can: peak_usb: fix mem leak in pcan_usb_pro_init() Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 103/208] x86 idle: Repair large-server 50-watt idle-power regression Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 104/208] ARM: OMAP2+: hwmod_data: fix missing OMAP_INTC_START in irq data Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 105/208] ceph: Avoid data inconsistency due to d-cache aliasing in readpage() Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 106/208] ath9k_htc: properly set MAC address and BSSID mask Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 107/208] powerpc: Align p_end Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 108/208] Input: allocate absinfo data when setting ABS capability Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 109/208] GFS2: don't hold s_umount over blkdev_put Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 110/208] GFS2: Fix incorrect invalidation for DIO/buffered I/O Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 111/208] jbd2: don't BUG but return ENOSPC if a handle runs out of space Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 112/208] sh: always link in helper functions extracted from libgcc Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 113/208] clocksource: dw_apb_timer_of: Fix read_sched_clock Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 114/208] clocksource: dw_apb_timer_of: Fix support for dts binding "snps,dw-apb-timer" Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 115/208] ceph: fix null pointer dereference Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 116/208] ceph: cleanup types in striped_read() Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 117/208] ceph: Add check returned value on func ceph_calc_ceph_pg Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 118/208] libceph: fix error handling in handle_reply() Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 119/208] libceph: potential NULL dereference in ceph_osdc_handle_map() Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 120/208] libceph: create_singlethread_workqueue() doesn't return ERR_PTRs Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 121/208] ceph: fix bugs about handling short-read for sync read mode Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 122/208] ceph: allow sync_read/write return partial successed size of read/write Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 123/208] rbd: fix buffer size for writes to images with snapshots Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 124/208] rbd: fix null dereference in dout Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 125/208] libceph: add function to ensure notifies are complete Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 126/208] rbd: complete notifies before cleaning up osd_client and rbd_dev Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 127/208] rbd: make rbd_obj_notify_ack() synchronous Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 128/208] rbd: fix use-after free of rbd_dev->disk Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 129/208] rbd: ignore unmapped snapshots that no longer exist Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 130/208] rbd: fix error handling from rbd_snap_name() Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 131/208] arm64: fix possible invalid FPSIMD initialization state Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 132/208] arm64: check for number of arguments in syscall_get/set_arguments() Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 133/208] arm64: dts: Reserve the memory used for secondary CPU release address Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 134/208] arm64: Remove unused cpu_name ascii in arch/arm64/mm/proc.S Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 135/208] arm64: Use Normal NonCacheable memory for writecombine Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 136/208] ext4: fix FITRIM in no journal mode Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 137/208] memcg: fix memcg_size() calculation Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 138/208] s390/3270: fix allocation of tty3270_screen structure Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 139/208] dell-wmi: Add KEY_MICMUTE to bios_to_linux_keycode Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 140/208] ACPI: Add BayTrail SoC GPIO and LPSS ACPI IDs Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 141/208] ext4: fix bigalloc regression Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 142/208] sh: add EXPORT_SYMBOL(min_low_pfn) and EXPORT_SYMBOL(max_low_pfn) to sh_ksyms_32.c Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 143/208] mm: numa: serialise parallel get_user_page against THP migration Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 144/208] mm: numa: call MMU notifiers on " Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 145/208] mm: clear pmd_numa before invalidating Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 146/208] mm: numa: do not clear PMD during PTE update scan Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 147/208] mm: numa: do not clear PTE for pte_numa update Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 148/208] mm: numa: ensure anon_vma is locked to prevent parallel THP splits Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 149/208] mm: numa: avoid unnecessary work on the failure path Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 150/208] sched: numa: skip inaccessible VMAs Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 151/208] mm: numa: clear numa hinting information on mprotect Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 152/208] mm: numa: avoid unnecessary disruption of NUMA hinting during migration Luis Henriques
2014-01-13 15:59 ` Luis Henriques [this message]
2014-01-13 15:59 ` [PATCH 3.11 154/208] mm: numa: guarantee that tlb_flush_pending updates are visible before page table updates Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 155/208] mm: numa: defer TLB flush for THP migration as long as possible Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 156/208] sched: Fix race on toggling cfs_bandwidth_used Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 157/208] sched: Fix cfs_bandwidth misuse of hrtimer_expires_remaining Luis Henriques
2014-01-13 15:59 ` [PATCH 3.11 158/208] sched: Fix hrtimer_cancel()/rq->lock deadlock Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 159/208] sched: Guarantee new group-entities always have weight Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 160/208] xhci: quirk for extra long delay for S4 Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 161/208] xhci: Fix spurious wakeups after S5 on Haswell Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 162/208] xhci: Limit the spurious wakeup fix only to HP machines Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 163/208] IPv6: Fixed support for blackhole and prohibit routes Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 164/208] net: do not pretend FRAGLIST support Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 165/208] rds: prevent BUG_ON triggered on congestion update to loopback Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 166/208] net: clear local_df when passing skb between namespaces Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 167/208] macvtap: Do not double-count received packets Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 168/208] macvtap: update file current position Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 169/208] tun: " Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 170/208] macvtap: signal truncated packets Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 171/208] virtio: delete napi structures from netdev before releasing memory Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 172/208] packet: fix send path when running with proto == 0 Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 173/208] ipv6: don't count addrconf generated routes against gc limit Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 174/208] net: drop_monitor: fix the value of maxattr Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 175/208] net: unix: allow set_peek_off to fail Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 176/208] tg3: Initialize REG_BASE_ADDR at PCI config offset 120 to 0 Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 177/208] netvsc: don't flush peers notifying work during setting mtu Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 178/208] ipv6: fix illegal mac_header comparison on 32bit Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 179/208] net: unix: allow bind to fail on mutex lock Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 180/208] ip_gre: fix msg_name parsing for recvfrom/recvmsg Luis Henriques
     [not found]   ` <20140113181022.2ae546af@vostro>
2014-01-13 16:24     ` Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 181/208] net: inet_diag: zero out uninitialized idiag_{src,dst} fields Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 182/208] drivers/net/hamradio: Integer overflow in hdlcdrv_ioctl() Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 183/208] hamradio/yam: fix info leak in ioctl Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 184/208] net: fec: fix potential use after free Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 185/208] ipv6: always set the new created dst's from in ip6_rt_copy Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 186/208] rds: prevent dereference of a NULL device Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 187/208] net: rose: restore old recvmsg behavior Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 188/208] vlan: Fix header ops passthru when doing TX VLAN offload Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 189/208] virtio_net: fix error handling for mergeable buffers Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 190/208] virtio-net: make all RX paths handle errors consistently Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 191/208] virtio_net: don't leak memory or block when too many frags Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 192/208] virtio-net: fix refill races during restore Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 193/208] net: llc: fix use after free in llc_ui_recvmsg Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 194/208] netpoll: Fix missing TXQ unlock and and OOPS Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 195/208] bridge: use spin_lock_bh() in br_multicast_set_hash_max Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 196/208] x86, fpu, amd: Clear exceptions in AMD FXSAVE workaround Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 197/208] mfd: rtsx_pcr: Disable interrupts before cancelling delayed works Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 198/208] mac80211: move "bufferable MMPDU" check to fix AP mode scan Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 199/208] ahci: add PCI ID for Marvell 88SE9170 SATA controller Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 200/208] ACPI / TPM: fix memory leak when walking ACPI namespace Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 201/208] intel_pstate: Add X86_FEATURE_APERFMPERF to cpu match parameters Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 202/208] ACPI / Battery: Add a _BIX quirk for NEC LZ750/LS Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 203/208] drm/nouveau/bios: make jump conditional Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 204/208] clk: clk-divider: fix divisor > 255 bug Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 205/208] parisc: Ensure full cache coherency for kmap/kunmap Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 206/208] ftrace/x86: Load ftrace_ops in parameter not the variable holding it Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 207/208] SELinux: Fix possible NULL pointer dereference in selinux_inode_permission() Luis Henriques
2014-01-13 16:00 ` [PATCH 3.11 208/208] clocksource: em_sti: Set cpu_possible_mask to fix SMP broadcast Luis Henriques

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=1389628849-1614-154-git-send-email-luis.henriques@canonical.com \
    --to=luis.henriques@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