diff mbox

ARM: fix missing flush_kernel_dcache_page() for noMMU

Message ID 1371672910-9340-1-git-send-email-gmbnomis@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Simon Baatz June 19, 2013, 8:15 p.m. UTC
Commit 1bc3974 moved the implementation of flush_kernel_dcache_page()
into in mm/flush.c but did not implement it on noMMU ARM.

Signed-off-by: Simon Baatz <gmbnomis@gmail.com>
Cc: <stable@vger.kernel.org> # 3.2+: 1bc3974: ARM: 7755/1
Cc: <stable@vger.kernel.org> # 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(+)

Comments

Sergei Shtylyov June 19, 2013, 9:15 p.m. UTC | #1
Hello.

On 06/20/2013 12:15 AM, Simon Baatz wrote:

> Commit 1bc3974

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

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

> Signed-off-by: Simon Baatz <gmbnomis@gmail.com>
> Cc: <stable@vger.kernel.org> # 3.2+: 1bc3974: ARM: 7755/1
> Cc: <stable@vger.kernel.org> # 3.2+
> ---

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

    Aha, this is that summary, almost intact.

> 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
Kevin Hilman June 20, 2013, 2:30 p.m. UTC | #2
Simon Baatz <gmbnomis@gmail.com> writes:

> Commit 1bc3974 moved the implementation of flush_kernel_dcache_page()
> into in mm/flush.c but did not implement it on noMMU ARM.
>
> Signed-off-by: Simon Baatz <gmbnomis@gmail.com>
> Cc: <stable@vger.kernel.org> # 3.2+: 1bc3974: ARM: 7755/1
> Cc: <stable@vger.kernel.org> # 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.

Acked-by: Kevin Hilman <khilman@linaro.org>

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

Kevin

>
> - Simon
>
>  arch/arm/mm/nommu.c |    6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/arch/arm/mm/nommu.c b/arch/arm/mm/nommu.c
> index d51225f..eb5293a 100644
> --- a/arch/arm/mm/nommu.c
> +++ b/arch/arm/mm/nommu.c
> @@ -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)
Simon Baatz June 23, 2013, 8:09 a.m. UTC | #3
On Thu, Jun 20, 2013 at 07:30:54AM -0700, Kevin Hilman wrote:
> Simon Baatz <gmbnomis@gmail.com> writes:
> 
> > Commit 1bc3974 moved the implementation of flush_kernel_dcache_page()
> > into in mm/flush.c but did not implement it on noMMU ARM.
> >
> > Signed-off-by: Simon Baatz <gmbnomis@gmail.com>
> > Cc: <stable@vger.kernel.org> # 3.2+: 1bc3974: ARM: 7755/1
> > Cc: <stable@vger.kernel.org> # 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.
> 
> Acked-by: Kevin Hilman <khilman@linaro.org>

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

- Simon
diff mbox

Patch

diff --git a/arch/arm/mm/nommu.c b/arch/arm/mm/nommu.c
index d51225f..eb5293a 100644
--- a/arch/arm/mm/nommu.c
+++ b/arch/arm/mm/nommu.c
@@ -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)