From: SUGIOKA T. <su...@it...> - 2003-04-18 09:43:51
|
At 11:54 03/04/17 +0900, SUGIOKA Toshinobu <su...@it...> wrote: >I'll commit following fix soon. > > * arch/sh/mm/clear_page.S (__flush_cache_4096): Don't change associated >data that is to be flushed. > >Index: arch/sh/mm/clear_page.S >=================================================================== >RCS file: /cvsroot/linuxsh/linux/arch/sh/mm/clear_page.S,v >retrieving revision 1.1.1.1.2.6 >diff -u -r1.1.1.1.2.6 clear_page.S >--- arch/sh/mm/clear_page.S 22 Aug 2002 17:48:09 -0000 1.1.1.1.2.6 >+++ arch/sh/mm/clear_page.S 17 Apr 2003 02:03:47 -0000 >@@ -208,13 +208,9 @@ > 2: > .rept 32 > mov.l r5,@r0 >- add #32,r5 > mov.l r5,@(32,r0) >- add #32,r5 > mov.l r5,@(r0,r6) >- add #32,r5 > mov.l r5,@(r0,r7) >- add #32,r5 > add r2,r0 > .endr > nop > This is wrong. Bit 10,11 of physical address are used as cache-tag, and compared with r5 here. So r5 should be updated. Original version should work correctly, but I will commit updated version which is more efficient. Index: arch/sh/mm/clear_page.S =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/mm/clear_page.S,v retrieving revision 1.1.1.1.2.7 diff -u -r1.1.1.1.2.7 clear_page.S --- arch/sh/mm/clear_page.S 17 Apr 2003 13:43:07 -0000 1.1.1.1.2.7 +++ arch/sh/mm/clear_page.S 18 Apr 2003 09:27:50 -0000 @@ -211,6 +211,7 @@ mov.l r5,@(32,r0) mov.l r5,@(r0,r6) mov.l r5,@(r0,r7) + add r2,r5 add r2,r0 .endr nop ---- SUGIOKA Toshinobu |