drivers/8139too.c
branchkernel2.6
changeset 33 f4171b8aadf8
parent 27 d75ef6b46e33
child 34 c1e8d61fa395
--- a/drivers/8139too.c	Fri Dec 16 09:44:54 2005 +0000
+++ b/drivers/8139too.c	Fri Dec 16 12:04:59 2005 +0000
@@ -202,7 +202,7 @@
 static int ec_device_master_index = 0;
 
 static EtherCAT_device_t rtl_ecat_dev;
-static EtherCAT_master_t *rtl_ecat_master = NULL;
+int rtl_ecat_dev_registered = 0;
 
 /* EtherCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
 
@@ -2966,6 +2966,7 @@
 
         EtherCAT_device_init(&rtl_ecat_dev);
         rtl_ecat_dev.isr = rtl8139_interrupt;
+        rtl_ecat_dev.module = THIS_MODULE;
 
         if (pci_module_init(&rtl8139_pci_driver) < 0)
         {
@@ -2977,20 +2978,15 @@
 
         if (rtl_ecat_dev.dev)
         {
-          if ((rtl_ecat_master = EtherCAT_master(ec_device_master_index)) == NULL)
-          {
-            printk(KERN_ERR "Could not get EtherCAT master %i.\n",
-                   ec_device_master_index);
-            goto out_module;
-          }
-
           printk(KERN_INFO "Registering EtherCAT device...\n");
-          if (EtherCAT_register_device(rtl_ecat_master, &rtl_ecat_dev) < 0)
+          if (EtherCAT_register_device(ec_device_master_index, &rtl_ecat_dev) < 0)
           {
             printk(KERN_ERR "Could not register device.\n");
             goto out_module;
           }
 
+          rtl_ecat_dev_registered = 1;
+
           printk(KERN_INFO "EtherCAT device registered and opened.\n");
         }
         else
@@ -3015,10 +3011,10 @@
 
         printk(KERN_INFO "Cleaning up RTL8139-EtherCAT module...\n");
 
-        if (rtl_ecat_master && rtl_ecat_dev.dev)
+        if (rtl_ecat_dev_registered && rtl_ecat_dev.dev)
         {
           printk(KERN_INFO "Unregistering RTL8139-EtherCAT device...\n");
-          EtherCAT_unregister_device(rtl_ecat_master, &rtl_ecat_dev);
+          EtherCAT_unregister_device(ec_device_master_index, &rtl_ecat_dev);
         }
 
 	pci_unregister_driver(&rtl8139_pci_driver);