[PATCH] reduce stack usage in arch/sh/kernel/pci-sh7751

From: Randy.Dunlap (rddunlap@osdl.org)
Date: Thu Mar 20 2003 - 15:08:33 EST


Hi,

This has already been done for arch/i386 and arch/x86_64 (same function
as is patched here). Please apply to 2.5.65.

Thanks,

--
~Randy

patch_name: sh-pci-dev-stack.patch patch_version: 2003-03-20.11:47:35 author: Randy.Dunlap <rddunlap@osdl.org> description: reduce stack usage in arch/sh/kernel/pci-sh7751::pcibios_fixup_peer_bridges() product: Linux product_versions: 2.5.65 changelog: change pci_dev and pci_bus data to pointers & kmalloc() them; same patch as already applied to i386 and x86_64; maintainer: Niibe Yutaka: gniibe@m17n.org, Kazumoto Kojima: kkojima@rr.iij4u.or.jp (list: linux-sh@m17n.org) diffstat: = arch/sh/kernel/pci-sh7751.c | 27 +++++++++++++++++++-------- 1 files changed, 19 insertions(+), 8 deletions(-)

diff -Naur ./arch/sh/kernel/pci-sh7751.c%SHSTK ./arch/sh/kernel/pci-sh7751.c --- ./arch/sh/kernel/pci-sh7751.c%SHSTK Mon Mar 17 13:44:19 2003 +++ ./arch/sh/kernel/pci-sh7751.c Thu Mar 20 11:46:08 2003 @@ -199,28 +199,39 @@ static void __init pcibios_fixup_peer_bridges(void) { int n; - struct pci_bus bus; - struct pci_dev dev; + struct pci_bus *bus; + struct pci_dev *dev; u16 l; if (pcibios_last_bus <= 0 || pcibios_last_bus >= 0xff) return; PCIDBG(2,"PCI: Peer bridge fixup\n"); + + bus = kmalloc(sizeof(*bus), GFP_ATOMIC); + dev = kmalloc(sizeof(*dev), GFP_ATOMIC); + if (!bus || !dev) { + printk(KERN_ERR "Out of memory in %s\n", __FUNCTION__); + goto exit; + } + for (n=0; n <= pcibios_last_bus; n++) { if (pci_bus_exists(&pci_root_buses, n)) continue; - bus.number = n; - bus.ops = pci_root_ops; - dev.bus = &bus; - for(dev.devfn=0; dev.devfn<256; dev.devfn += 8) - if (!pci_read_config_word(&dev, PCI_VENDOR_ID, &l) && + bus->number = n; + bus->ops = pci_root_ops; + dev->bus = bus; + for(dev->devfn=0; dev->devfn<256; dev->devfn += 8) + if (!pci_read_config_word(dev, PCI_VENDOR_ID, &l) && l != 0x0000 && l != 0xffff) { - PCIDBG(3,"Found device at %02x:%02x [%04x]\n", n, dev.devfn, l); + PCIDBG(3,"Found device at %02x:%02x [%04x]\n", n, dev->devfn, l); printk(KERN_INFO "PCI: Discovered peer bus %02x\n", n); pci_scan_bus(n, pci_root_ops, NULL); break; } } +exit: + kfree(dev); + kfree(bus); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Mar 23 2003 - 22:00:32 EST