[etherlab-users] Kernel Oops with ethercat-1.5.1 and kernel 2.6.37
Andreas Stewering-Bone
ab at igh-essen.com
Thu Apr 5 17:15:09 CEST 2012
Hello William,
Good news.
Am 05.04.2012 17:10, schrieb William Montgomery:
> Hi Andreas,
>
> I just installed a NIC with the r8169 chipset and tested the ethercat
> driver (ec_r8169).
> There is no Oops when doing the /etc/init.d/ethercat start and I get
> normal kernel messages, so this driver seems fine.
>
> I can probably just use this card and driver for my application but I
> am willing to help debug the e1000 problem if there is an interest?
>
You are welcome.
Best regards
Andreas
> Regards,
> Wm
>
> On 04/05/2012 03:43 AM, Andreas Stewering-Bone wrote:
>> Hello William,
>>
>> Maybe we should talk to Florian,
>> he has ported the driver.
>>
>> I think, but I do not know exactly, the ethercat drive generally
>> should not register in the netdev queques.
>>
>> Normally we check on "if (adapter->ecdev)" before.
>>
>> On the other side, do you have the chance to use a realtek chipset?
>> This chips run very well.
>>
>> Best regards
>>
>> Andreas
>>
>>
>> Am 04.04.2012 22:45, schrieb William Montgomery:
>>> Hi Andreas,
>>>
>>> It does look like a bug. I have traced it to a line in the e1000
>>> driver:
>>> e1000_main-2.6.37-ethercat.c
>>> the e1000_open call works fine up to and including
>>> e1000_irq_enable(adapter) but we get the NULL pointer reference in
>>> netif_start_queue(netdev);
>>>
>>> A snippet from the objdump:
>>> ------
>>> 6a28: 8b 40 08 mov 0x8(%eax),%eax
>>> netif_schedule_queue(netdev_get_tx_queue(dev, i));
>>> }
>>>
>>> static inline void netif_tx_start_queue(struct netdev_queue *dev_queue)
>>> {
>>> clear_bit(__QUEUE_STATE_XOFF, &dev_queue->state);
>>> 6a2b: 8b 83 c0 01 00 00 mov 0x1c0(%ebx),%eax
>>> 6a31: f0 80 60 08 fe lock andb $0xfe,0x8(%eax)
>>> --------
>>> It looks like the NULL pointer is used in the clear_bit call but I
>>> dont know why the netdev_get_tx_queue() wouldn't return a good value?
>>>
>>> I would like to help fix this if possible.
>>>
>>> Regards,
>>> Wm
>>>
>>> On 04/04/2012 03:37 AM, Andreas Stewering-Bone wrote:
>>>> Hello Willam,
>>>>
>>>> please try the generic driver.
>>>>
>>>> The e1000 driver is a little bit tricky, maybe there is a bug.
>>>>
>>>> Best regards
>>>>
>>>> Andreas
>>>>
>>>> Am 03.04.2012 18:26, schrieb William Montgomery:
>>>>> My setup:
>>>>> Slackware 13.37
>>>>> kernel 2.6.37.6-smp
>>>>> ethercat-1.5.1 (configured with --enable-e1000)
>>>>>
>>>>> I get a kernel Oops when I invoke /etc/init.d/ethercat start.
>>>>> Sometimes the machine hangs completely other times I can get more
>>>>> details
>>>>> from syslog:
>>>>>
>>>>> Apr 3 11:57:07 c130ctltst2 python: hp-systray[2215]: warning:
>>>>> hp-systray should not be run as root/superuser.
>>>>> Apr 3 11:57:07 c130ctltst2 python: hp-systray[2215]: error:
>>>>> hp-systray cannot be run as root. Exiting.
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221363] BUG: unable to
>>>>> handle kernel NULL pointer dereference at 00000008
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221394] IP:
>>>>> [<f8697998>] e1000_open+0xc8/0x140 [ec_e1000]
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221419] *pde = 00000000
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221431] Oops: 0002 [#1]
>>>>> SMP
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221446] last sysfs
>>>>> file: /sys/module/ec_master/initstate
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221465] Modules linked
>>>>> in: ec_e1000(+) ec_master ipv6 lp fuse i915 drm_kms_helper drm
>>>>> intel_agp i2c_algo_bit intel_
>>>>> gtt psmouse usbhid video hid agpgart thermal fan rtc_cmos
>>>>> serio_raw processor thermal_sys evdev sg rtc_core e1000e output
>>>>> ppdev i2c_i801 hwmon i2c_core rtc_li
>>>>> b shpchp parport_pc parport button [last unloaded: e1000]
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221606]
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221613] Pid: 2392,
>>>>> comm: modprobe Not tainted 2.6.37.6-smp #2 To be filled by O.E.M.
>>>>> To be filled by O.E.M./To be f
>>>>> illed by O.E.M.
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221659] EIP:
>>>>> 0060:[<f8697998>] EFLAGS: 00010286 CPU: 2
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221679] EIP is at
>>>>> e1000_open+0xc8/0x140 [ec_e1000]
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221697] EAX: 00000000
>>>>> EBX: f714c000 ECX: f648f85c EDX: f714c000
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221717] ESI: 00000000
>>>>> EDI: f714c400 EBP: f5afdd4c ESP: f5afdd40
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221738] DS: 007b ES:
>>>>> 007b FS: 00d8 GS: 00e0 SS: 0068
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221756] Process
>>>>> modprobe (pid: 2392, ti=f5afc000 task=f586ee80 task.ti=f5afc000)
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221781] Stack:
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221788] f648f85c
>>>>> f648f85c f714c106 f5afdd60 f8a089c1 313a3030 31323a42 f7214400
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221823] f5afdd78
>>>>> f8a08a28 05218120 f7214400 f7214400 f714c400 f5afddd8 f86a0f8b
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221858] f5afddca
>>>>> 00000008 f5afddac c11500ca f6a165d0 f5afdda4 f5b0cc88 f714c100
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221892] Call Trace:
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221906] [<f8a089c1>] ?
>>>>> ec_device_open+0xd1/0x120 [ec_master]
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221928] [<f8a08a28>] ?
>>>>> ecdev_open+0x18/0x70 [ec_master]
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221949] [<f86a0f8b>] ?
>>>>> e1000_probe+0x9aa/0xba8 [ec_e1000]
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221972] [<c11500ca>] ?
>>>>> sysfs_addrm_finish+0x1a/0xb0
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.221992] [<c15863a5>] ?
>>>>> pm_runtime_enable+0x45/0x70
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222010] [<c15047d7>] ?
>>>>> local_pci_probe+0x47/0xb0
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222028] [<c1504d98>] ?
>>>>> pci_device_probe+0x68/0x90
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222046] [<c157f96f>] ?
>>>>> driver_probe_device+0x7f/0x190
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222064] [<c150475b>] ?
>>>>> pci_match_device+0xab/0xc0
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222082] [<c157fb01>] ?
>>>>> __driver_attach+0x81/0x90
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222099] [<c157eaf9>] ?
>>>>> bus_for_each_dev+0x49/0x70
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222117] [<c157f67e>] ?
>>>>> driver_attach+0x1e/0x20
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222134] [<c157fa80>] ?
>>>>> __driver_attach+0x0/0x90
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222151] [<c157f24a>] ?
>>>>> bus_add_driver+0xca/0x2b0
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222168] [<c1505ad0>] ?
>>>>> pci_device_remove+0x0/0xf0
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222186] [<c157fd36>] ?
>>>>> driver_register+0x66/0x110
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222204] [<c109f0cd>] ?
>>>>> ftrace_process_locs+0x15d/0x250Apr 3 11:59:11 c130ctltst2 kernel:
>>>>> [ 476.222223] [<c1504fc5>] ? __pci_register_driver+0x45/0xb0
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222244] [<f854204b>] ?
>>>>> e1000_init_module+0x4b/0x83 [ec_e1000]
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222265] [<c1001235>] ?
>>>>> do_one_initcall+0x35/0x170
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222284] [<f8542000>] ?
>>>>> e1000_init_module+0x0/0x83 [ec_e1000]
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222305] [<c107777b>] ?
>>>>> sys_init_module+0x10b/0x18b0
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222327] [<c19dd5ac>] ?
>>>>> syscall_call+0x7/0xb
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222343] Code: 98 09 00
>>>>> 00 fb 8b 87 88 01 00 00 a8 01 0f 84 8c 00 00 00 f0 80 a7 88 01 00
>>>>> 00 fe 8b 8f cc 05 00 00 85
>>>>> c9 74 5e 8b 83 c0 01 00 00 <f0> 80 60 08 fe b8 04 00 00 00 8b 97
>>>>> f0 01 00 00 89 82 c8 00 00
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222490] EIP:
>>>>> [<f8697998>] e1000_open+0xc8/0x140 [ec_e1000] SS:ESP 0068:f5afdd40
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.222520] CR2:
>>>>> 0000000000000008
>>>>> Apr 3 11:59:11 c130ctltst2 kernel: [ 476.229386] ---[ end trace
>>>>> 53d4103391925e37 ]---
>>>>>
>>>>> Any ideas?
>>>>>
>>>>> Regards,
>>>>> Wm
>>>>>
>>>>> _______________________________________________
>>>>> etherlab-users mailing list
>>>>> etherlab-users at etherlab.org
>>>>> http://lists.etherlab.org/mailman/listinfo/etherlab-users
>>>>
>>>>
>>>> Mit freundlichem Gruß
>>>>
>>>> Andreas Stewering-Bone
>>>>
>>>
>>> _______________________________________________
>>> etherlab-users mailing list
>>> etherlab-users at etherlab.org
>>> http://lists.etherlab.org/mailman/listinfo/etherlab-users
>>
>>
>> Mit freundlichem Gruß
>>
>> Andreas Stewering-Bone
>>
>
> _______________________________________________
> etherlab-users mailing list
> etherlab-users at etherlab.org
> http://lists.etherlab.org/mailman/listinfo/etherlab-users
Mit freundlichem Gruß
Andreas Stewering-Bone
--
------------------------------------------------------------------------
Dipl.-Ing.(FH) Andreas Stewering-Bone
andreas.stewering-bone at igh-essen.com
Tel.: +49 201 / 36014-15
Ingenieurgemeinschaft IgH
Gesellschaft für Ingenieurleistungen mbH
Heinz-Bäcker-Str. 34
D-45356 Essen
Amtsgericht Essen HRB 11500
USt-Id.-Nr.: DE 174 626 722
Geschäftsführung:
- Dr.-Ing. S. Rotthäuser,
- Dr.-Ing. T. Finke,
- Dr.-Ing. W. Hagemeister
Tel.: +49 201 / 360-14-0
http://www.igh-essen.com
------------------------------------------------------------------------
More information about the Etherlab-users
mailing list