]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
PCI/IDE: Fix off by one error calculating VF RID range
authorLi Ming <ming.li@zohomail.com>
Wed, 14 Jan 2026 11:14:55 +0000 (19:14 +0800)
committerDan Williams <dan.j.williams@intel.com>
Fri, 23 Jan 2026 01:47:21 +0000 (17:47 -0800)
The VF ID range of an SR-IOV device is [0, num_VFs - 1].
pci_ide_stream_alloc() mistakenly uses num_VFs to represent the last ID.
Fix that off by one error to stay in bounds of the range.

Fixes: 1e4d2ff3ae45 ("PCI/IDE: Add IDE establishment helpers")
Signed-off-by: Li Ming <ming.li@zohomail.com>
Reviewed-by: Xu Yilun <yilun.xu@linux.intel.com>
Link: https://patch.msgid.link/20260114111455.550984-1-ming.li@zohomail.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/pci/ide.c
include/linux/pci-ide.h

index 280941b05969dd4a90d61e689062a214e9133a8f..fcceb518c64e613b134bf041f358aba46d4ede2b 100644 (file)
@@ -282,8 +282,8 @@ struct pci_ide *pci_ide_stream_alloc(struct pci_dev *pdev)
        /* for SR-IOV case, cover all VFs */
        num_vf = pci_num_vf(pdev);
        if (num_vf)
-               rid_end = PCI_DEVID(pci_iov_virtfn_bus(pdev, num_vf),
-                                   pci_iov_virtfn_devfn(pdev, num_vf));
+               rid_end = PCI_DEVID(pci_iov_virtfn_bus(pdev, num_vf - 1),
+                                   pci_iov_virtfn_devfn(pdev, num_vf - 1));
        else
                rid_end = pci_dev_id(pdev);
 
index 5d4d56ed088d1f30e8683abff0c41e08226ba5b9..ae07d9f699c0014eb77fcf2ea2a4740c9ee86c2e 100644 (file)
@@ -26,7 +26,7 @@ enum pci_ide_partner_select {
 /**
  * struct pci_ide_partner - Per port pair Selective IDE Stream settings
  * @rid_start: Partner Port Requester ID range start
- * @rid_end: Partner Port Requester ID range end
+ * @rid_end: Partner Port Requester ID range end (inclusive)
  * @stream_index: Selective IDE Stream Register Block selection
  * @mem_assoc: PCI bus memory address association for targeting peer partner
  * @pref_assoc: PCI bus prefetchable memory address association for