summaryrefslogtreecommitdiff
path: root/drivers/pci
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2026-02-06 17:09:33 -0600
committerBjorn Helgaas <bhelgaas@google.com>2026-02-06 17:09:33 -0600
commit9a82173951206abde13d93ed3cbd670fba8945da (patch)
tree8bad44e86fb686b973a79f1e7c21c3ff17b43f52 /drivers/pci
parenta8a811cb3cf4044af971ae21d633841542ca36fa (diff)
parent0297dce758a021ccf2c0f4e164d5403ef722961c (diff)
downloadlinux-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.c12
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);