Re: [PATCH] PCI: dwc: Fix type mismatch for kstrtou32_from_user return value
From: Manivannan Sadhasivam
Date: Wed Apr 01 2026 - 08:52:05 EST
On Wed, Apr 01, 2026 at 10:30:48AM +0800, Hans Zhang wrote:
> kstrtou32_from_user() returns int, but the return value was stored in
> a u32 variable 'val', risking sign loss. Use a dedicated int variable
> to correctly handle the return code.
>
> Signed-off-by: Hans Zhang <18255117159@xxxxxxx>
Can you add Fixes tag also?
- Mani
> ---
> .../controller/dwc/pcie-designware-debugfs.c | 21 +++++++++++--------
> 1 file changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/pci/controller/dwc/pcie-designware-debugfs.c b/drivers/pci/controller/dwc/pcie-designware-debugfs.c
> index 0d1340c9b364..9461be074490 100644
> --- a/drivers/pci/controller/dwc/pcie-designware-debugfs.c
> +++ b/drivers/pci/controller/dwc/pcie-designware-debugfs.c
> @@ -208,10 +208,11 @@ static ssize_t lane_detect_write(struct file *file, const char __user *buf,
> struct dw_pcie *pci = file->private_data;
> struct dwc_pcie_rasdes_info *rinfo = pci->debugfs->rasdes_info;
> u32 lane, val;
> + int ret;
>
> - val = kstrtou32_from_user(buf, count, 0, &lane);
> - if (val)
> - return val;
> + ret = kstrtou32_from_user(buf, count, 0, &lane);
> + if (ret)
> + return ret;
>
> val = dw_pcie_readl_dbi(pci, rinfo->ras_cap_offset + SD_STATUS_L1LANE_REG);
> val &= ~(LANE_SELECT);
> @@ -347,10 +348,11 @@ static ssize_t counter_enable_write(struct file *file, const char __user *buf,
> struct dw_pcie *pci = pdata->pci;
> struct dwc_pcie_rasdes_info *rinfo = pci->debugfs->rasdes_info;
> u32 val, enable;
> + int ret;
>
> - val = kstrtou32_from_user(buf, count, 0, &enable);
> - if (val)
> - return val;
> + ret = kstrtou32_from_user(buf, count, 0, &enable);
> + if (ret)
> + return ret;
>
> mutex_lock(&rinfo->reg_event_lock);
> set_event_number(pdata, pci, rinfo);
> @@ -408,10 +410,11 @@ static ssize_t counter_lane_write(struct file *file, const char __user *buf,
> struct dw_pcie *pci = pdata->pci;
> struct dwc_pcie_rasdes_info *rinfo = pci->debugfs->rasdes_info;
> u32 val, lane;
> + int ret;
>
> - val = kstrtou32_from_user(buf, count, 0, &lane);
> - if (val)
> - return val;
> + ret = kstrtou32_from_user(buf, count, 0, &lane);
> + if (ret)
> + return ret;
>
> mutex_lock(&rinfo->reg_event_lock);
> set_event_number(pdata, pci, rinfo);
>
> base-commit: 9147566d801602c9e7fc7f85e989735735bf38ba
> --
> 2.34.1
>
--
மணிவண்ணன் சதாசிவம்