Skip to contentSkip to conversation

ARM: fix missing flush_kernel_dcache_page() for noMMU

PATCH New Simon Baatz 3 participants 4 messages Jun 19, 2013 – Jun 23, 2013 Arm (32-bit)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: fix missing flush_kernel_dcache_page() for noMMU

Commit 1bc3974 moved the implementation of flush_kernel_dcache_page() into in mm/flush.c but did not implement it on noMMU ARM.

Cc <[email protected]> # 3.2+: 1bc3974: ARM: 7755/1
Cc <[email protected]> # 3.2+

---

ARM 7755/1 "handle user space mapped pages in flush_kernel_dcache_page" unfortunately broke the no MMU case. Compile tested with allnoconfig and at91x40_defconfig on v3.10-rc6/v3.9.6 + ARM 7755/1. On older stable kernels (3.2.47 & 3.4.49) compiled with at91x40_defconfig.

- Simon

 arch/arm/mm/nommu.c |    6 ++++++
 1 file changed, 6 insertions(+)
arch/arm/mm/nommu.c +6 -0
index d51225f..eb5293a 100644
@@ -57,6 +57,12 @@ void flush_dcache_page(struct page *page)
 }
 EXPORT_SYMBOL(flush_dcache_page);
 
+void flush_kernel_dcache_page(struct page *page)
+{
+	__cpuc_flush_dcache_area(page_address(page), PAGE_SIZE);
+}
+EXPORT_SYMBOL(flush_kernel_dcache_page);
+
 void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
 		       unsigned long uaddr, void *dst, const void *src,
 		       unsigned long len)
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH 1/1 ARM: fix missing flush_kernel_dcache_page() for noMMU

Hello.

Quoted 1 line · Simon Baatz

Commit 1bc3974

Please also specify that commit's summary line in parens.

Quoted 9 lines

moved the implementation of flush_kernel_dcache_page() into in mm/flush.c but did not implement it on noMMU ARM.

Cc <[email protected]> # 3.2+: 1bc3974: ARM: 7755/1
Cc <[email protected]> # 3.2+

---

ARM 7755/1 "handle user space mapped pages in flush_kernel_dcache_page"

Aha, this is that summary, almost intact.

Quoted 5 lines

unfortunately broke the no MMU case. Compile tested with allnoconfig and at91x40_defconfig on v3.10-rc6/v3.9.6 + ARM 7755/1. On older stable kernels (3.2.47 & 3.4.49) compiled with at91x40_defconfig.

- Simon

WBR, Sergei

#2 lore raw

PATCH 1/1 ARM: fix missing flush_kernel_dcache_page() for noMMU

In reply to Simon Baatz
Quoted 6 lines · Simon Baatz

Commit 1bc3974 moved the implementation of flush_kernel_dcache_page() into in mm/flush.c but did not implement it on noMMU ARM.

Cc <[email protected]> # 3.2+: 1bc3974: ARM: 7755/1
Cc <[email protected]> # 3.2+
Quoted 6 lines

---

ARM 7755/1 "handle user space mapped pages in flush_kernel_dcache_page" unfortunately broke the no MMU case. Compile tested with allnoconfig and at91x40_defconfig on v3.10-rc6/v3.9.6 + ARM 7755/1. On older stable kernels (3.2.47 & 3.4.49) compiled with at91x40_defconfig.

This fix is needed in linux-next also, which started failing allnoconfig builds since next-20130619.

Kevin

Quoted 23 lines

- Simon

 arch/arm/mm/nommu.c |    6 ++++++
 1 file changed, 6 insertions(+)
arch/arm/mm/nommu.c +6 -0
index d51225f..eb5293a 100644
@@ -57,6 +57,12 @@ void flush_dcache_page(struct page *page)
 }
 EXPORT_SYMBOL(flush_dcache_page);
 
+void flush_kernel_dcache_page(struct page *page)
+{
+	__cpuc_flush_dcache_area(page_address(page), PAGE_SIZE);
+}
+EXPORT_SYMBOL(flush_kernel_dcache_page);
+
 void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
 		       unsigned long uaddr, void *dst, const void *src,
 		       unsigned long len)
#3 lore raw

PATCH 1/1 ARM: fix missing flush_kernel_dcache_page() for noMMU

Quoted 10 lines · Kevin Hilman
Quoted 8 lines · Simon Baatz

Commit 1bc3974 moved the implementation of flush_kernel_dcache_page() into in mm/flush.c but did not implement it on noMMU ARM.

Cc <[email protected]> # 3.2+: 1bc3974: ARM: 7755/1
Cc <[email protected]> # 3.2+

---

Quoted 6 lines
Quoted 4 lines

ARM 7755/1 "handle user space mapped pages in flush_kernel_dcache_page" unfortunately broke the no MMU case. Compile tested with allnoconfig and at91x40_defconfig on v3.10-rc6/v3.9.6 + ARM 7755/1. On older stable kernels (3.2.47 & 3.4.49) compiled with at91x40_defconfig.

Thanks! Reworded according to Sergei's comment, added your Acked-by and submitted to Russell's patch tracking system (7772/1).

- Simon