]> Git Repo - linux.git/commitdiff
iommufd/selftest: Check the bus type during probe
authorJason Gunthorpe <[email protected]>
Wed, 3 Jan 2024 15:27:22 +0000 (11:27 -0400)
committerJason Gunthorpe <[email protected]>
Thu, 11 Jan 2024 19:53:28 +0000 (15:53 -0400)
This relied on the probe function only being invoked by the bus type mock
was registered on. The removal of the bus ops broke this assumption and
the probe could be called on non-mock bus types like PCI.

Check the bus type directly in probe.

Fixes: 17de3f5fdd35 ("iommu: Retire bus ops")
Link: https://lore.kernel.org/r/[email protected]
Reviewed-by: Kevin Tian <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
drivers/iommu/iommufd/selftest.c

index db648c81507fa5c524329f94a3d5fcc0337eb94f..d9e9920c7eba413eaf25b7840eefdf36a3999a9e 100644 (file)
@@ -25,6 +25,19 @@ static struct iommu_domain_ops domain_nested_ops;
 
 size_t iommufd_test_memory_limit = 65536;
 
+struct mock_bus_type {
+       struct bus_type bus;
+       struct notifier_block nb;
+};
+
+static struct mock_bus_type iommufd_mock_bus_type = {
+       .bus = {
+               .name = "iommufd_mock",
+       },
+};
+
+static atomic_t mock_dev_num;
+
 enum {
        MOCK_DIRTY_TRACK = 1,
        MOCK_IO_PAGE_SIZE = PAGE_SIZE / 2,
@@ -437,6 +450,8 @@ static struct iommu_device mock_iommu_device = {
 
 static struct iommu_device *mock_probe_device(struct device *dev)
 {
+       if (dev->bus != &iommufd_mock_bus_type.bus)
+               return ERR_PTR(-ENODEV);
        return &mock_iommu_device;
 }
 
@@ -576,19 +591,6 @@ get_md_pagetable_nested(struct iommufd_ucmd *ucmd, u32 mockpt_id,
        return hwpt;
 }
 
-struct mock_bus_type {
-       struct bus_type bus;
-       struct notifier_block nb;
-};
-
-static struct mock_bus_type iommufd_mock_bus_type = {
-       .bus = {
-               .name = "iommufd_mock",
-       },
-};
-
-static atomic_t mock_dev_num;
-
 static void mock_dev_release(struct device *dev)
 {
        struct mock_dev *mdev = container_of(dev, struct mock_dev, dev);
This page took 0.0601 seconds and 4 git commands to generate.