]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
PCI/IDE: Fix reading a wrong reg for unused sel stream initialization
authorLi Ming <ming.li@zohomail.com>
Sun, 11 Jan 2026 07:38:23 +0000 (15:38 +0800)
committerDan Williams <dan.j.williams@intel.com>
Fri, 23 Jan 2026 01:47:21 +0000 (17:47 -0800)
During pci_ide_init(), it will write PCI_ID_RESERVED_STREAM_ID into all
unused selective IDE stream blocks. In a selective IDE stream block, IDE
stream ID field is in selective IDE stream control register instead of
selective IDE stream capability register.

Fixes: 079115370d00 ("PCI/IDE: Initialize an ID for all IDE streams")
Signed-off-by: Li Ming <ming.li@zohomail.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Xu Yilun <yilun.xu@linux.intel.com>
Link: https://patch.msgid.link/20260111073823.486665-1-ming.li@zohomail.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/pci/ide.c

index fcceb518c64e613b134bf041f358aba46d4ede2b..23f554490539f2faf4afb8c762107357e1093bde 100644 (file)
@@ -167,7 +167,7 @@ void pci_ide_init(struct pci_dev *pdev)
        for (u16 i = 0; i < nr_streams; i++) {
                int pos = __sel_ide_offset(ide_cap, nr_link_ide, i, nr_ide_mem);
 
-               pci_read_config_dword(pdev, pos + PCI_IDE_SEL_CAP, &val);
+               pci_read_config_dword(pdev, pos + PCI_IDE_SEL_CTL, &val);
                if (val & PCI_IDE_SEL_CTL_EN)
                        continue;
                val &= ~PCI_IDE_SEL_CTL_ID;