Stop collapsing registration results into booleans. Make
intel_vsec_walk_header() return int and propagate the first non-zero error
from intel_vsec_register_device(). intel_vsec_register() now returns that
error directly and 0 on success.

This preserves success behavior while surfacing meaningful errors instead
of hiding them behind a bool/-ENODEV, which makes debugging and probe
ordering issues clearer.

Signed-off-by: David E. Box <[email protected]>
Reviewed-by: Ilpo Järvinen <[email protected]>
---
v4:
  - No change

v3:
  - No change

v2:
  - No change (previous patch 3)

 drivers/platform/x86/intel/vsec.c | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/drivers/platform/x86/intel/vsec.c 
b/drivers/platform/x86/intel/vsec.c
index 675074c90b79..4aeb0728b435 100644
--- a/drivers/platform/x86/intel/vsec.c
+++ b/drivers/platform/x86/intel/vsec.c
@@ -461,20 +461,19 @@ static int intel_vsec_register_device(struct device *dev,
        return -EAGAIN;
 }
 
-static bool intel_vsec_walk_header(struct device *dev,
-                                  const struct intel_vsec_platform_info *info)
+static int intel_vsec_walk_header(struct device *dev,
+                                 const struct intel_vsec_platform_info *info)
 {
        struct intel_vsec_header **header = info->headers;
-       bool have_devices = false;
        int ret;
 
        for ( ; *header; header++) {
                ret = intel_vsec_register_device(dev, *header, info, 
info->base_addr);
-               if (!ret)
-                       have_devices = true;
+               if (ret)
+                       return ret;
        }
 
-       return have_devices;
+       return 0;
 }
 
 static bool intel_vsec_walk_dvsec(struct pci_dev *pdev,
@@ -580,10 +579,7 @@ int intel_vsec_register(struct device *dev,
        if (!dev || !info || !info->headers)
                return -EINVAL;
 
-       if (!intel_vsec_walk_header(dev, info))
-               return -ENODEV;
-       else
-               return 0;
+       return intel_vsec_walk_header(dev, info);
 }
 EXPORT_SYMBOL_NS_GPL(intel_vsec_register, "INTEL_VSEC");
 
-- 
2.43.0

Reply via email to