[PATCH 3/4] platform/x86/intel/vsec: Return real error codes from registration path

David E. Box posted 4 patches 1 month ago
There is a newer version of this series
[PATCH 3/4] platform/x86/intel/vsec: Return real error codes from registration path
Posted by David E. Box 1 month ago
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 <david.e.box@linux.intel.com>
---
 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 b84bb92624ef..42471fd609b1 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,
-				   struct intel_vsec_platform_info *info)
+static int intel_vsec_walk_header(struct device *dev,
+				  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);
-		if (!ret)
-			have_devices = true;
+		if (ret)
+			return ret;
 	}
 
-	return have_devices;
+	return 0;
 }
 
 static bool intel_vsec_walk_dvsec(struct pci_dev *pdev,
@@ -582,10 +581,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
Re: [PATCH 3/4] platform/x86/intel/vsec: Return real error codes from registration path
Posted by Ilpo Järvinen 3 weeks, 2 days ago
On Tue, 6 Jan 2026, David E. Box wrote:

> 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 <david.e.box@linux.intel.com>
> ---
>  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 b84bb92624ef..42471fd609b1 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,
> -				   struct intel_vsec_platform_info *info)
> +static int intel_vsec_walk_header(struct device *dev,
> +				  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);
> -		if (!ret)
> -			have_devices = true;
> +		if (ret)
> +			return ret;
>  	}
>  
> -	return have_devices;
> +	return 0;
>  }
>  
>  static bool intel_vsec_walk_dvsec(struct pci_dev *pdev,
> @@ -582,10 +581,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");
>  
> 

Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>

-- 
 i.