lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 16 Oct 2006 16:48:51 +0100 From: Alan Cox <alan@...rguk.ukuu.org.uk> To: akpm@...l.org, linux-kernel@...r.kernel.org Subject: [PATCH] alpha - switch to pci_get API Now that we have pci_get_bus_and_slot we can do the job correctly. Note that some of these calls intentionally leak a device - this is because the device in question is always needed from boot to reboot. Signed-off-by: Alan Cox <alan@...hat.com> diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc1-mm1/arch/alpha/kernel/pci.c linux-2.6.19-rc1-mm1/arch/alpha/kernel/pci.c --- linux.vanilla-2.6.19-rc1-mm1/arch/alpha/kernel/pci.c 2006-10-13 15:06:13.000000000 +0100 +++ linux-2.6.19-rc1-mm1/arch/alpha/kernel/pci.c 2006-10-13 17:14:23.000000000 +0100 @@ -516,10 +516,11 @@ if (bus == 0 && dfn == 0) { hose = pci_isa_hose; } else { - dev = pci_find_slot(bus, dfn); + dev = pci_get_bus_and_slot(bus, dfn); if (!dev) return -ENODEV; hose = dev->sysdata; + pci_dev_put(dev); } } diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc1-mm1/arch/alpha/kernel/sys_miata.c linux-2.6.19-rc1-mm1/arch/alpha/kernel/sys_miata.c --- linux.vanilla-2.6.19-rc1-mm1/arch/alpha/kernel/sys_miata.c 2006-10-13 15:10:06.000000000 +0100 +++ linux-2.6.19-rc1-mm1/arch/alpha/kernel/sys_miata.c 2006-10-13 17:14:23.000000000 +0100 @@ -183,11 +183,15 @@ if((slot == 7) && (PCI_FUNC(dev->devfn) == 3)) { u8 irq=0; - - if(pci_read_config_byte(pci_find_slot(dev->bus->number, dev->devfn & ~(7)), 0x40,&irq)!=PCIBIOS_SUCCESSFUL) + struct pci_dev *pdev = pci_get_slot(dev->bus, dev->devfn & ~7); + if(pdev == NULL || pci_read_config_byte(pdev, 0x40,&irq) != PCIBIOS_SUCCESSFUL) { + pci_dev_put(pdev); return -1; - else + } + else { + pci_dev_put(pdev); return irq; + } } return COMMON_TABLE_LOOKUP; diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.19-rc1-mm1/arch/alpha/kernel/sys_nautilus.c linux-2.6.19-rc1-mm1/arch/alpha/kernel/sys_nautilus.c --- linux.vanilla-2.6.19-rc1-mm1/arch/alpha/kernel/sys_nautilus.c 2006-10-13 15:10:06.000000000 +0100 +++ linux-2.6.19-rc1-mm1/arch/alpha/kernel/sys_nautilus.c 2006-10-13 17:14:23.000000000 +0100 @@ -200,7 +200,7 @@ bus = pci_scan_bus(0, alpha_mv.pci_ops, hose); hose->bus = bus; - irongate = pci_find_slot(0, 0); + irongate = pci_get_bus_and_slot(0, 0); bus->self = irongate; bus->resource[1] = &irongate_mem; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists