public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Mike Kravetz <mike.kravetz@oracle.com>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
	Michal Hocko <mhocko@suse.com>, Vlastimil Babka <vbabka@suse.cz>,
	Davidlohr Bueso <dave@stgolabs.net>,
	Jerome Glisse <jglisse@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: [PATCH 4.4 157/160] mm: migration: fix migration of huge PMD shared pages
Date: Mon, 19 Nov 2018 17:29:56 +0100	[thread overview]
Message-ID: <20181119162644.424033521@linuxfoundation.org> (raw)
In-Reply-To: <20181119162630.031306128@linuxfoundation.org>

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

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

From: Mike Kravetz <mike.kravetz@oracle.com>

commit 017b1660df89f5fb4bfe66c34e35f7d2031100c7 upstream.

The page migration code employs try_to_unmap() to try and unmap the source
page.  This is accomplished by using rmap_walk to find all vmas where the
page is mapped.  This search stops when page mapcount is zero.  For shared
PMD huge pages, the page map count is always 1 no matter the number of
mappings.  Shared mappings are tracked via the reference count of the PMD
page.  Therefore, try_to_unmap stops prematurely and does not completely
unmap all mappings of the source page.

This problem can result is data corruption as writes to the original
source page can happen after contents of the page are copied to the target
page.  Hence, data is lost.

This problem was originally seen as DB corruption of shared global areas
after a huge page was soft offlined due to ECC memory errors.  DB
developers noticed they could reproduce the issue by (hotplug) offlining
memory used to back huge pages.  A simple testcase can reproduce the
problem by creating a shared PMD mapping (note that this must be at least
PUD_SIZE in size and PUD_SIZE aligned (1GB on x86)), and using
migrate_pages() to migrate process pages between nodes while continually
writing to the huge pages being migrated.

To fix, have the try_to_unmap_one routine check for huge PMD sharing by
calling huge_pmd_unshare for hugetlbfs huge pages.  If it is a shared
mapping it will be 'unshared' which removes the page table entry and drops
the reference on the PMD page.  After this, flush caches and TLB.

mmu notifiers are called before locking page tables, but we can not be
sure of PMD sharing until page tables are locked.  Therefore, check for
the possibility of PMD sharing before locking so that notifiers can
prepare for the worst possible case.

Link: http://lkml.kernel.org/r/20180823205917.16297-2-mike.kravetz@oracle.com
[mike.kravetz@oracle.com: make _range_in_vma() a static inline]
  Link: http://lkml.kernel.org/r/6063f215-a5c8-2f0c-465a-2c515ddc952d@oracle.com
Fixes: 39dde65c9940 ("shared page table for hugetlb page")
Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Reviewed-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Reviewed-by: Jérôme Glisse <jglisse@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 include/linux/hugetlb.h |   14 ++++++++++++
 include/linux/mm.h      |    6 +++++
 mm/hugetlb.c            |   37 ++++++++++++++++++++++++++++++-
 mm/rmap.c               |   56 ++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 111 insertions(+), 2 deletions(-)

--- a/include/linux/hugetlb.h
+++ b/include/linux/hugetlb.h
@@ -110,6 +110,8 @@ pte_t *huge_pte_alloc(struct mm_struct *
 			unsigned long addr, unsigned long sz);
 pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr);
 int huge_pmd_unshare(struct mm_struct *mm, unsigned long *addr, pte_t *ptep);
+void adjust_range_if_pmd_sharing_possible(struct vm_area_struct *vma,
+				unsigned long *start, unsigned long *end);
 struct page *follow_huge_addr(struct mm_struct *mm, unsigned long address,
 			      int write);
 struct page *follow_huge_pmd(struct mm_struct *mm, unsigned long address,
@@ -132,6 +134,18 @@ static inline unsigned long hugetlb_tota
 	return 0;
 }
 
+static inline int huge_pmd_unshare(struct mm_struct *mm, unsigned long *addr,
+						pte_t *ptep)
+{
+	return 0;
+}
+
+static inline void adjust_range_if_pmd_sharing_possible(
+				struct vm_area_struct *vma,
+				unsigned long *start, unsigned long *end)
+{
+}
+
 #define follow_hugetlb_page(m,v,p,vs,a,b,i,w)	({ BUG(); 0; })
 #define follow_huge_addr(mm, addr, write)	ERR_PTR(-EINVAL)
 #define copy_hugetlb_page_range(src, dst, vma)	({ BUG(); 0; })
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -2058,6 +2058,12 @@ static inline struct vm_area_struct *fin
 	return vma;
 }
 
+static inline bool range_in_vma(struct vm_area_struct *vma,
+				unsigned long start, unsigned long end)
+{
+	return (vma && vma->vm_start <= start && end <= vma->vm_end);
+}
+
 #ifdef CONFIG_MMU
 pgprot_t vm_get_page_prot(unsigned long vm_flags);
 void vma_set_page_prot(struct vm_area_struct *vma);
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -4216,13 +4216,41 @@ static bool vma_shareable(struct vm_area
 	/*
 	 * check on proper vm_flags and page table alignment
 	 */
-	if (vma->vm_flags & VM_MAYSHARE &&
-	    vma->vm_start <= base && end <= vma->vm_end)
+	if (vma->vm_flags & VM_MAYSHARE && range_in_vma(vma, base, end))
 		return true;
 	return false;
 }
 
 /*
+ * Determine if start,end range within vma could be mapped by shared pmd.
+ * If yes, adjust start and end to cover range associated with possible
+ * shared pmd mappings.
+ */
+void adjust_range_if_pmd_sharing_possible(struct vm_area_struct *vma,
+				unsigned long *start, unsigned long *end)
+{
+	unsigned long check_addr = *start;
+
+	if (!(vma->vm_flags & VM_MAYSHARE))
+		return;
+
+	for (check_addr = *start; check_addr < *end; check_addr += PUD_SIZE) {
+		unsigned long a_start = check_addr & PUD_MASK;
+		unsigned long a_end = a_start + PUD_SIZE;
+
+		/*
+		 * If sharing is possible, adjust start/end if necessary.
+		 */
+		if (range_in_vma(vma, a_start, a_end)) {
+			if (a_start < *start)
+				*start = a_start;
+			if (a_end > *end)
+				*end = a_end;
+		}
+	}
+}
+
+/*
  * Search for a shareable pmd page for hugetlb. In any case calls pmd_alloc()
  * and returns the corresponding pte. While this is not necessary for the
  * !shared pmd case because we can allocate the pmd later as well, it makes the
@@ -4318,6 +4346,11 @@ int huge_pmd_unshare(struct mm_struct *m
 {
 	return 0;
 }
+
+void adjust_range_if_pmd_sharing_possible(struct vm_area_struct *vma,
+				unsigned long *start, unsigned long *end)
+{
+}
 #define want_pmd_share()	(0)
 #endif /* CONFIG_ARCH_WANT_HUGE_PMD_SHARE */
 
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -1324,12 +1324,41 @@ static int try_to_unmap_one(struct page
 	pte_t pteval;
 	spinlock_t *ptl;
 	int ret = SWAP_AGAIN;
+	unsigned long sh_address;
+	bool pmd_sharing_possible = false;
+	unsigned long spmd_start, spmd_end;
 	enum ttu_flags flags = (enum ttu_flags)arg;
 
 	/* munlock has nothing to gain from examining un-locked vmas */
 	if ((flags & TTU_MUNLOCK) && !(vma->vm_flags & VM_LOCKED))
 		goto out;
 
+	/*
+	 * Only use the range_start/end mmu notifiers if huge pmd sharing
+	 * is possible.  In the normal case, mmu_notifier_invalidate_page
+	 * is sufficient as we only unmap a page.  However, if we unshare
+	 * a pmd, we will unmap a PUD_SIZE range.
+	 */
+	if (PageHuge(page)) {
+		spmd_start = address;
+		spmd_end = spmd_start + vma_mmu_pagesize(vma);
+
+		/*
+		 * Check if pmd sharing is possible.  If possible, we could
+		 * unmap a PUD_SIZE range.  spmd_start/spmd_end will be
+		 * modified if sharing is possible.
+		 */
+		adjust_range_if_pmd_sharing_possible(vma, &spmd_start,
+								&spmd_end);
+		if (spmd_end - spmd_start != vma_mmu_pagesize(vma)) {
+			sh_address = address;
+
+			pmd_sharing_possible = true;
+			mmu_notifier_invalidate_range_start(vma->vm_mm,
+							spmd_start, spmd_end);
+		}
+	}
+
 	pte = page_check_address(page, mm, address, &ptl, 0);
 	if (!pte)
 		goto out;
@@ -1356,6 +1385,30 @@ static int try_to_unmap_one(struct page
 		}
   	}
 
+	/*
+	 * Call huge_pmd_unshare to potentially unshare a huge pmd.  Pass
+	 * sh_address as it will be modified if unsharing is successful.
+	 */
+	if (PageHuge(page) && huge_pmd_unshare(mm, &sh_address, pte)) {
+		/*
+		 * huge_pmd_unshare unmapped an entire PMD page.  There is
+		 * no way of knowing exactly which PMDs may be cached for
+		 * this mm, so flush them all.  spmd_start/spmd_end cover
+		 * this PUD_SIZE range.
+		 */
+		flush_cache_range(vma, spmd_start, spmd_end);
+		flush_tlb_range(vma, spmd_start, spmd_end);
+
+		/*
+		 * The ref count of the PMD page was dropped which is part
+		 * of the way map counting is done for shared PMDs.  When
+		 * there is no other sharing, huge_pmd_unshare returns false
+		 * and we will unmap the actual page and drop map count
+		 * to zero.
+		 */
+		goto out_unmap;
+	}
+
 	/* Nuke the page table entry. */
 	flush_cache_page(vma, address, page_to_pfn(page));
 	if (should_defer_flush(mm, flags)) {
@@ -1450,6 +1503,9 @@ out_unmap:
 	if (ret != SWAP_FAIL && ret != SWAP_MLOCK && !(flags & TTU_MUNLOCK))
 		mmu_notifier_invalidate_page(mm, address);
 out:
+	if (pmd_sharing_possible)
+		mmu_notifier_invalidate_range_end(vma->vm_mm,
+							spmd_start, spmd_end);
 	return ret;
 }
 



  parent reply	other threads:[~2018-11-19 17:02 UTC|newest]

Thread overview: 169+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-19 16:27 [PATCH 4.4 000/160] 4.4.164-stable review Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 001/160] bcache: fix miss key refill->end in writeback Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 002/160] hwmon: (pmbus) Fix page count auto-detection Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 003/160] jffs2: free jffs2_sb_info through jffs2_kill_sb() Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 004/160] pcmcia: Implement CLKRUN protocol disabling for Ricoh bridges Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 005/160] ipmi: Fix timer race with module unload Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 006/160] parisc: Fix address in HPMC IVA Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 007/160] parisc: Fix map_pages() to not overwrite existing pte entries Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 008/160] ALSA: hda - Add mic quirk for the Lenovo G50-30 (17aa:3905) Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 009/160] ALSA: ca0106: Disable IZD on SB0570 DAC to fix audio pops Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 010/160] x86/corruption-check: Fix panic in memory_corruption_check() when boot option without value is provided Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 011/160] x86/kconfig: Fall back to ticket spinlocks Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 012/160] sparc: Fix single-pcr perf event counter management Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 013/160] x86/fpu: Remove second definition of fpu in __fpu__restore_sig() Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 014/160] net: qla3xxx: Remove overflowing shift statement Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 015/160] selftests: ftrace: Add synthetic event syntax testcase Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 016/160] locking/lockdep: Fix debug_locks off performance problem Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 017/160] ataflop: fix error handling during setup Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 018/160] swim: fix cleanup on setup error Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 019/160] tun: Consistently configure generic netdev params via rtnetlink Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 020/160] perf tools: Free temporary sys string in read_event_files() Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 021/160] perf tools: Cleanup trace-event-info tdata leak Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 022/160] mmc: sdhci-pci-o2micro: Add quirk for O2 Micro dev 0x8620 rev 0x01 Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 023/160] Bluetooth: btbcm: Add entry for BCM4335C0 UART bluetooth Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 024/160] x86: boot: Fix EFI stub alignment Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 025/160] pinctrl: qcom: spmi-mpp: Fix err handling of pmic_mpp_set_mux Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 026/160] kprobes: Return error if we fail to reuse kprobe instead of BUG_ON() Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 027/160] ACPI / LPSS: Add alternative ACPI HIDs for Cherry Trail DMA controllers Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 028/160] pinctrl: qcom: spmi-mpp: Fix drive strength setting Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 029/160] pinctrl: spmi-mpp: Fix pmic_mpp_config_get() to be compliant Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 030/160] pinctrl: ssbi-gpio: Fix pm8xxx_pin_config_get() " Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 031/160] ath10k: schedule hardware restart if WMI command times out Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 032/160] scsi: esp_scsi: Track residual for PIO transfers Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 033/160] scsi: megaraid_sas: fix a missing-check bug Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 034/160] tpm: suppress transmit cmd error logs when TPM 1.2 is disabled/deactivated Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 035/160] ext4: fix argument checking in EXT4_IOC_MOVE_EXT Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 036/160] MD: fix invalid stored role for a disk Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 037/160] usb: chipidea: Prevent unbalanced IRQ disable Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 038/160] driver/dma/ioat: Call del_timer_sync() without holding prep_lock Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 039/160] uio: ensure class is registered before devices Greg Kroah-Hartman
2018-11-19 16:27 ` [PATCH 4.4 040/160] scsi: lpfc: Correct soft lockup when running mds diagnostics Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 041/160] signal: Always deliver the kernels SIGKILL and SIGSTOP to a pid namespace init Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 042/160] dmaengine: dma-jz4780: Return error if not probed from DT Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 043/160] ALSA: hda: Check the non-cached stream buffers more explicitly Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 044/160] xen-swiotlb: use actually allocated size on check physical continuous Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 045/160] tpm: Restore functionality to xen vtpm driver Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 046/160] xen: fix race in xen_qlock_wait() Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 047/160] xen: make xen_qlock_wait() nestable Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 048/160] net/ipv4: defensive cipso option parsing Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 049/160] libnvdimm: Hold reference on parent while scheduling async init Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 050/160] jbd2: fix use after free in jbd2_log_do_checkpoint() Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 051/160] gfs2_meta: ->mount() can get NULL dev_name Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 052/160] ext4: initialize retries variable in ext4_da_write_inline_data_begin() Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 053/160] HID: hiddev: fix potential Spectre v1 Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 054/160] PCI: Add Device IDs for Intel GPU "spurious interrupt" quirk Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 055/160] signal/GenWQE: Fix sending of SIGKILL Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 056/160] crypto: lrw - Fix out-of bounds access on counter overflow Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 057/160] ima: fix showing large violations or runtime_measurements_count Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 058/160] hugetlbfs: dirty pages as they are added to pagecache Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 059/160] kbuild: fix kernel/bounds.c W=1 warning Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 060/160] iio: adc: at91: fix acking DRDY irq on simple conversions Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 061/160] iio: adc: at91: fix wrong channel number in triggered buffer mode Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 062/160] w1: omap-hdq: fix missing bus unregister at removal Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 063/160] smb3: allow stats which track session and share reconnects to be reset Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 064/160] smb3: do not attempt cifs operation in smb3 query info error path Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 065/160] smb3: on kerberos mount if server doesnt specify auth type use krb5 Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 066/160] printk: Fix panic caused by passing log_buf_len to command line Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 067/160] genirq: Fix race on spurious interrupt detection Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 068/160] NFSv4.1: Fix the r/wsize checking Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 069/160] nfsd: Fix an Oops in free_session() Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 070/160] lockd: fix access beyond unterminated strings in prints Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 071/160] dm ioctl: harden copy_params()s copy_from_user() from malicious users Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 072/160] powerpc/msi: Fix compile error on mpc83xx Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 073/160] MIPS: OCTEON: fix out of bounds array access on CN68XX Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 074/160] TC: Set DMA masks for devices Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 075/160] kgdboc: Passing ekgdboc to command line causes panic Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 076/160] xen: fix xen_qlock_wait() Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 077/160] media: em28xx: use a default format if TRY_FMT fails Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 078/160] media: em28xx: fix input name for Terratec AV 350 Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 079/160] media: em28xx: make v4l2-compliance happier by starting sequence on zero Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 080/160] ext4: avoid running out of journal credits when appending to an inline file Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 081/160] Cramfs: fix abad comparison when wrap-arounds occur Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 082/160] arm64: dts: stratix10: Correct System Manager register size Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 083/160] soc/tegra: pmc: Fix child-node lookup Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 084/160] btrfs: Handle owner mismatch gracefully when walking up tree Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 085/160] btrfs: locking: Add extra check in btrfs_init_new_buffer() to avoid deadlock Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 086/160] btrfs: iterate all devices during trim, instead of fs_devices::alloc_list Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 087/160] btrfs: dont attempt to trim devices that dont support it Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 088/160] btrfs: wait on caching when putting the bg cache Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 089/160] btrfs: reset max_extent_size on clear in a bitmap Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 090/160] btrfs: make sure we create all new block groups Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 091/160] Btrfs: fix wrong dentries after fsync of file that got its parent replaced Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 092/160] btrfs: qgroup: Dirty all qgroups before rescan Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 093/160] Btrfs: fix null pointer dereference on compressed write path error Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 094/160] btrfs: set max_extent_size properly Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 095/160] MD: fix invalid stored role for a disk - try2 Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 096/160] tty: check name length in tty_find_polling_driver() Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 097/160] powerpc/nohash: fix undefined behaviour when testing page size support Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 098/160] drm/omap: fix memory barrier bug in DMM driver Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 099/160] media: pci: cx23885: handle adding to list failure Greg Kroah-Hartman
2018-11-19 16:28 ` [PATCH 4.4 100/160] MIPS: kexec: Mark CPU offline before disabling local IRQ Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 101/160] powerpc/boot: Ensure _zimage_start is a weak symbol Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 102/160] sc16is7xx: Fix for multi-channel stall Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 103/160] media: tvp5150: fix width alignment during set_selection() Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 104/160] 9p locks: fix glock.client_id leak in do_lock Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 105/160] 9p: clear dangling pointers in p9stat_free Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 106/160] cdrom: fix improper type cast, which can leat to information leak Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 107/160] scsi: qla2xxx: Fix incorrect port speed being set for FC adapters Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 108/160] fuse: Fix use-after-free in fuse_dev_do_read() Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 109/160] fuse: Fix use-after-free in fuse_dev_do_write() Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 110/160] fuse: fix blocked_waitq wakeup Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 111/160] fuse: set FR_SENT while locked Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 112/160] mm, elf: handle vm_brk error Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 113/160] binfmt_elf: fix calculations for bss padding Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 114/160] mm: refuse wrapped vm_brk requests Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 115/160] fs, elf: make sure to page align bss in load_elf_library Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 116/160] mm: do not bug_on on incorrect length in __mm_populate() Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 117/160] e1000: avoid null pointer dereference on invalid stat type Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 118/160] e1000: fix race condition between e1000_down() and e1000_watchdog Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 119/160] bna: ethtool: Avoid reading past end of buffer Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 120/160] MIPS: Loongson-3: Fix CPU UART irq delivery problem Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 121/160] MIPS: Loongson-3: Fix BRIDGE " Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 122/160] xtensa: add NOTES section to the linker script Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 123/160] xtensa: make sure bFLT stack is 16 byte aligned Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 124/160] xtensa: fix boot parameters address translation Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 125/160] clk: s2mps11: Fix matching when built as module and DT node contains compatible Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 126/160] libceph: bump CEPH_MSG_MAX_DATA_LEN Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 127/160] mach64: fix display corruption on big endian machines Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 128/160] mach64: fix image corruption due to reading accelerator registers Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 129/160] vhost/scsi: truncate T10 PI iov_iter to prot_bytes Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 130/160] ocfs2: fix a misuse a of brelse after failing ocfs2_check_dir_entry Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 131/160] mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings Greg Kroah-Hartman
2018-11-19 22:16   ` David Rientjes
2018-11-20  7:44     ` Michal Hocko
2018-11-20 23:53       ` David Rientjes
2018-11-21  7:59         ` Michal Hocko
2018-11-19 16:29 ` [PATCH 4.4 132/160] mtd: docg3: dont set conflicting BCH_CONST_PARAMS option Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 133/160] termios, tty/tty_baudrate.c: fix buffer overrun Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 134/160] arch/alpha, termios: implement BOTHER, IBSHIFT and termios2 Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 135/160] Btrfs: fix data corruption due to cloning of eof block Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 136/160] clockevents/drivers/i8253: Add support for PIT shutdown quirk Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 137/160] ext4: add missing brelse() update_backups()s error path Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 138/160] ext4: add missing brelse() in set_flexbg_block_bitmap()s " Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 139/160] ext4: add missing brelse() add_new_gdb_meta_bg()s " Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 140/160] ext4: avoid potential extra brelse in setup_new_flex_group_blocks() Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 141/160] ext4: fix possible inode leak in the retry loop of ext4_resize_fs() Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 142/160] ext4: avoid buffer leak in ext4_orphan_add() after prior errors Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 143/160] ext4: fix missing cleanup if ext4_alloc_flex_bg_array() fails while resizing Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 144/160] ext4: avoid possible double brelse() in add_new_gdb() on error path Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 145/160] ext4: fix possible leak of sbi->s_group_desc_leak in " Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 146/160] ext4: release bs.bh before re-using in ext4_xattr_block_find() Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 147/160] ext4: fix buffer leak in ext4_xattr_move_to_block() on error path Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 148/160] ext4: fix buffer leak in __ext4_read_dirblock() " Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 149/160] mount: Retest MNT_LOCKED in do_umount Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 150/160] mount: Dont allow copying MNT_UNBINDABLE|MNT_LOCKED mounts Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 151/160] mount: Prevent MNT_DETACH from disconnecting locked mounts Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 152/160] sunrpc: correct the computation for page_ptr when truncating Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 153/160] rtc: hctosys: Add missing range error reporting Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 154/160] fuse: fix leaked notify reply Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 155/160] configfs: replace strncpy with memcpy Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 156/160] hugetlbfs: fix kernel BUG at fs/hugetlbfs/inode.c:444! Greg Kroah-Hartman
2018-11-19 16:29 ` Greg Kroah-Hartman [this message]
2018-11-19 16:29 ` [PATCH 4.4 158/160] drm/rockchip: Allow driver to be shutdown on reboot/kexec Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 159/160] drm/dp_mst: Check if primary mstb is null Greg Kroah-Hartman
2018-11-19 16:29 ` [PATCH 4.4 160/160] drm/i915/hdmi: Add HDMI 2.0 audio clock recovery N values Greg Kroah-Hartman
2018-11-20  0:13 ` [PATCH 4.4 000/160] 4.4.164-stable review shuah
2018-11-20  8:15 ` Naresh Kamboju
2018-11-20 10:52 ` Jon Hunter
2018-11-20 20:39 ` Guenter Roeck

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=20181119162644.424033521@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=dave@stgolabs.net \
    --cc=jglisse@redhat.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mhocko@suse.com \
    --cc=mike.kravetz@oracle.com \
    --cc=n-horiguchi@ah.jp.nec.com \
    --cc=stable@vger.kernel.org \
    --cc=vbabka@suse.cz \
    /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