From Christophe LeroyThe main reason is because of patch 09/11 where we have to duplicate this code. I prefer to just duplicate one line rather than duplicate the whole code (especially because in v1 of the PATCHset, it was duplicated twice):
Having a macro will help keep clear code.It might remove an #if but it doesn't really help.
All it means is that anyone reading the code has to hunt for
the definition before proceeding.
Some comment about what (and why) the extra code is needed
might help.
Oops
...
+You've even transcribed this incorrectly.
+#ifdef CONFIG_8xx_CPU15
+#define DO_8xx_CPU15(tmp, addr) \
+ addi tmp, addr, PAGE_SIZE; \
+ tlbie tmp; \
+ addi tmp, addr, PAGE_SIZE; \
Indeed it's been tested, but tests can only show that the code is not worth than before.
Clearly not tested :-)
David
+ tlbie tmp
+#else
+#define DO_8xx_CPU15(tmp, addr)
+#endif
+
InstructionTLBMiss:
#ifdef CONFIG_8xx_CPU6
mtspr SPRN_DAR, r3
@@ -304,12 +315,7 @@ InstructionTLBMiss:
EXCEPTION_PROLOG_0
mtspr SPRN_SPRG_SCRATCH2, r10
mfspr r10, SPRN_SRR0 /* Get effective address of fault */
-#ifdef CONFIG_8xx_CPU15
- addi r11, r10, PAGE_SIZE
- tlbie r11
- addi r11, r10, -PAGE_SIZE
- tlbie r11
-#endif
+ DO_8xx_CPU15(r11, r10)
/* If we are faulting a kernel address, we have to use the
* kernel page tables.
--
2.1.0
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@xxxxxxxxxxxxxxxx
https://lists.ozlabs.org/listinfo/linuxppc-dev