[etherlab-users] "EtherCAT WARNING: <N> datagrams TIMED OUT!" problem

Anthony Sharobaiko anthony at fiord.com
Fri May 16 15:05:52 CEST 2008


On Fri, May 16, 2008 at 04:16:06PM +0400, Anthony Sharobaiko wrote:
> There is a problem with ec_e100 driver - it fails to load:
> 
> ec_e100: Unknown symbol ecdev_unregister
> ec_e100: Unknown symbol ecdev_register
> 
> ecdev_(un)register functions are mentioned in online docs, but they couldn't
> be found in ethercat 1.3.2 sources.

Huh. I've just googled ec_register()->ec_offer() change. After this patch:


--- e100-2.6.18-ethercat.c.orig 2008-05-16 16:17:59.000000000 +0400
+++ e100-2.6.18-ethercat.c      2008-05-16 16:47:14.000000000 +0400
@@ -3026,8 +3026,7 @@
        if (e100_ec_netdev) {
         nic = netdev_priv(e100_ec_netdev);
                printk(KERN_INFO DRV_NAME " Registering EtherCAT device...\n");
-               if (!(nic->ecdev = ecdev_register(ec_device_master_index,
-                        e100_ec_netdev, e100_ec_poll, THIS_MODULE))) {
+               if (ecdev_offer(e100_ec_netdev, e100_ec_poll, THIS_MODULE, &nic->ecdev)) {
                        printk(KERN_ERR DRV_NAME " Failed to register EtherCAT device!\n");
                        goto out_pci;
                }
@@ -3046,7 +3045,7 @@
 
 out_unregister:
        printk(KERN_INFO DRV_NAME " Unregistering EtherCAT device...\n");
-       ecdev_unregister(ec_device_master_index, nic->ecdev);
+       ecdev_withdraw (nic->ecdev);
 out_pci:
        pci_unregister_driver(&e100_driver);
 out_return:
@@ -3062,7 +3061,7 @@
                printk(KERN_INFO DRV_NAME " Closing EtherCAT device...\n");
                ecdev_close(nic->ecdev);
                printk(KERN_INFO DRV_NAME " Unregistering EtherCAT device...\n");
-               ecdev_unregister(ec_device_master_index, nic->ecdev);
+               ecdev_withdraw (nic->ecdev);
        }
 
        pci_unregister_driver(&e100_driver);


module compiles, but could not be loaded automatically via rc script

ec_e100 EtherCAT-capable Intel(R) PRO/100 Network Driver 3.5.10-k2-NAPI, master 1.3.2 stable r980
ec_e100 ec_device_index is -1
PCI: Enabling device 0000:01:03.0 (0110 -> 0113)
ACPI: PCI Interrupt 0000:01:03.0[A] -> GSI 19 (level, low) -> IRQ 185
ec_e100: eth0: e100_probe: addr 0xff8ff000, irq 185, MAC addr 00:1B:21:0F:8E:73
PCI: Enabling device 0000:01:08.0 (0110 -> 0113)
ACPI: PCI Interrupt 0000:01:08.0[A] -> GSI 20 (level, low) -> IRQ 209
ec_e100: eth1: e100_probe: addr 0xff8fd000, irq 209, MAC addr 00:11:11:61:6D:BB
ec_e100 No EtherCAT device registered!

Specifiying ec_device_index manually (0 & 1 where tried) does not help.

If I unload e100 module (unpatched .ko, which handles my main NIC) and load ec_e100, it bails out:

ec_e100 EtherCAT-capable Intel(R) PRO/100 Network Driver 3.5.10-k2-NAPI, master 1.3.2 stable r980
ec_e100 ec_device_index is 0
PCI: Enabling device 0000:01:03.0 (0110 -> 0113)
ACPI: PCI Interrupt 0000:01:03.0[A] -> GSI 19 (level, low) -> IRQ 185
ec_e100: ec0: e100_probe: addr 0xff8ff000, irq 185, MAC addr 00:1B:21:0F:8E:73
PCI: Enabling device 0000:01:08.0 (0110 -> 0113)
ACPI: PCI Interrupt 0000:01:08.0[A] -> GSI 20 (level, low) -> IRQ 209
ec_e100: eth0: e100_probe: addr 0xff8fd000, irq 209, MAC addr 00:11:11:61:6D:BB
ec_e100 Registering EtherCAT device...
ec_e100 Opening EtherCAT device...
BUG: unable to handle kernel NULL pointer dereference at virtual address 00000004
 printing eip:
dfcc578d
*pde = 00000000
Oops: 0000 [#1]
SMP
Modules linked in: ec_e100 ec_master 8139too i915 drm nfs pktcdvd nfsd exportfs lockd nfs_acl sunrpc button ac battery ipv6 binfmt_misc nls_iso8859_1 nls_cp437 vfat fat xfs dm_snapshot dm_mirror dm_mod loop tsdev snd_intel8x0 snd_ac97_codec snd_ac97_bus snd_pcm_oss snd_pcm snd_mixer_oss snd_seq_dummy snd_seq_oss snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer snd_seq_device serio_raw sd_mod i2c_i801 floppy snd soundcore parport_pc parport rtc psmouse pcspkr i2c_core snd_page_alloc shpchp pci_hotplug intel_agp agpgart evdev ext3 jbd mbcache ide_cd cdrom ide_disk usb_storage scsi_mod piix 8139cp mii generic ide_core ehci_hcd uhci_hcd usbcore thermal processor fan
CPU:    0
EIP:    0060:[<dfcc578d>]    Not tainted VLI
EFLAGS: 00010282   (2.6.18-etherlab #4) 
EIP is at ec_device_open+0x5/0x5e [ec_master]
eax: 00000026   ebx: 00000000   ecx: 00000046   edx: fffffd8c
esi: de3a5ac0   edi: cf135368   ebp: cf135338   esp: cf12bec8
ds: 007b   es: 007b   ss: 0068
Process modprobe (pid: 3299, ti=cf12a000 task=d2bec000 task.ti=cf12a000)
Stack: 00000000 dfcc31d4 00000000 de3a5800 df81c09f 00000000 dfc24e8d cf135358 
       dfc5f000 c0136260 00005a94 00000398 dfc27fc0 00000000 00000000 00000000 
       00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
Call Trace:
 [<dfcc31d4>] ecdev_open+0xb/0x37 [ec_master]
 [<df81c09f>] e100_init_module+0x9f/0xee [ec_e100]
 [<c0136260>] sys_init_module+0x1591/0x1721
 [<c0102c6d>] sysenter_past_esp+0x56/0x79
Code: e8 02 85 45 e0 31 c0 5b eb 1a 50 ff 90 c4 01 00 00 59 85 c0 75 06 c6 43 10 00 eb 08 80 7b 10 01 19 c0 f7 d0 5b c3 53 8b 5c 24 08 <83> 7b 04 00 75 0f 68 c7 05 cd df e8 cc 84 45 e0 83 c8 ff eb 12 
EIP: [<dfcc578d>] ec_device_open+0x5/0x5e [ec_master] SS:ESP 0068:cf12bec8


Did I miss something?


-- 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20080516/2b90faf3/attachment-0004.sig>


More information about the Etherlab-users mailing list