Excerpts from Christophe Leroy's message of October 28, 2021 11:52 pm: > > > Le 28/10/2021 à 15:30, Nicholas Piggin a écrit : >> A e5500 machine running a 32-bit kernel sometimes hangs at boot, >> seemingly going into an infinite loop of instruction storage interrupts. >> The ESR SPR has a value of 0x800000 (store) when this happens, which is >> likely set by a previous store. An instruction TLB miss interrupt would >> then leave ESR unchanged, and if no PTE exists it calls directly to the >> instruction storage interrupt handler without changing ESR. >> >> access_error() does not cause a segfault due to a store to a read-only >> vma because is_exec is true. Most subsequent fault handling does not >> check for a write fault on a read-only vma, and might do strange things >> like create a writeable PTE or call page_mkwrite on a read only vma or >> file. It's not clear what happens here to cause the infinite faulting in >> this case, a fault handler failure or low level PTE or TLB handling. >> >> In any case this can be fixed by having the instruction storage >> interrupt zero regs->dsisr rather than storing the ESR value to it. >> >> Link: >> https://lore.kernel.org/linuxppc-dev/1635306738.0z8wt7619v.astr...@bobo.none/ >> Fixes: a01a3f2ddbcd ("powerpc: remove arguments from fault handler >> functions") > > Should it go to stable as well ?
Yeah, I'm used to Fixes: tags getting picked up automatically, are we not doing that anymore since someone flamed stable maintainers? :( > >> Reported-by: Jacques de Laval <jacques.dela...@protonmail.com> >> Tested-by: Jacques de Laval <jacques.dela...@protonmail.com> >> Signed-off-by: Nicholas Piggin <npig...@gmail.com> > > Reviewed-by: Christophe Leroy <christophe.le...@csgroup.eu> Thanks, Nick