]> git.baikalelectronics.ru Git - kernel.git/commit
sparc32: use flushi when run-time patching in per_cpu_patch
authorSam Ravnborg <sam@ravnborg.org>
Sun, 20 May 2012 15:27:53 +0000 (17:27 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 20 May 2012 20:33:36 +0000 (13:33 -0700)
commit8da954ac6a7f83b618cf1bcadefca3a2ede85e12
tree02c460fef4abb53a1b1ebe493b1e731ef36f6f26
parent74f64c4860e896a7ec49e483fa76cc2d4dbc5ef1
sparc32: use flushi when run-time patching in per_cpu_patch

Davis S. Miller wrote:
"
The way we do that now is overkill.  We only needed to use the MMU
cache ops when we had sun4c around because sun4c lacked support for
the "flush" instruction.

But all sun4m and later chips have it so we can use it
unconditionally.

So in the per_cpu_patch() code, get rid of the cache ops invocation,
and instead execute a "flush %reg" after each of the instruction patch
assignments, where %reg is set to the address of the instruction that
was stored into.

Perhaps take the flushi() definition from asm/cacheflush_64.h and
place it into asm/cacheflush.h, then you can simply use that.
"

Implemented as per suggestion.
Moved run-time patching before we call paging_init(),
so helper methods in paging_init() may utilise run-time patching too.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/include/asm/cacheflush.h
arch/sparc/include/asm/cacheflush_64.h
arch/sparc/kernel/setup_32.c