* [PATCH] fix kmalloc(0) in arch/ia64/pci/pci.c
@ 2007-05-17 2:00 KAMEZAWA Hiroyuki
2007-05-17 19:19 ` Andrew Morton
2007-05-22 1:23 ` Kenji Kaneshige
0 siblings, 2 replies; 4+ messages in thread
From: KAMEZAWA Hiroyuki @ 2007-05-17 2:00 UTC (permalink / raw)
To: linux-ia64@vger.kernel.org; +Cc: LKML, tony.luck@intel.com, AKPM
Fix following kmalloc(0) message. patch is agaisnt 2.6.22-rc1-mm1.
=
BUG: at mm/slab.c:792 __find_general_cachep()
Call Trace:
[<a000000100013f20>] show_stack+0x40/0xa0
spà00014042227b00 bspà00014042220f90
[<a000000100013fb0>] dump_stack+0x30/0x60
spà00014042227cd0 bspà00014042220f78
[<a00000010014fe10>] kmem_find_general_cachep+0x90/0x140
spà00014042227cd0 bspà00014042220f48
[<a0000001001504f0>] __kmalloc_node+0x30/0xa0
spà00014042227cd0 bspà00014042220f18
[<a0000001004eb700>] pci_acpi_scan_root+0x180/0x4a0
spà00014042227cd0 bspà00014042220ed0
[<a000000100361140>] acpi_pci_root_add+0x4e0/0x700
spà00014042227cf0 bspà00014042220e90
[<a00000010035b240>] acpi_device_probe+0xa0/0x160
spà00014042227d10 bspà00014042220e58
[<a0000001003e4550>] driver_probe_device+0x250/0x380
spà00014042227d10 bspà00014042220e18
[<a0000001003e4900>] __driver_attach+0xc0/0x160
spà00014042227d10 bspà00014042220de0
[<a0000001003e2980>] bus_for_each_dev+0x80/0x100
spà00014042227d10 bspà00014042220da8
[<a0000001003e4120>] driver_attach+0x40/0x60
spà00014042227d30 bspà00014042220d88
[<a0000001003e3170>] bus_add_driver+0xf0/0x3c0
spà00014042227d30 bspà00014042220d48
[<a0000001003e4e00>] driver_register+0x140/0x160
spà00014042227d30 bspà00014042220d28
[<a00000010035ded0>] acpi_bus_register_driver+0x50/0x80
spà00014042227d30 bspà00014042220d08
[<a0000001007d6000>] acpi_pci_root_init+0x20/0x60
spà00014042227d30 bspà00014042220cf0
[<a0000001007a46b0>] kernel_init+0x450/0x7c0
spà00014042227d30 bspà00014042220ca8
[<a000000100012550>] kernel_thread_helper+0x30/0x60
spà00014042227e30 bspà00014042220c80
[<a0000001000090c0>] start_kernel_thread+0x20/0x40
spà00014042227e30 bspà00014042220c80
=
Fix kmalloc(0)
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Index: linux-2.6.22-rc1-mm1/arch/ia64/pci/pci.c
=================================--- linux-2.6.22-rc1-mm1.orig/arch/ia64/pci/pci.c
+++ linux-2.6.22-rc1-mm1/arch/ia64/pci/pci.c
@@ -354,6 +354,8 @@ pci_acpi_scan_root(struct acpi_device *d
acpi_walk_resources(device->handle, METHOD_NAME__CRS, count_window,
&windows);
+ if (!windows)
+ goto out2;
controller->window = kmalloc_node(sizeof(*controller->window) * windows,
GFP_KERNEL, controller->node);
if (!controller->window)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] fix kmalloc(0) in arch/ia64/pci/pci.c
2007-05-17 2:00 [PATCH] fix kmalloc(0) in arch/ia64/pci/pci.c KAMEZAWA Hiroyuki
@ 2007-05-17 19:19 ` Andrew Morton
2007-05-18 0:48 ` KAMEZAWA Hiroyuki
2007-05-22 1:23 ` Kenji Kaneshige
1 sibling, 1 reply; 4+ messages in thread
From: Andrew Morton @ 2007-05-17 19:19 UTC (permalink / raw)
To: KAMEZAWA Hiroyuki; +Cc: linux-ia64@vger.kernel.org, LKML, tony.luck@intel.com
On Thu, 17 May 2007 11:00:56 +0900
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:
> Fix following kmalloc(0) message. patch is agaisnt 2.6.22-rc1-mm1.
>
> =
> BUG: at mm/slab.c:792 __find_general_cachep()
>
> Call Trace:
> [<a000000100013f20>] show_stack+0x40/0xa0
> spà00014042227b00 bspà00014042220f90
> [<a000000100013fb0>] dump_stack+0x30/0x60
> spà00014042227cd0 bspà00014042220f78
> [<a00000010014fe10>] kmem_find_general_cachep+0x90/0x140
> spà00014042227cd0 bspà00014042220f48
> [<a0000001001504f0>] __kmalloc_node+0x30/0xa0
> spà00014042227cd0 bspà00014042220f18
> [<a0000001004eb700>] pci_acpi_scan_root+0x180/0x4a0
> spà00014042227cd0 bspà00014042220ed0
> [<a000000100361140>] acpi_pci_root_add+0x4e0/0x700
> spà00014042227cf0 bspà00014042220e90
> [<a00000010035b240>] acpi_device_probe+0xa0/0x160
> spà00014042227d10 bspà00014042220e58
> [<a0000001003e4550>] driver_probe_device+0x250/0x380
> spà00014042227d10 bspà00014042220e18
> [<a0000001003e4900>] __driver_attach+0xc0/0x160
> spà00014042227d10 bspà00014042220de0
> [<a0000001003e2980>] bus_for_each_dev+0x80/0x100
> spà00014042227d10 bspà00014042220da8
> [<a0000001003e4120>] driver_attach+0x40/0x60
> spà00014042227d30 bspà00014042220d88
> [<a0000001003e3170>] bus_add_driver+0xf0/0x3c0
> spà00014042227d30 bspà00014042220d48
> [<a0000001003e4e00>] driver_register+0x140/0x160
> spà00014042227d30 bspà00014042220d28
> [<a00000010035ded0>] acpi_bus_register_driver+0x50/0x80
> spà00014042227d30 bspà00014042220d08
> [<a0000001007d6000>] acpi_pci_root_init+0x20/0x60
> spà00014042227d30 bspà00014042220cf0
> [<a0000001007a46b0>] kernel_init+0x450/0x7c0
> spà00014042227d30 bspà00014042220ca8
> [<a000000100012550>] kernel_thread_helper+0x30/0x60
> spà00014042227e30 bspà00014042220c80
> [<a0000001000090c0>] start_kernel_thread+0x20/0x40
> spà00014042227e30 bspà00014042220c80
> =
>
> Fix kmalloc(0)
>
> Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
>
> Index: linux-2.6.22-rc1-mm1/arch/ia64/pci/pci.c
> =================================> --- linux-2.6.22-rc1-mm1.orig/arch/ia64/pci/pci.c
> +++ linux-2.6.22-rc1-mm1/arch/ia64/pci/pci.c
> @@ -354,6 +354,8 @@ pci_acpi_scan_root(struct acpi_device *d
>
> acpi_walk_resources(device->handle, METHOD_NAME__CRS, count_window,
> &windows);
> + if (!windows)
> + goto out2;
> controller->window = kmalloc_node(sizeof(*controller->window) * windows,
> GFP_KERNEL, controller->node);
> if (!controller->window)
>
This is a significant change in functionality. Can you please explain why
it doesn't break things?
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] fix kmalloc(0) in arch/ia64/pci/pci.c
2007-05-17 19:19 ` Andrew Morton
@ 2007-05-18 0:48 ` KAMEZAWA Hiroyuki
0 siblings, 0 replies; 4+ messages in thread
From: KAMEZAWA Hiroyuki @ 2007-05-18 0:48 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-ia64, linux-kernel, tony.luck
On Thu, 17 May 2007 12:19:59 -0700
Andrew Morton <akpm@linux-foundation.org> wrote:
> > + if (!windows)
> > + goto out2;
> > controller->window = kmalloc_node(sizeof(*controller->window) * windows,
> > GFP_KERNEL, controller->node);
> > if (!controller->window)
> >
>
> This is a significant change in functionality. Can you please explain why
> it doesn't break things?
>
Sorry for long RTT. I found no problem on my machine, but....
I realized I misunderstood how kmalloc(0) works....sorry, please drop patch.
I'll ask a pci guy to fix this.
-Kame
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] fix kmalloc(0) in arch/ia64/pci/pci.c
2007-05-17 2:00 [PATCH] fix kmalloc(0) in arch/ia64/pci/pci.c KAMEZAWA Hiroyuki
2007-05-17 19:19 ` Andrew Morton
@ 2007-05-22 1:23 ` Kenji Kaneshige
1 sibling, 0 replies; 4+ messages in thread
From: Kenji Kaneshige @ 2007-05-22 1:23 UTC (permalink / raw)
To: linux-ia64
Hi,
Here is a patch to fix zero size kmalloc problem that was reported
by Hiroyuki Kamezawa.
Thanks,
Kenji Kaneshige
---
Hiroyuki Kamezawa reported the problem that pci_acpi_scan_root() of
ia64 might call kmalloc_node() with zero size.
Currently ia64's pci_acpi_scan_root() assumes that _CRS method of root
bridge has at least one resource window. But, the root bridges that
has no resource window must be taken into account.
Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
---
arch/ia64/pci/pci.c | 11 +++++++----
1 files changed, 7 insertions(+), 4 deletions(-)
Index: linux-2.6.22-rc1/arch/ia64/pci/pci.c
=================================--- linux-2.6.22-rc1.orig/arch/ia64/pci/pci.c
+++ linux-2.6.22-rc1/arch/ia64/pci/pci.c
@@ -354,10 +354,13 @@ pci_acpi_scan_root(struct acpi_device *d
acpi_walk_resources(device->handle, METHOD_NAME__CRS, count_window,
&windows);
- controller->window = kmalloc_node(sizeof(*controller->window) * windows,
- GFP_KERNEL, controller->node);
- if (!controller->window)
- goto out2;
+ if (windows) {
+ controller->window + kmalloc_node(sizeof(*controller->window) * windows,
+ GFP_KERNEL, controller->node);
+ if (!controller->window)
+ goto out2;
+ }
name = kmalloc(16, GFP_KERNEL);
if (!name)
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-05-22 1:23 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-17 2:00 [PATCH] fix kmalloc(0) in arch/ia64/pci/pci.c KAMEZAWA Hiroyuki
2007-05-17 19:19 ` Andrew Morton
2007-05-18 0:48 ` KAMEZAWA Hiroyuki
2007-05-22 1:23 ` Kenji Kaneshige
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox