summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2019-09-16 10:41:26 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2019-09-16 10:41:26 -0400
commit17489ee5e21563544b1f91110b04f713d5dcbc4e (patch)
tree684eb01068edf78cbc09736c50f0a00df7226663
parentb2b9f6bf14d8255b0004b5030147358b93d95846 (diff)
downloadlongterm-queue-4.18-17489ee5e21563544b1f91110b04f713d5dcbc4e.tar.gz
mips: add fix for prev fix
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--queue/MIPS-Fix-bounds-check-virt_addr_valid.patch44
-rw-r--r--queue/series2
2 files changed, 45 insertions, 1 deletions
diff --git a/queue/MIPS-Fix-bounds-check-virt_addr_valid.patch b/queue/MIPS-Fix-bounds-check-virt_addr_valid.patch
new file mode 100644
index 0000000..2e045ab
--- /dev/null
+++ b/queue/MIPS-Fix-bounds-check-virt_addr_valid.patch
@@ -0,0 +1,44 @@
+From d6ed083f5cc621e15c15b56c3b585fd524dbcb0f Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Mon, 17 Jun 2019 00:30:39 +0200
+Subject: [PATCH] MIPS: Fix bounds check virt_addr_valid
+
+commit d6ed083f5cc621e15c15b56c3b585fd524dbcb0f upstream.
+
+The bounds check used the uninitialized variable vaddr, it should use
+the given parameter kaddr instead. When using the uninitialized value
+the compiler assumed it to be 0 and optimized this function to just
+return 0 in all cases.
+
+This should make the function check the range of the given address and
+only do the page map check in case it is in the expected range of
+virtual addresses.
+
+Fixes: 074a1e1167af ("MIPS: Bounds check virt_addr_valid")
+Cc: stable@vger.kernel.org # v4.12+
+Cc: Paul Burton <paul.burton@mips.com>
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+Signed-off-by: Paul Burton <paul.burton@mips.com>
+Cc: ralf@linux-mips.org
+Cc: jhogan@kernel.org
+Cc: f4bug@amsat.org
+Cc: linux-mips@vger.kernel.org
+Cc: ysu@wavecomp.com
+Cc: jcristau@debian.org
+
+diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c
+index 50ee7213b432..d79f2b432318 100644
+--- a/arch/mips/mm/mmap.c
++++ b/arch/mips/mm/mmap.c
+@@ -203,7 +203,7 @@ unsigned long arch_randomize_brk(struct mm_struct *mm)
+
+ bool __virt_addr_valid(const volatile void *kaddr)
+ {
+- unsigned long vaddr = (unsigned long)vaddr;
++ unsigned long vaddr = (unsigned long)kaddr;
+
+ if ((vaddr < PAGE_OFFSET) || (vaddr >= MAP_BASE))
+ return false;
+--
+2.7.4
+
diff --git a/queue/series b/queue/series
index 01380f8..2e4e9f6 100644
--- a/queue/series
+++ b/queue/series
@@ -225,4 +225,4 @@ Abort-file_remove_privs-for-non-reg.-files.patch
net-mlx5-Avoid-reloading-already-removed-devices.patch
drm-nouveau-Don-t-retry-infinitely-when-receiving-no.patch
drm-nouveau-i2c-Enable-i2c-pads-busses-during-preini.patch
-
+MIPS-Fix-bounds-check-virt_addr_valid.patch