diff options
| author | Bjorn Helgaas <bhelgaas@google.com> | 2026-02-06 17:09:33 -0600 |
|---|---|---|
| committer | Bjorn Helgaas <bhelgaas@google.com> | 2026-02-06 17:09:33 -0600 |
| commit | 9a82173951206abde13d93ed3cbd670fba8945da (patch) | |
| tree | 8bad44e86fb686b973a79f1e7c21c3ff17b43f52 /drivers/pci | |
| parent | a8a811cb3cf4044af971ae21d633841542ca36fa (diff) | |
| parent | 0297dce758a021ccf2c0f4e164d5403ef722961c (diff) | |
| download | linux-9a82173951206abde13d93ed3cbd670fba8945da.tar.gz linux-9a82173951206abde13d93ed3cbd670fba8945da.tar.bz2 linux-9a82173951206abde13d93ed3cbd670fba8945da.zip | |
Merge branch 'pci/controller/cadence'
- Fix cdns_pcie_host_dma_ranges_cmp() to prevent possible invalid sort
order (Ian Rogers)
* pci/controller/cadence:
PCI: cadence: Avoid signed 64-bit truncation and invalid sort
Diffstat (limited to 'drivers/pci')
| -rw-r--r-- | drivers/pci/controller/cadence/pcie-cadence-host-common.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/pci/controller/cadence/pcie-cadence-host-common.c b/drivers/pci/controller/cadence/pcie-cadence-host-common.c index 15415d7f35ee..2b0211870f02 100644 --- a/drivers/pci/controller/cadence/pcie-cadence-host-common.c +++ b/drivers/pci/controller/cadence/pcie-cadence-host-common.c @@ -173,11 +173,21 @@ int cdns_pcie_host_dma_ranges_cmp(void *priv, const struct list_head *a, const struct list_head *b) { struct resource_entry *entry1, *entry2; + u64 size1, size2; entry1 = container_of(a, struct resource_entry, node); entry2 = container_of(b, struct resource_entry, node); - return resource_size(entry2->res) - resource_size(entry1->res); + size1 = resource_size(entry1->res); + size2 = resource_size(entry2->res); + + if (size1 > size2) + return -1; + + if (size1 < size2) + return 1; + + return 0; } EXPORT_SYMBOL_GPL(cdns_pcie_host_dma_ranges_cmp); |
