lkml.org 
[lkml]   [2004]   [Aug]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    SubjectRe: e1000 driver failed to call pci_enable_device
    Date
    On Friday 27 August 2004 5:44 am, you wrote:
    > I tried to boot the linux-2.6.9-rc1-mm1 kernel and it generates an oops
    > because the e1000 driver failed to call pci_enable_device(). The kernel
    > boots normally with "pci=routeirq" argument sets. I copy the output of
    > "lspci" and also the oops message generated during the boot.
    > ...
    > ----[the oops message]----
    > Bringing up interface eth0: Unable to handle kernel paging request at virtual
    > ddress c0500eb0
    > printing eip:
    > *pde = 00582027
    > Oops: 0000 [#1]
    > PREEMPT SMP DEBUG_PAGEALLOC
    > Modules linked in: e1000
    > CPU: 0
    > EIP: 0060:[<c0500eb0>] Not tainted VLI
    > EFLAGS: 00010282 (2.6.9-rc1-mm1)
    > EIP is at assign_irq_vector+0x0/0x87
    > eax: 00000004 ebx: 00000034 ecx: 00000080 edx: c0545a70
    > esi: 00000004 edi: 00000002 ebp: 00000001 esp: f7f0dda4
    > ds: 007b es: 007b ss: 0068
    > Process modprobe (pid: 1760, threadinfo=f7f0c000 task=f7faeb70)
    > Stack: c011751e 00000034 00000002 00000004 00000008 0000000c 00000097 f7f0c000
    > 00000286 c2223480 00000001 0001a900 03000000 00000004 00000034 00000002
    > 00000010 c0114d43 00000002 00000004 00000034 00000001 00000001 00000001
    > Call Trace:
    > [<c011751e>] io_apic_set_pci_routing+0x7f/0x222
    > ...

    Thanks very much for your testing and detailed problem report. This
    problem actually isn't in e1000. Can you try the attached patch,
    please? I thought I'd seen this patch before, but it doesn't seem to
    be in -mm yet.


    Make assign_irq_vector() non-__init always (it's called from
    io_apic_set_pci_routing(), which is used in the pci_enable_device()
    path).

    Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>

    ===== arch/i386/kernel/io_apic.c 1.109 vs edited =====
    --- 1.109/arch/i386/kernel/io_apic.c 2004-08-24 03:08:37 -06:00
    +++ edited/arch/i386/kernel/io_apic.c 2004-08-27 09:30:37 -06:00
    @@ -1120,11 +1120,7 @@
    /* irq_vectors is indexed by the sum of all RTEs in all I/O APICs. */
    u8 irq_vector[NR_IRQ_VECTORS] = { FIRST_DEVICE_VECTOR , 0 };

    -#ifdef CONFIG_PCI_MSI
    int assign_irq_vector(int irq)
    -#else
    -int __init assign_irq_vector(int irq)
    -#endif
    {
    static int current_vector = FIRST_DEVICE_VECTOR, offset = 0;


    -
    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/

    \
     
     \ /
      Last update: 2005-03-22 14:05    [W:0.024 / U:30.412 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site