On Wed, Mar 30, 2022 at 08:19:37PM +0300, Tony Lindgren wrote: > > > __iommu_probe_device from probe_iommu_group+0x2c/0x38 > > > probe_iommu_group from bus_for_each_dev+0x74/0xbc > > > bus_for_each_dev from bus_iommu_probe+0x34/0x2e8 > > > bus_iommu_probe from bus_set_iommu+0x80/0xc8 > > > bus_set_iommu from omap_iommu_init+0x88/0xcc > > > omap_iommu_init from do_one_initcall+0x44/0x24c > > > > > > Any ideas for a fix? > > > > > > It would be good to fix this quickly so we don't end up with a broken > > > v5.18-rc1.. > > > > > > For reference, this is mainline commit 41bb23e70b50 ("iommu: Remove unused > > > argument in is_attach_deferred"). > > > > Are you confident in the bisection? I don't see how that commit could > > NULL deref.. > > Oops sorry you're right, the breaking commit is a different patch, it's > 3f6634d997db ("iommu: Use right way to retrieve iommu_ops") instead. I must > have picked the wrong commit while testing. That makes alot more sense > > Can you find the code that is the NULL deref? > > I can debug a bit more tomorrow. Looks like omap's omap_iommu_probe_device() is buggy, it returns 0 on error paths: num_iommus = of_property_count_elems_of_size(dev->of_node, "iommus", sizeof(phandle)); if (num_iommus < 0) return 0; This function needs to return an errno -ENODEV Otherwise it causes a NULL dev->iommu->iommu_dev and dev_iommu_ops() will crash. Jason