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

From: Bob Miller (rem@osdl.org)
Date: Thu Mar 20 2003 - 16:59:11 EST


On Thu, Mar 20, 2003 at 12:08:33PM -0800, Randy.Dunlap wrote:
> 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;
> + }
> +
If the kmalloc() for bus succeeds but for dev fails this will leak the
memory given to bus.

-- 
Bob Miller					Email: rem@osdl.org
Open Source Development Lab			Phone: 503.626.2455 Ext. 17
-
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