On Mon, Jun 3, 2024 at 5:59 AM Andrew Jones <ajones@xxxxxxxxxxxxxxxx> wrote: > > On Fri, May 24, 2024 at 12:34:42PM GMT, Tomasz Jeznach wrote: > ... > > +static struct platform_driver riscv_iommu_platform_driver = { > > + .probe = riscv_iommu_platform_probe, > > + .remove_new = riscv_iommu_platform_remove, > > Hi Tomasz, > > I think we should also support .shutdown (just turn the IOMMU off?), > otherwise the IOMMU driver reports EBUSY and fails to initialize when > rebooting. > > Same comment for the PCI driver. > I've been testing patches with added shutdown handlers, also looking at reboot notifier hooks. In both cases, devices actively running DMA traffic at system shutdown (eg. storage) might be affected by too-early IOMMU disable call. This topic was already brought up in the discussion [1] about kexec reboot flow. In this series I'd prefer to keep the IOMMU active during shutdown, and prepare the RISC-V IOMMU shutdown sequence implementation as a separate series, as it will involve more risc-v reboot rework to guarantee ordering of the shutdown callbacks. In a normal reboot cycle, firmware/hardware reset should bring IOMMU to known out-of-reset state anyway. [1] https://lore.kernel.org/linux-iommu/059ae516-aed4-4836-a2ca-aff150ff428d@xxxxxxx/ Best, - Tomasz > Thanks, > drew