On Wed, May 05, 2021 at 05:39:42PM +0200, Pali Rohár wrote: > On Wednesday 05 May 2021 15:20:11 David Laight wrote: > > From: Pali Rohár > > Sent: 05 May 2021 14:03 > > > So seems that PCIe controller HW triggers these external aborts when > > > device on PCIe bus is not accessible anymore. > > > > > > If this issue is really caused by MMIO access from xhci driver when > > > device is not accessible on the bus anymore, can we do something to > > > prevent this kernel crash? Somehow mask that external abort in kernel > > > for a time during MMIO access? > > > > If it is a cycle abort then the interrupted address is probably > > that of the MMIO instruction. > > So you need to catch the abort, emulate the instruction and > > then return to the next one. > > Has kernel API & infrastructure for catching these aborts and executing > own driver handler when abort happens? Yes, see here for an example: https://lore.kernel.org/linux-pci/20210615191405.21878-4-jim2101024@xxxxxxxxx/