On Thu, Apr 22, 2021 at 11:42:19AM +0200, Jean-Philippe Brucker wrote: > Since commit 08a27c1c3ecf ("iommu: Add support to change default domain > of an iommu group") a user can switch a device between IOMMU and direct > DMA through sysfs. This doesn't work for AMD IOMMU at the moment because > dev->dma_ops is not cleared when switching from a DMA to an identity > IOMMU domain. The DMA layer thus attempts to use the dma-iommu ops on an > identity domain, causing an oops: > > # echo 0000:00:05.0 > /sys/sys/bus/pci/drivers/e1000e/unbind > # echo identity > /sys/bus/pci/devices/0000:00:05.0/iommu_group/type > # echo 0000:00:05.0 > /sys/sys/bus/pci/drivers/e1000e/bind > ... > BUG: kernel NULL pointer dereference, address: 0000000000000028 > ... > Call Trace: > iommu_dma_alloc > e1000e_setup_tx_resources > e1000e_open > > Since iommu_change_dev_def_domain() calls probe_finalize() again, clear > the dma_ops there like Vt-d does. > > Fixes: 08a27c1c3ecf ("iommu: Add support to change default domain of an iommu > group") > Signed-off-by: Jean-Philippe Brucker <jean-phili...@linaro.org>
Applied for v5.13, thanks Jean-Philippe. _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu