public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* 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