All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20160126155919.GA28238@arm.com>

diff --git a/a/1.txt b/N1/1.txt
index 9f66c44..57ceffc 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,7 +1,7 @@
 Hi Mika,
 
 On Tue, Jan 26, 2016 at 04:59:52PM +0200, mika.penttila@nextfour.com wrote:
-> From: Mika Penttila <mika.penttila@nextfour.com>
+> From: Mika Penttilä <mika.penttila@nextfour.com>
 > 
 > This makes the caller set_memory_xx() consistent with x86.
 > 
@@ -9,7 +9,7 @@ On Tue, Jan 26, 2016 at 04:59:52PM +0200, mika.penttila@nextfour.com wrote:
 >  lkml.kernel.org/g/<1453125665-26627-1-git-send-email-ard.biesheuvel@linaro.org>
 > applied.
 > 
-> Signed-off-by: Mika Penttila mika.penttila@nextfour.com
+> Signed-off-by: Mika Penttilä mika.penttila@nextfour.com
 > Reviewed-by: Laura Abbott <labbott@redhat.com>
 > Acked-by: David Rientjes <rientjes@google.com>
 > 
@@ -52,3 +52,55 @@ commit message. Does the patch below look ok to you?
 Will
 
 --->8
+
+>From 57adec866c0440976c96a4b8f5b59fb411b1cacb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Mika=20Penttil=C3=A4?= <mika.penttila@nextfour.com>
+Date: Tue, 26 Jan 2016 15:47:25 +0000
+Subject: [PATCH] arm64: mm: avoid calling apply_to_page_range on empty range
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Calling apply_to_page_range with an empty range results in a BUG_ON
+from the core code. This can be triggered by trying to load the st_drv
+module with CONFIG_DEBUG_SET_MODULE_RONX enabled:
+
+  kernel BUG at mm/memory.c:1874!
+  Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
+  Modules linked in:
+  CPU: 3 PID: 1764 Comm: insmod Not tainted 4.5.0-rc1+ #2
+  Hardware name: ARM Juno development board (r0) (DT)
+  task: ffffffc9763b8000 ti: ffffffc975af8000 task.ti: ffffffc975af8000
+  PC is at apply_to_page_range+0x2cc/0x2d0
+  LR is at change_memory_common+0x80/0x108
+
+This patch fixes the issue by making change_memory_common (called by the
+set_memory_* functions) a NOP when numpages == 0, therefore avoiding the
+erroneous call to apply_to_page_range and bringing us into line with x86
+and s390.
+
+Cc: <stable@vger.kernel.org>
+Reviewed-by: Laura Abbott <labbott@redhat.com>
+Acked-by: David Rientjes <rientjes@google.com>
+Signed-off-by: Mika Penttilä <mika.penttila@nextfour.com>
+Signed-off-by: Will Deacon <will.deacon@arm.com>
+---
+ arch/arm64/mm/pageattr.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/arch/arm64/mm/pageattr.c b/arch/arm64/mm/pageattr.c
+index 3571c7309c5e..cf6240741134 100644
+--- a/arch/arm64/mm/pageattr.c
++++ b/arch/arm64/mm/pageattr.c
+@@ -57,6 +57,9 @@ static int change_memory_common(unsigned long addr, int numpages,
+ 	if (end < MODULES_VADDR || end >= MODULES_END)
+ 		return -EINVAL;
+ 
++	if (!numpages)
++		return 0;
++
+ 	data.set_mask = set_mask;
+ 	data.clear_mask = clear_mask;
+ 
+-- 
+2.1.4
diff --git a/a/content_digest b/N1/content_digest
index 041bc8c..ebff452 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -13,7 +13,7 @@
  "Hi Mika,\n"
  "\n"
  "On Tue, Jan 26, 2016 at 04:59:52PM +0200, mika.penttila@nextfour.com wrote:\n"
- "> From: Mika Penttila <mika.penttila@nextfour.com>\n"
+ "> From: Mika Penttil\303\244 <mika.penttila@nextfour.com>\n"
  "> \n"
  "> This makes the caller set_memory_xx() consistent with x86.\n"
  "> \n"
@@ -21,7 +21,7 @@
  ">  lkml.kernel.org/g/<1453125665-26627-1-git-send-email-ard.biesheuvel@linaro.org>\n"
  "> applied.\n"
  "> \n"
- "> Signed-off-by: Mika Penttila mika.penttila@nextfour.com\n"
+ "> Signed-off-by: Mika Penttil\303\244 mika.penttila@nextfour.com\n"
  "> Reviewed-by: Laura Abbott <labbott@redhat.com>\n"
  "> Acked-by: David Rientjes <rientjes@google.com>\n"
  "> \n"
@@ -63,6 +63,58 @@
  "\n"
  "Will\n"
  "\n"
- --->8
+ "--->8\n"
+ "\n"
+ ">From 57adec866c0440976c96a4b8f5b59fb411b1cacb Mon Sep 17 00:00:00 2001\n"
+ "From: =?UTF-8?q?Mika=20Penttil=C3=A4?= <mika.penttila@nextfour.com>\n"
+ "Date: Tue, 26 Jan 2016 15:47:25 +0000\n"
+ "Subject: [PATCH] arm64: mm: avoid calling apply_to_page_range on empty range\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "\n"
+ "Calling apply_to_page_range with an empty range results in a BUG_ON\n"
+ "from the core code. This can be triggered by trying to load the st_drv\n"
+ "module with CONFIG_DEBUG_SET_MODULE_RONX enabled:\n"
+ "\n"
+ "  kernel BUG at mm/memory.c:1874!\n"
+ "  Internal error: Oops - BUG: 0 [#1] PREEMPT SMP\n"
+ "  Modules linked in:\n"
+ "  CPU: 3 PID: 1764 Comm: insmod Not tainted 4.5.0-rc1+ #2\n"
+ "  Hardware name: ARM Juno development board (r0) (DT)\n"
+ "  task: ffffffc9763b8000 ti: ffffffc975af8000 task.ti: ffffffc975af8000\n"
+ "  PC is at apply_to_page_range+0x2cc/0x2d0\n"
+ "  LR is at change_memory_common+0x80/0x108\n"
+ "\n"
+ "This patch fixes the issue by making change_memory_common (called by the\n"
+ "set_memory_* functions) a NOP when numpages == 0, therefore avoiding the\n"
+ "erroneous call to apply_to_page_range and bringing us into line with x86\n"
+ "and s390.\n"
+ "\n"
+ "Cc: <stable@vger.kernel.org>\n"
+ "Reviewed-by: Laura Abbott <labbott@redhat.com>\n"
+ "Acked-by: David Rientjes <rientjes@google.com>\n"
+ "Signed-off-by: Mika Penttil\303\244 <mika.penttila@nextfour.com>\n"
+ "Signed-off-by: Will Deacon <will.deacon@arm.com>\n"
+ "---\n"
+ " arch/arm64/mm/pageattr.c | 3 +++\n"
+ " 1 file changed, 3 insertions(+)\n"
+ "\n"
+ "diff --git a/arch/arm64/mm/pageattr.c b/arch/arm64/mm/pageattr.c\n"
+ "index 3571c7309c5e..cf6240741134 100644\n"
+ "--- a/arch/arm64/mm/pageattr.c\n"
+ "+++ b/arch/arm64/mm/pageattr.c\n"
+ "@@ -57,6 +57,9 @@ static int change_memory_common(unsigned long addr, int numpages,\n"
+ " \tif (end < MODULES_VADDR || end >= MODULES_END)\n"
+ " \t\treturn -EINVAL;\n"
+ " \n"
+ "+\tif (!numpages)\n"
+ "+\t\treturn 0;\n"
+ "+\n"
+ " \tdata.set_mask = set_mask;\n"
+ " \tdata.clear_mask = clear_mask;\n"
+ " \n"
+ "-- \n"
+ 2.1.4
 
-67e101cf336c3f5bebe449533f67933c7168d83d24c2c3d3da302599d0bedf9f
+36e4a38beb9b62c8663b3234d7b6fb5f02330640c347ba081fae1e9930bbdb8e

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.