The driver does not implement a shutdown handler which leads to issues when using kexec in certain scenarios. The NIC keeps on fetching descriptors which gets flagged by the IOMMU with errors like this: DMAR: DMAR:[DMA read] Request device [5e:00.0]fault addr fffff000 DMAR: DMAR:[DMA read] Request device [5e:00.0]fault addr fffff000 DMAR: DMAR:[DMA read] Request device [5e:00.0]fault addr fffff000 DMAR: DMAR:[DMA read] Request device [5e:00.0]fault addr fffff000 DMAR: DMAR:[DMA read] Request device [5e:00.0]fault addr fffff000 Signed-off-by: Moritz Fischer <mdf@xxxxxxxxxx> --- Hi all, I'm not sure if this is the proper way for a shutdown handler, I've tried to look at a bunch of examples and couldn't find a specific solution, in my tests on hardware this works, though. Open to suggestions. Thanks, Moritz --- drivers/net/ethernet/dec/tulip/de2104x.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/dec/tulip/de2104x.c b/drivers/net/ethernet/dec/tulip/de2104x.c index f1a2da15dd0a..372c62c7e60f 100644 --- a/drivers/net/ethernet/dec/tulip/de2104x.c +++ b/drivers/net/ethernet/dec/tulip/de2104x.c @@ -2185,6 +2185,7 @@ static struct pci_driver de_driver = { .id_table = de_pci_tbl, .probe = de_init_one, .remove = de_remove_one, + .shutdown = de_remove_one, #ifdef CONFIG_PM .suspend = de_suspend, .resume = de_resume, -- 2.28.0