[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