* 2.5.47 -- OOPS -- sleeping function called from illegal context at mm/page_alloc.c:417
@ 2002-11-12 8:17 Miles Lane
2002-11-12 8:58 ` 2.5.47 -- OOPS -- sleeping function called from illegal context atmm/page_alloc.c:417 Andrew Morton
0 siblings, 1 reply; 2+ messages in thread
From: Miles Lane @ 2002-11-12 8:17 UTC (permalink / raw)
To: linux-kernel
ohci1394: $Rev: 601 $ Ben Collins <bcollins@debian.org>
ohci1394_0: Unexpected PCI resource length of 1000!
ohci1394_0: OHCI-1394 1.0 (PCI): IRQ=[9] MMIO=[febfc000-febfc7ff] Max
Packet=[2048]
Debug: sleeping function called from illegal context at mm/page_alloc.c:417
Call Trace:
[<c013c62a>] __alloc_pages+0x26a/0x270
[<c02a7556>] __ide_dma_count+0x16/0x20
[<c02a7222>] __ide_dma_read+0xe2/0xf0
[<c013c64f>] __get_free_pages+0x1f/0x60
[<c0118a7f>] dup_task_struct+0x8f/0xd0
[<c01192b6>] copy_process+0x96/0x8b0
[<c010ac33>] do_IRQ+0x103/0x120
[<c0119b18>] do_fork+0x48/0x150
[<c01071e5>] kernel_thread+0x95/0xb0
[<d08db8b0>] nodemgr_host_thread+0x0/0xb0 [ieee1394]
[<c0107138>] kernel_thread_helper+0x0/0x18
[<c011b10d>] printk+0x11d/0x180
[<d08dbbe2>] nodemgr_add_host+0x72/0xf0 [ieee1394]
[<d08db8b0>] nodemgr_host_thread+0x0/0xb0 [ieee1394]
[<d08d86de>] highlevel_add_host+0x2e/0x60 [ieee1394]
[<d08d8154>] hpsb_add_host+0x44/0x70 [ieee1394]
[<d08e4f96>] ohci1394_pci_probe+0x4b6/0x5a0 [ohci1394]
[<d08e3300>] ohci_irq_handler+0x0/0x4e0 [ohci1394]
[<d08e62b2>] .rodata.str1.1+0x0/0x8e [ohci1394]
[<d08e6fc0>] ohci1394_pci_driver+0x0/0x94 [ohci1394]
[<d08e6fe8>] ohci1394_pci_driver+0x28/0x94 [ohci1394]
[<c0211f7e>] pci_device_probe+0x5e/0x70
[<d08e6f80>] ohci1394_pci_tbl+0x0/0x38 [ohci1394]
[<d08e6fe8>] ohci1394_pci_driver+0x28/0x94 [ohci1394]
[<c025fca5>] bus_match+0x45/0x80
[<d08e6fe8>] ohci1394_pci_driver+0x28/0x94 [ohci1394]
[<c025fdf2>] driver_attach+0x72/0x90
[<d08e6fe8>] ohci1394_pci_driver+0x28/0x94 [ohci1394]
[<d08e6fe8>] ohci1394_pci_driver+0x28/0x94 [ohci1394]
[<d08e6ffc>] ohci1394_pci_driver+0x3c/0x94 [ohci1394]
[<c02600fc>] bus_add_driver+0x6c/0x90
[<d08e6fe8>] ohci1394_pci_driver+0x28/0x94 [ohci1394]
[<d08e6fe8>] ohci1394_pci_driver+0x28/0x94 [ohci1394]
[<d08e62bb>] .rodata.str1.1+0x9/0x8e [ohci1394]
[<d08e700c>] ohci1394_pci_driver+0x4c/0x94 [ohci1394]
[<c0260831>] driver_register+0x91/0xa0
[<d08e6fe8>] ohci1394_pci_driver+0x28/0x94 [ohci1394]
[<c02120b4>] pci_register_driver+0x44/0x60
[<d08e6fe8>] ohci1394_pci_driver+0x28/0x94 [ohci1394]
[<d08e53f3>] ohci1394_init+0x13/0x40 [ohci1394]
[<d08e6fc0>] ohci1394_pci_driver+0x0/0x94 [ohci1394]
[<c011c1ad>] sys_init_module+0x4dd/0x620
[<d08e2060>] E
__insmod_ohci1394_O/lib/modules/2.5.47/kernel/drivers/ieee1394/ohci1394.o_M3DD0B6FE_V132399+0x60/0x80
[ohci1394]
[<d08e6544>] .kmodtab+0x0/0xc [ohci1394]
[<d08e2060>] E
__insmod_ohci1394_O/lib/modules/2.5.47/kernel/drivers/ieee1394/ohci1394.o_M3DD0B6FE_V132399+0x60/0x80
[ohci1394]
[<c01092a3>] syscall_call+0x7/0xb
ieee1394: unsolicited response packet received - np
ieee1394: contents: ffc00160 ffc00000 00000000 44900404
ieee1394: unsolicited response packet received - np
ieee1394: contents: ffc00560 ffc00000 00000000 44900404
ieee1394: Host added: Node[00:1023] GUID[0030dd80000540e1] [Linux
OHCI-1394]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: 2.5.47 -- OOPS -- sleeping function called from illegal context atmm/page_alloc.c:417
2002-11-12 8:17 2.5.47 -- OOPS -- sleeping function called from illegal context at mm/page_alloc.c:417 Miles Lane
@ 2002-11-12 8:58 ` Andrew Morton
0 siblings, 0 replies; 2+ messages in thread
From: Andrew Morton @ 2002-11-12 8:58 UTC (permalink / raw)
To: Miles Lane, linux1394-devel@lists.sourceforge.net, Thomas Molina
Cc: linux-kernel
(It is not an oops. It is a debug trace)
Miles Lane wrote:
>
> ohci1394: $Rev: 601 $ Ben Collins <bcollins@debian.org>
> ohci1394_0: Unexpected PCI resource length of 1000!
> ohci1394_0: OHCI-1394 1.0 (PCI): IRQ=[9] MMIO=[febfc000-febfc7ff] Max
> Packet=[2048]
> Debug: sleeping function called from illegal context at mm/page_alloc.c:417
> Call Trace:
void highlevel_add_host(struct hpsb_host *host)
{
struct list_head *entry;
struct hpsb_highlevel *hl;
read_lock(&hl_drivers_lock);
list_for_each(entry, &hl_drivers) {
hl = list_entry(entry, struct hpsb_highlevel, hl_list);
hl->op->add_host(host);
}
read_unlock(&hl_drivers_lock);
}
That's a pretty bad bug. You shouldn't sleep inside read_lock(), and this
function is performing GFP_KERNEL allocations and even launching kernel
threads inside that lock.
Can hl_drivers_lock become a semaphore?
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2002-11-12 8:52 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-11-12 8:17 2.5.47 -- OOPS -- sleeping function called from illegal context at mm/page_alloc.c:417 Miles Lane
2002-11-12 8:58 ` 2.5.47 -- OOPS -- sleeping function called from illegal context atmm/page_alloc.c:417 Andrew Morton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox