From: Christophe Leroy
Sent: 20 April 2015 06:27...
Having a macro will help keep clear code.
* We have to use the MD_xxx registers for the tablewalk because theI'm sure I've spotted the same obvious error in the above before.
* equivalent MI_xxx registers only perform the attribute functions.
*/
+
+#ifdef CONFIG_8xx_CPU15
+#define DO_8xx_CPU15(tmp, addr) \
+ addi tmp, addr, PAGE_SIZE; \
+ tlbie tmp; \
+ addi tmp, addr, PAGE_SIZE; \
+ tlbie tmp
+#else
+#define DO_8xx_CPU15(tmp, addr)
+#endif
I'd also suggest calling it 'invalidate_adjacent_pages' - since that it
what it does.
I also guess that the execution time of 'tlbie' is non-trivial.
So you might as well get rid of the temporary register and put an
'addi' to reset 'addr' at the end.
David