All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Slaby <jslaby@suse.cz>
To: stable@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
	Johannes Weiner <hannes@cmpxchg.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Jiri Slaby <jslaby@suse.cz>
Subject: [PATCH 3.12 119/127] mm: filemap: update find_get_pages_tag() to deal with shadow entries
Date: Fri, 25 Nov 2016 09:30:32 +0100	[thread overview]
Message-ID: <8a8da3d62c2efd61b46df387f08e1dbfbe407f44.1480062521.git.jslaby@suse.cz> (raw)
In-Reply-To: <f668f2eee98250a2073a4beafdb7f6d1e21c528e.1480062521.git.jslaby@suse.cz>
In-Reply-To: <cover.1480062521.git.jslaby@suse.cz>

From: Johannes Weiner <hannes@cmpxchg.org>

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

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

commit 139b6a6fb1539e04b01663d61baff3088c63dbb5 upstream.

Dave Jones reports the following crash when find_get_pages_tag() runs
into an exceptional entry:

  kernel BUG at mm/filemap.c:1347!
  RIP: find_get_pages_tag+0x1cb/0x220
  Call Trace:
    find_get_pages_tag+0x36/0x220
    pagevec_lookup_tag+0x21/0x30
    filemap_fdatawait_range+0xbe/0x1e0
    filemap_fdatawait+0x27/0x30
    sync_inodes_sb+0x204/0x2a0
    sync_inodes_one_sb+0x19/0x20
    iterate_supers+0xb2/0x110
    sys_sync+0x44/0xb0
    ia32_do_call+0x13/0x13

  1343                         /*
  1344                          * This function is never used on a shmem/tmpfs
  1345                          * mapping, so a swap entry won't be found here.
  1346                          */
  1347                         BUG();

After commit 0cd6144aadd2 ("mm + fs: prepare for non-page entries in
page cache radix trees") this comment and BUG() are out of date because
exceptional entries can now appear in all mappings - as shadows of
recently evicted pages.

However, as Hugh Dickins notes,

  "it is truly surprising for a PAGECACHE_TAG_WRITEBACK (and probably
   any other PAGECACHE_TAG_*) to appear on an exceptional entry.

   I expect it comes down to an occasional race in RCU lookup of the
   radix_tree: lacking absolute synchronization, we might sometimes
   catch an exceptional entry, with the tag which really belongs with
   the unexceptional entry which was there an instant before."

And indeed, not only is the tree walk lockless, the tags are also read
in chunks, one radix tree node at a time.  There is plenty of time for
page reclaim to swoop in and replace a page that was already looked up
as tagged with a shadow entry.

Remove the BUG() and update the comment.  While reviewing all other
lookup sites for whether they properly deal with shadow entries of
evicted pages, update all the comments and fix memcg file charge moving
to not miss shmem/tmpfs swapcache pages.

Fixes: 0cd6144aadd2 ("mm + fs: prepare for non-page entries in page cache radix trees")
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Reported-by: Dave Jones <davej@redhat.com>
Acked-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 mm/filemap.c    | 49 ++++++++++++++++++++++++++++---------------------
 mm/memcontrol.c | 20 ++++++++++++--------
 mm/truncate.c   |  8 --------
 3 files changed, 40 insertions(+), 37 deletions(-)

diff --git a/mm/filemap.c b/mm/filemap.c
index af9e11ea4ecf..9fa5c3f40cd6 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -808,8 +808,8 @@ EXPORT_SYMBOL(page_cache_prev_hole);
  * Looks up the page cache slot at @mapping & @offset.  If there is a
  * page cache page, it is returned with an increased refcount.
  *
- * If the slot holds a shadow entry of a previously evicted page, it
- * is returned.
+ * If the slot holds a shadow entry of a previously evicted page, or a
+ * swap entry from shmem/tmpfs, it is returned.
  *
  * Otherwise, %NULL is returned.
  */
@@ -830,9 +830,9 @@ repeat:
 			if (radix_tree_deref_retry(page))
 				goto repeat;
 			/*
-			 * Otherwise, shmem/tmpfs must be storing a swap entry
-			 * here as an exceptional entry: so return it without
-			 * attempting to raise page count.
+			 * A shadow entry of a recently evicted page,
+			 * or a swap entry from shmem/tmpfs.  Return
+			 * it without attempting to raise page count.
 			 */
 			goto out;
 		}
@@ -865,8 +865,8 @@ EXPORT_SYMBOL(find_get_entry);
  * page cache page, it is returned locked and with an increased
  * refcount.
  *
- * If the slot holds a shadow entry of a previously evicted page, it
- * is returned.
+ * If the slot holds a shadow entry of a previously evicted page, or a
+ * swap entry from shmem/tmpfs, it is returned.
  *
  * Otherwise, %NULL is returned.
  *
@@ -999,8 +999,8 @@ EXPORT_SYMBOL(pagecache_get_page);
  * with ascending indexes.  There may be holes in the indices due to
  * not-present pages.
  *
- * Any shadow entries of evicted pages are included in the returned
- * array.
+ * Any shadow entries of evicted pages, or swap entries from
+ * shmem/tmpfs, are included in the returned array.
  *
  * find_get_entries() returns the number of pages and shadow entries
  * which were found.
@@ -1028,9 +1028,9 @@ repeat:
 			if (radix_tree_deref_retry(page))
 				goto restart;
 			/*
-			 * Otherwise, we must be storing a swap entry
-			 * here as an exceptional entry: so return it
-			 * without attempting to raise page count.
+			 * A shadow entry of a recently evicted page,
+			 * or a swap entry from shmem/tmpfs.  Return
+			 * it without attempting to raise page count.
 			 */
 			goto export;
 		}
@@ -1098,9 +1098,9 @@ repeat:
 				goto restart;
 			}
 			/*
-			 * Otherwise, shmem/tmpfs must be storing a swap entry
-			 * here as an exceptional entry: so skip over it -
-			 * we only reach this from invalidate_mapping_pages().
+			 * A shadow entry of a recently evicted page,
+			 * or a swap entry from shmem/tmpfs.  Skip
+			 * over it.
 			 */
 			continue;
 		}
@@ -1165,9 +1165,9 @@ repeat:
 				goto restart;
 			}
 			/*
-			 * Otherwise, shmem/tmpfs must be storing a swap entry
-			 * here as an exceptional entry: so stop looking for
-			 * contiguous pages.
+			 * A shadow entry of a recently evicted page,
+			 * or a swap entry from shmem/tmpfs.  Stop
+			 * looking for contiguous pages.
 			 */
 			break;
 		}
@@ -1241,10 +1241,17 @@ repeat:
 				goto restart;
 			}
 			/*
-			 * This function is never used on a shmem/tmpfs
-			 * mapping, so a swap entry won't be found here.
+			 * A shadow entry of a recently evicted page.
+			 *
+			 * Those entries should never be tagged, but
+			 * this tree walk is lockless and the tags are
+			 * looked up in bulk, one radix tree node at a
+			 * time, so there is a sizable window for page
+			 * reclaim to evict a page we saw tagged.
+			 *
+			 * Skip over it.
 			 */
-			BUG();
+			continue;
 		}
 
 		if (!page_cache_get_speculative(page))
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 4a1559d8739f..0154a004667c 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -6599,16 +6599,20 @@ static struct page *mc_handle_file_pte(struct vm_area_struct *vma,
 		pgoff = pte_to_pgoff(ptent);
 
 	/* page is moved even if it's not RSS of this task(page-faulted). */
-	page = find_get_page(mapping, pgoff);
-
 #ifdef CONFIG_SWAP
 	/* shmem/tmpfs may report page out on swap: account for that too. */
-	if (radix_tree_exceptional_entry(page)) {
-		swp_entry_t swap = radix_to_swp_entry(page);
-		if (do_swap_account)
-			*entry = swap;
-		page = find_get_page(swap_address_space(swap), swap.val);
-	}
+	if (shmem_mapping(mapping)) {
+		page = find_get_entry(mapping, pgoff);
+		if (radix_tree_exceptional_entry(page)) {
+			swp_entry_t swp = radix_to_swp_entry(page);
+			if (do_swap_account)
+				*entry = swp;
+			page = find_get_page(swap_address_space(swp), swp.val);
+		}
+	} else
+		page = find_get_page(mapping, pgoff);
+#else
+	page = find_get_page(mapping, pgoff);
 #endif
 	return page;
 }
diff --git a/mm/truncate.c b/mm/truncate.c
index 827ad8d2b5cd..6dde010a6676 100644
--- a/mm/truncate.c
+++ b/mm/truncate.c
@@ -415,14 +415,6 @@ unsigned long invalidate_mapping_pages(struct address_space *mapping,
 	unsigned long count = 0;
 	int i;
 
-	/*
-	 * Note: this function may get called on a shmem/tmpfs mapping:
-	 * pagevec_lookup() might then return 0 prematurely (because it
-	 * got a gangful of swap entries); but it's hardly worth worrying
-	 * about - it can rarely have anything to free from such a mapping
-	 * (most pages are dirty), and already skips over any difficulties.
-	 */
-
 	pagevec_init(&pvec, 0);
 	while (index <= end && pagevec_lookup_entries(&pvec, mapping, index,
 			min(end - index, (pgoff_t)PAGEVEC_SIZE - 1) + 1,
-- 
2.10.2

  parent reply	other threads:[~2016-11-25  8:35 UTC|newest]

Thread overview: 136+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-25  8:30 [PATCH 3.12 000/127] 3.12.68-stable review Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 001/127] Revert "KVM: MIPS: Drop other CPU ASIDs on guest MMU changes" Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 002/127] KVM: MIPS: Drop other CPU ASIDs on guest MMU changes Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 003/127] MIPS: KVM: Fix unused variable build warning Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 004/127] KVM: MIPS: Precalculate MMIO load resume PC Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 005/127] HID: input: add mic mute key on HP slim keyboard Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 006/127] HID: microsoft: Add Surface 4 type cover pro 4 (JP) Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 007/127] tty: Prevent ldisc drivers from re-using stale tty fields Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 008/127] UBIFS: Fix possible memory leak in ubifs_readdir() Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 009/127] HID: usbhid: Add HID_QUIRK_NOGET for Aten DVI KVM switch Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 010/127] libxfs: clean up _calc_dquots_per_chunk Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 011/127] KEYS: Fix short sprintf buffer in /proc/keys show function Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 012/127] ALSA: usb-audio: Add quirk for Syntek STK1160 Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 013/127] ALSA: hda - Merge RIRB_PRE_DELAY into CTX_WORKAROUND caps Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 014/127] ANDROID: binder: Add strong ref checks Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 015/127] ANDROID: binder: Clear binder and cookie when setting handle in flat binder struct Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 016/127] ubifs: Abort readdir upon error Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 017/127] ubifs: Fix regression in ubifs_readdir() Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 018/127] usb: gadget: function: u_ether: don't starve tx request queue Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 019/127] USB: serial: fix potential NULL-dereference at probe Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 020/127] USB: serial: ftdi_sio: add support for Infineon TriBoard TC2X7 Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 021/127] Fix potential infoleak in older kernels Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 022/127] vt: clear selection before resizing Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 023/127] hv: do not lose pending heartbeat vmbus packets Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 024/127] xhci: add restart quirk for Intel Wildcatpoint PCH Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 025/127] tty: limit terminal size to 4M chars Jiri Slaby
2016-11-25  8:28 ` [PATCH 3.12 026/127] USB: serial: cp210x: fix tiocmget error handling Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 027/127] KVM: x86: fix wbinvd_dirty_mask use-after-free Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 028/127] KVM: MIPS: Make ERET handle ERL before EXL Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 029/127] parisc: Ensure consistent state when switching to kernel stack at syscall entry Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 030/127] virtio: console: Unlock vqs while freeing buffers Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 031/127] Input: i8042 - add XMG C504 to keyboard reset table Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 032/127] firewire: net: guard against rx buffer overflows Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 033/127] firewire: net: fix fragmented datagram_size off-by-one Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 034/127] mac80211: discard multicast and 4-addr A-MSDUs Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 035/127] scsi: megaraid_sas: Fix data integrity failure for JBOD (passthrough) devices Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 036/127] scsi: scsi_debug: Fix memory leak if LBP enabled and module is unloaded Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 037/127] scsi: arcmsr: Send SYNCHRONIZE_CACHE command to firmware Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 038/127] drm/radeon/si_dpm: Limit clocks on HD86xx part Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 039/127] drm/radeon/si_dpm: workaround for SI kickers Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 040/127] drm/radeon: drop register readback in cayman_cp_int_cntl_setup Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 041/127] x86/xen: fix upper bound of pmd loop in xen_cleanhighmap() Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 042/127] ARM: 8584/1: floppy: avoid gcc-6 warning Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 043/127] drm/exynos: fix error handling in exynos_drm_subdrv_open Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 044/127] smc91x: avoid self-comparison warning Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 045/127] UBI: fastmap: scrub PEB when bitflips are detected in a free PEB EC header Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 046/127] pwm: Unexport children before chip removal Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 047/127] tty: vt, fix bogus division in csi_J Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 048/127] HID: usbhid: add ATEN CS962 to list of quirky devices Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 049/127] mm: hugetlb: allow hugepages_supported to be architecture specific Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 050/127] x86/mm/xen: Suppress hugetlbfs in PV guests Jiri Slaby
2016-11-25  8:29   ` Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 051/127] scsi: megaraid_sas: fix macro MEGASAS_IS_LOGICAL to avoid regression Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 052/127] ASoC: cs4270: fix DAPM stream name mismatch Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 053/127] dib0700: fix nec repeat handling Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 054/127] swapfile: fix memory corruption via malformed swapfile Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 055/127] coredump: fix unfreezable coredumping task Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 056/127] s390/hypfs: Use get_free_page() instead of kmalloc to ensure page alignment Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 057/127] staging: iio: ad5933: avoid uninitialized variable in error case Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 058/127] drivers: staging: nvec: remove bogus reset command for PS/2 interface Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 059/127] Revert "staging: nvec: ps2: change serio type to passthrough" Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 060/127] usb: gadget: u_ether: remove interrupt throttling Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 061/127] drbd: Fix kernel_sendmsg() usage - potential NULL deref Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 062/127] iommu/amd: Free domain id when free a domain of struct dma_ops_domain Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 063/127] mei: bus: fix received data size check in NFC fixup Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 064/127] lib/genalloc.c: start search from start of chunk Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 065/127] ACPI / APEI: Fix incorrect return value of ghes_proc() Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 066/127] mmc: mxs: Initialize the spinlock prior to using it Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 067/127] netfilter: fix namespace handling in nf_log_proc_dostring Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 068/127] KVM: x86: fix missed SRCU usage in kvm_lapic_set_vapic_addr Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 069/127] KVM: Disable irq while unregistering user notifier Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 070/127] can: bcm: fix warning in bcm_connect/proc_register Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 071/127] kbuild: add -fno-PIE Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 072/127] scripts/has-stack-protector: " Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 073/127] kbuild: Steal gcc's pie from the very beginning Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 074/127] ext4: sanity check the block and cluster size at mount time Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 075/127] mfd: core: Fix device reference leak in mfd_clone_cell Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 076/127] uwb: fix device reference leaks Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 077/127] PM / sleep: fix device reference leak in test_suspend Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 078/127] IB/mlx4: Fix create CQ error flow Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 079/127] IB/mlx5: Use cache line size to select CQE stride Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 080/127] IB/mlx5: Fix fatal error dispatching Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 081/127] IB/uverbs: Fix leak of XRC target QPs Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 082/127] IB/cm: Mark stale CM id's whenever the mad agent was unregistered Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 083/127] net: fix sk_mem_reclaim_partial() Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 084/127] tcp: fix overflow in __tcp_retransmit_skb() Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 085/127] net: avoid sk_forward_alloc overflows Jiri Slaby
2016-11-25  8:29 ` [PATCH 3.12 086/127] tcp: fix wrong checksum calculation on MTU probing Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 087/127] ip6_gre: fix flowi6_proto value in ip6gre_xmit_other() Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 088/127] ipmr, ip6mr: fix scheduling while atomic and a deadlock with ipmr_get_route Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 089/127] net: Add netdev all_adj_list refcnt propagation to fix panic Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 090/127] packet: call fanout_release, while UNREGISTERING a netdev Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 091/127] ipv6: correctly add local routes when lo goes up Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 092/127] bridge: multicast: restore perm router ports on multicast enable Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 093/127] net: sctp, forbid negative length Jiri Slaby
2016-11-25  8:30   ` Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 094/127] sctp: validate chunk len before actually using it Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 095/127] drivers/vfio: Rework offsetofend() Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 096/127] include/stddef.h: Move offsetofend() from vfio.h to a generic kernel header Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 097/127] stddef.h: move offsetofend inside #ifndef/#endif guard, neaten Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 098/127] net: clear sk_err_soft in sk_clone_lock() Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 099/127] net: mangle zero checksum in skb_checksum_help() Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 100/127] ip6_tunnel: Clear IP6CB in ip6tunnel_xmit() Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 101/127] tcp: fix potential memory corruption Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 102/127] dccp: do not send reset to already closed sockets Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 103/127] dccp: fix out of bound access in dccp_v4_err() Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 104/127] ipv6: dccp: fix out of bound access in dccp_v6_err() Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 105/127] ipv6: dccp: add missing bind_conflict to dccp_ipv6_mapped Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 106/127] sctp: assign assoc_id earlier in __sctp_connect Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 107/127] neigh: check error pointer instead of NULL for ipv4_neigh_lookup() Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 108/127] ipv4: use new_gw for redirect neigh lookup Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 109/127] tcp: take care of truncations done by sk_filter() Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 110/127] sparc: Don't leak context bits into thread->fault_address Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 111/127] sparc64 mm: Fix base TSB sizing when hugetlb pages are used Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 112/127] sparc: Handle negative offsets in arch_jump_label_transform Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 113/127] sparc64: Handle extremely large kernel TSB range flushes sanely Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 114/127] sparc64: Fix illegal relative branches in hypervisor patched TLB code Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 115/127] sparc64: Fix instruction count in comment for __hypervisor_flush_tlb_pending Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 116/127] sparc64: Fix illegal relative branches in hypervisor patched TLB cross-call code Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 117/127] sparc64: Handle extremely large kernel TLB range flushes more gracefully Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 118/127] cgroup: use an ordered workqueue for cgroup destruction Jiri Slaby
2016-11-26 20:55   ` Hugh Dickins
2016-11-28  8:26     ` Jiri Slaby
2016-11-25  8:30 ` Jiri Slaby [this message]
2016-11-25  8:30 ` [PATCH 3.12 120/127] mm: export symbol dependencies of is_zero_pfn() Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 121/127] KVM: check for !is_zero_pfn() in kvm_is_mmio_pfn() Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 122/127] drivers/net: Disable UFO through virtio Jiri Slaby
2016-11-30 23:54   ` Ben Hutchings
2016-12-01  9:03     ` Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 123/127] usb: musb: musb_cppi41: recognize HS devices in hostmode Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 124/127] perf: Tighten (and fix) the grouping condition Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 125/127] PCI: Handle read-only BARs on AMD CS553x devices Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 126/127] xen-pciback: Add name prefix to global 'permissive' variable Jiri Slaby
2016-11-25  8:30 ` [PATCH 3.12 127/127] ALSA: usb-audio: Fix runtime PM unbalance Jiri Slaby
2016-11-25 16:18 ` [PATCH 3.12 000/127] 3.12.68-stable review Guenter Roeck
2016-11-29 14:39   ` Jiri Slaby

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=8a8da3d62c2efd61b46df387f08e1dbfbe407f44.1480062521.git.jslaby@suse.cz \
    --to=jslaby@suse.cz \
    --cc=akpm@linux-foundation.org \
    --cc=hannes@cmpxchg.org \
    --cc=linux-kernel@vger.kernel.org \
    --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 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.