integ/kernel/kernel-std/centos/patches/Fix-compile-issue-when-transparent-hugepages-are-off.patch
Robin Lu 38c184f1b4 Update kernel-std patches for kernel upgrade to version 1062.1.2
This upgrade fixes the CVEs listed below. We refresh the patches
against the new kernel source.
The patch 15 is now included in new version, so I drop it
in the new patch.

CVE bug: CVE-2019-11810:kernel: a NULL pointer dereference in
drivers/scsi/megaraid/megaraid_sas_base.c leading to DoS
CVE bug: CVE-2019-11811: kernel: use-after-free in IPMI Edit
CVE bug: CVE-2019-14835: kernel: vhost-net: guest to host kernel
escape during migration

Closes-Bug: 1849206
Closes-Bug: 1849209
Closes-Bug: 1847817

Change-Id: I217cf8684e31dacea627c33462e5e4b6e089c38f
Depends-On: https://review.opendev.org/#/c/695355/
Signed-off-by: Robin Lu <bin1.lu@intel.com>
2020-01-02 06:27:12 +00:00

69 lines
2.1 KiB
Diff

From b6ceef1c915827b50ce3f76da4dc47f3eb768b44 Mon Sep 17 00:00:00 2001
Message-Id: <b6ceef1c915827b50ce3f76da4dc47f3eb768b44.1527544850.git.Jim.Somerville@windriver.com>
From: Jim Somerville <Jim.Somerville@windriver.com>
Date: Thu, 15 Dec 2016 14:27:48 -0500
Subject: [PATCH 01/26] Fix compile issue when transparent hugepages are off
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Robin Lu <bin1.lu@intel.com>
---
drivers/gpu/drm/i915/i915_gemfs.c | 4 ++--
fs/proc/task_mmu.c | 2 ++
mm/swap.c | 2 ++
3 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_gemfs.c b/drivers/gpu/drm/i915/i915_gemfs.c
index 888b7d3f..efe915c7 100644
--- a/drivers/gpu/drm/i915/i915_gemfs.c
+++ b/drivers/gpu/drm/i915/i915_gemfs.c
@@ -49,7 +49,7 @@ int i915_gemfs_init(struct drm_i915_private *i915)
* memory pressure shmem should split any huge-pages which can be
* shrunk.
*/
-
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
if (has_transparent_hugepage()) {
struct super_block *sb = gemfs->mnt_sb;
/* FIXME: Disabled until we get W/A for read BW issue. */
@@ -63,7 +63,7 @@ int i915_gemfs_init(struct drm_i915_private *i915)
return err;
}
}
-
+#endif
i915->mm.gemfs = gemfs;
return 0;
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index e27a1d42..e8a8ba9d 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -1116,7 +1116,9 @@ static int pagemap_pmd_range(pmd_t *pmdp, unsigned long addr, unsigned long end,
{
struct vm_area_struct *vma;
struct pagemapread *pm = walk->private;
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
spinlock_t *ptl;
+#endif
pte_t *pte;
int err = 0;
diff --git a/mm/swap.c b/mm/swap.c
index 0982a35..6dcf38c 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -1043,8 +1043,10 @@ void release_pages(struct page **pages, int nr, bool cold)
if (!put_page_testzero(page))
continue;
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
VM_BUG_ON_PAGE(check_mmu_gather &&
trans_huge_mmu_gather_count(page), page);
+#endif
if (PageLRU(page)) {
if (!was_thp)
--
1.8.3.1