Re: [PATCH v3 03/15] iommu: Always register bus notifiers
From: Baolu Lu
Date:  Wed Jul 06 2022 - 20:20:44 EST
On 2022/7/6 21:43, Robin Murphy wrote:
On 2022-07-06 02:53, Baolu Lu wrote:
On 2022/7/6 01:08, Robin Murphy wrote:
  /*
   * Use a function instead of an array here because the domain-type 
is a
   * bit-field, so an array would waste memory.
@@ -152,6 +172,10 @@ static int __init iommu_subsys_init(void)
              (iommu_cmd_line & IOMMU_CMD_LINE_STRICT) ?
                  "(set via kernel command line)" : "");
+    /* If the system is so broken that this fails, it will WARN 
anyway */
Can you please elaborate a bit on this? iommu_bus_init() still return
errors.
Indeed, it's commenting on the fact that we don't try to clean up or 
propagate an error value further even if it did ever manage to return 
one. I feared that if I strip the error handling out of iommu_bus_init() 
itself on the same reasoning, we'll just get constant patches from the 
static checker brigade trying to add it back, so it seemed like the 
neatest compromise to keep that decision where it's obviously in an 
early initcall, rather than in the helper function which can be viewed 
out of context. However, I'm happy to either expand this comment or go 
the whole way and make iommu_bus_init() return void if you think it's 
worthwhile.
Thanks for the explanation. It would be helpful if the comment could be
expanded. In this case, after a long time, people will not consider it
an oversight. :-)
Best regards,
baolu
Cheers,
Robin.
+    for (int i = 0; i < ARRAY_SIZE(iommu_buses); i++)
+        iommu_bus_init(iommu_buses[i]);
+
      return 0;
Best regards,
baolu