On Tue, 2016-07-26 at 08:42 +1000, Benjamin Herrenschmidt wrote: > We do something a bit different on ppc where we store the access type > before every access, however the DSISR case is special in that on > older > CPUs, it's expected to contains a whole subset of the opcode which is > quite a bit more info than what you want here... > > I'm thinking maybe we should use a form of load that returns an error > instead of longjmp'ing, and if we do error out, flush the tb for that > instruction and replay which should cause the translate path to > reload > the TLB for it but it's still fishy.
I have a better idea ! This is only a problem for alignment interrupts, and those are very rare, we only generate them in some cases of broken forms like trying to do a ll/sc on an unaligned address. So I'm thinking I'm just going to pass the opcode to the helper in the error_code field. Cheers, Ben.