Benjamin Herrenschmidt <b...@kernel.crashing.org> wrote on 08/10/2009 02:04:56: > > > > Yes it does. If one adds HWEXEC it will fail, right? > > Why ? We can just filter out DSISR, we don't really care why it failed > as long as we know whether it was a store or not. > > > Also this count as a read and you could easily end up > > in the protection case(in 2.4 you do) > > I'm not sure what you mean by "the protection case" Again, the C code > shouldn't care.
it does, and it should. How else should you know if you try to read a NA space? See: /* Protection fault on exec go straight to failure on * Hash based MMUs as they either don't support per-page * execute permission, or if they do, it's handled already * at the hash level. This test would probably have to * be removed if we change the way this works to make hash * processors use the same I/D cache coherency mechanism * as embedded. */ if (error_code & DSISR_PROTFAULT) goto bad_area; ... /* a read */ } else { /* protection fault */ if (error_code & 0x08000000) goto bad_area; > > > hey, I think you have to show how then :) I am not > > good at ppc shift, mask, rotate insn. > > They are so fun ! :-0 Great that someone thinks so :) > > > > > > > > Because if you go to C with a protection fault, you are in trouble. > > > > > > Why ? > > > > In 2.4 you end up in read protection fault an get a SEGV back :) > > We probably should ignore the DSISR bits then. So it just goes to > generic C code which then fixes up ACCESSED etc... and returns. Not really I think. > > > Now I only handle DIRTY and the rest in C. Figured it is > > much faster and really simplie now, stay tuned. > > You should not even have to handle DIRTY at all in asm. At least in 2.6. > I can't vouch for what 2.4 generic code does... You should really port > your board over :-) 2.4 and 2.6 have the same handling in asm. hmm, maybe I should just call C, but 8xx isn't a speed monster so every cycle counts :) It works if I trap to C for DIRTY too. Before thinking on porting my old board, I want 2.4 to enjoy the new TLB code too :) Jocke _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev