+#ifndef NO_ANK_FIX
+ __asm__ __volatile__ ("jmp 1f ; 1:");
+#endif
pg0[0] = old;
local_flush_tlb();
Apparently, it is a problem with tlb/command pipeline/hell-knows-more
This may be "illusion", I frequently find that adding arbitrary extra
instruction or some random data can make bugs disappear. Usually it
is moving symbols in the kernel image and either:
1) avoiding some linker bug
2) restoring some alignment constraint which is needed
Your change for example may have moved __init section into place which
does not trip some bug in linker or something like this.
Experiment 8-)
Later,
David "Sparc" Miller
davem@caip.rutgers.edu