[etherlab-users] Kernel Oops with ethercat-1.5.1 and kernel 2.6.37

William Montgomery william at opinicus.com
Thu Apr 5 14:50:11 CEST 2012


Hi Andreas,

I looked at the Realtek driver code as well and it looks like the 
netif_start_queue() is used there too.

I do have a Realtek card and will try that today.  I have used the 
ethercat drivers with RTAI in the 2.6.32 kernel with no problem and was 
upgrading to 2.6.37 when I ran into this.  In order to make the test 
case simple I am using a plain 2.6.37 kernel without the RTAI patch.

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
>




More information about the Etherlab-users mailing list