]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
PCI: dwc: Fix signedness bug in fault injection test code
authorDan Carpenter <error27@gmail.com>
Tue, 12 May 2026 10:17:55 +0000 (13:17 +0300)
committerManivannan Sadhasivam <mani@kernel.org>
Tue, 19 May 2026 14:19:57 +0000 (19:49 +0530)
The kstrtou32() function returns negative error code or zero on success.
However, in this case "val" is a u32 and the function returns signed long,
so negative error codes from kstrtou32() are returned as high positive
values.

Store the error code in an int instead.

Fixes: d20ee8e2dbd6 ("PCI: dwc: Add debugfs based Error Injection support for DWC")
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Hans Zhang <18255117159@163.com>
Link: https://patch.msgid.link/agL-Uwfn26SI4Gb0@stanley.mountain
drivers/pci/controller/dwc/pcie-designware-debugfs.c

index 87f5ec9c48ebf6c8d5e58b52982f72851fd22fd7..ddbce69b2e9f818be7bd50ce5d1c3466770ff62c 100644 (file)
@@ -306,6 +306,7 @@ static ssize_t err_inj_write(struct file *file, const char __user *buf,
        u32 val, counter, vc_num, err_group, type_mask;
        int val_diff = 0;
        char *kern_buf;
+       int ret;
 
        err_group = err_inj_list[pdata->idx].err_inj_group;
        type_mask = err_inj_type_mask[err_group];
@@ -327,10 +328,10 @@ static ssize_t err_inj_write(struct file *file, const char __user *buf,
                        return -EINVAL;
                }
        } else {
-               val = kstrtou32(kern_buf, 0, &counter);
-               if (val) {
+               ret = kstrtou32(kern_buf, 0, &counter);
+               if (ret) {
                        kfree(kern_buf);
-                       return val;
+                       return ret;
                }
        }