[PATCH] scsi: pm8001: Fix error code in non_fatal_log_show()

Dan Carpenter posted 1 patch 1 week, 1 day ago
drivers/scsi/pm8001/pm8001_ctl.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
[PATCH] scsi: pm8001: Fix error code in non_fatal_log_show()
Posted by Dan Carpenter 1 week, 1 day ago
The non_fatal_log_show() function is supposed to return negative
error codes on failure.  But because the error codes are saved in
a u32 and then cast to signed long, they end up being high positive
values instead of negative.  Remove the intermediary u32 variable
to fix this bug.

Fixes: dba2cc03b9db ("scsi: pm80xx: sysfs attribute for non fatal dump")
Signed-off-by: Dan Carpenter <error27@gmail.com>
---
 drivers/scsi/pm8001/pm8001_ctl.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/scsi/pm8001/pm8001_ctl.c b/drivers/scsi/pm8001/pm8001_ctl.c
index bb38b2d63acb..a27f3287748e 100644
--- a/drivers/scsi/pm8001/pm8001_ctl.c
+++ b/drivers/scsi/pm8001/pm8001_ctl.c
@@ -588,10 +588,7 @@ static DEVICE_ATTR(fatal_log, S_IRUGO, pm8001_ctl_fatal_log_show, NULL);
 static ssize_t non_fatal_log_show(struct device *cdev,
 	struct device_attribute *attr, char *buf)
 {
-	u32 count;
-
-	count = pm80xx_get_non_fatal_dump(cdev, attr, buf);
-	return count;
+	return pm80xx_get_non_fatal_dump(cdev, attr, buf);
 }
 static DEVICE_ATTR_RO(non_fatal_log);
 
-- 
2.53.0
Re: [PATCH] scsi: pm8001: Fix error code in non_fatal_log_show()
Posted by Martin K. Petersen 6 days, 5 hours ago
Dan,

> The non_fatal_log_show() function is supposed to return negative error
> codes on failure. But because the error codes are saved in a u32 and
> then cast to signed long, they end up being high positive values
> instead of negative. Remove the intermediary u32 variable to fix this
> bug.

Applied to 7.2/scsi-staging, thanks!

-- 
Martin K. Petersen
Re: [PATCH] scsi: pm8001: Fix error code in non_fatal_log_show()
Posted by Jinpu Wang 1 week ago
On Sat, May 30, 2026 at 9:45 PM Dan Carpenter <error27@gmail.com> wrote:
>
> The non_fatal_log_show() function is supposed to return negative
> error codes on failure.  But because the error codes are saved in
> a u32 and then cast to signed long, they end up being high positive
> values instead of negative.  Remove the intermediary u32 variable
> to fix this bug.
>
> Fixes: dba2cc03b9db ("scsi: pm80xx: sysfs attribute for non fatal dump")
> Signed-off-by: Dan Carpenter <error27@gmail.com>
Acked-by: Jack Wang <jinpu.wang@ionos.com>
> ---
>  drivers/scsi/pm8001/pm8001_ctl.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/drivers/scsi/pm8001/pm8001_ctl.c b/drivers/scsi/pm8001/pm8001_ctl.c
> index bb38b2d63acb..a27f3287748e 100644
> --- a/drivers/scsi/pm8001/pm8001_ctl.c
> +++ b/drivers/scsi/pm8001/pm8001_ctl.c
> @@ -588,10 +588,7 @@ static DEVICE_ATTR(fatal_log, S_IRUGO, pm8001_ctl_fatal_log_show, NULL);
>  static ssize_t non_fatal_log_show(struct device *cdev,
>         struct device_attribute *attr, char *buf)
>  {
> -       u32 count;
> -
> -       count = pm80xx_get_non_fatal_dump(cdev, attr, buf);
> -       return count;
> +       return pm80xx_get_non_fatal_dump(cdev, attr, buf);
>  }
>  static DEVICE_ATTR_RO(non_fatal_log);
>
> --
> 2.53.0
>