On 6/30/22 4:29 PM, Tian, Kevin wrote:
From: Lu Baolu <baolu...@linux.intel.com>
Sent: Saturday, June 25, 2022 8:52 PM

In the IOMMU hot-add path, there's a need to check whether an IOMMU
has been probed. Instead of checking the IOMMU pointer in the global
list, it's better to allocate a flag bit in iommu->flags for this

Sorry I didn't get the point of original check. This is the hotplug path
hence the caller of this function should already figure out it's a new
iommu before reaching this point?

Either did I. It was added by below commit without any comments about
this check.

commit ffebeb46dd34736c90ffbca1ccb0bef8f4827c44
Author: Jiang Liu <jiang....@linux.intel.com>
Date:   Sun Nov 9 22:48:02 2014 +0800

    iommu/vt-d: Enhance intel-iommu driver to support DMAR unit hotplug

    Implement required callback functions for intel-iommu driver
    to support DMAR unit hotplug.

    Signed-off-by: Jiang Liu <jiang....@linux.intel.com>
    Reviewed-by: Yijing Wang <wangyij...@huawei.com>
    Signed-off-by: Joerg Roedel <jroe...@suse.de>

I went through the whole hot-add process and found this check seemed to
be duplicate.

Hot-add process starts from dmar_device_hotplug(), it uses a rwlock to
synchronize the hot-add paths.

2386         down_write(&dmar_global_lock);
2387         if (insert)
2388                 ret = dmar_hotplug_insert(tmp);
2389         else
2390                 ret = dmar_hotplug_remove(tmp);
2391         up_write(&dmar_global_lock);

-->dmar_parse_one_drhd()   /* the added intel_iommu is allocated here*/
-->dmar_hp_add_drhd()           /* the intel_iommu is about to bring up */

The duplicate check here:

        if (g_iommus[iommu->seq_id])
                return 0;

All the iommu units are allocated and then initialized in the same
synchronized path. There is no need to check a duplicate initialization.

I would like to remove this check if no objection.

Best regards,
iommu mailing list

Reply via email to