mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 02:53:36 +02:00
iommu/riscv: Fix signedness bug
The function platform_irq_count() returns negative error codes and
iommu->irqs_count is an unsigned integer, so the check
(iommu->irqs_count <= 0) is always impossible.
Make the return value of platform_irq_count() be assigned to ret, check
for error, and then assign iommu->irqs_count to ret.
Detected by Smatch:
drivers/iommu/riscv/iommu-platform.c:119 riscv_iommu_platform_probe() warn:
'iommu->irqs_count' unsigned <= 0
Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com>
Fixes: 5c0ebbd3c6 ("iommu/riscv: Add RISC-V IOMMU platform device driver")
Reviewed-by: Andrew Jones <andrew.jones@oss.qualcomm.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
This commit is contained in:
parent
b2e5684558
commit
553a127cb6
|
|
@ -115,10 +115,13 @@ static int riscv_iommu_platform_probe(struct platform_device *pdev)
|
|||
fallthrough;
|
||||
|
||||
case RISCV_IOMMU_CAPABILITIES_IGS_WSI:
|
||||
iommu->irqs_count = platform_irq_count(pdev);
|
||||
if (iommu->irqs_count <= 0)
|
||||
ret = platform_irq_count(pdev);
|
||||
if (ret <= 0)
|
||||
return dev_err_probe(dev, -ENODEV,
|
||||
"no IRQ resources provided\n");
|
||||
|
||||
iommu->irqs_count = ret;
|
||||
|
||||
if (iommu->irqs_count > RISCV_IOMMU_INTR_COUNT)
|
||||
iommu->irqs_count = RISCV_IOMMU_INTR_COUNT;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user