On Fri, 2025-05-23 at 07:33 +0200, Lukas Wunner wrote: > On Thu, May 22, 2025 at 06:19:56PM +0200, Niklas Cassel wrote: > > As you know the reset_slot() callback patches were merged recently. > > > > Wilfred and I (mostly Wilfred), have been debugging DMA issues > > after the > > reset_slot() callback has been invoked. The issue is reproduced > > when MPS > > configuration is set to performance, but might be applicable for > > other > > MPS configurations as well. The problem appears to be that > > reset_slot() > > feature does not respect/restore the MPS configuration. > > The Device Control register (and thus the MPS setting) is saved via: > > pci_save_state() > pci_save_pcie_state() > > So either you're missing a call to pci_restore_state() after reset, > or you're missing a call to pci_save_state() after changing MPS, > or MPS is somehow overwritten after pci_restore_state(). > Which one is it? > Hey Lukas, Just wanted to add to this: I do believe this is the case, in that we are missing a call to pci_save/restore_state(). My initial "fix" for this problem was to do "pci_save_state()" and "pci_restore_state()" in reset_slot(). Which does work, as you mentioned it saves and restores the Device Control register (thus MPS) amongst others...however, I have also tried the fix that Niklas suggested as well. Cheers, Wilfred > Thanks, > > Lukas