Fix Linux version incompatibility with pci_register_driver()
The function pci_register_driver() returns different error codes on
Linux 2.4 and 2.6. This patch adds compat_pci_register_driver()
to deal with this incompatibility and updates all drivers using it.
Signed-off-by: Wolfang Grandegger <[EMAIL PROTECTED]>
Index: rtnet/drivers/rt_eepro100.c
===================================================================
--- rtnet.orig/drivers/rt_eepro100.c
+++ rtnet/drivers/rt_eepro100.c
@@ -1999,13 +1999,7 @@ static int __init eepro100_init_module(v
debug = speedo_debug; /* touch debug variable */
#endif /* RTNET_DRV_EEPRO100_DBG */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
- if (pci_register_driver(&eepro100_driver) <= 0)
- return -EINVAL;
- return 0;
-#else
- return pci_register_driver(&eepro100_driver);
-#endif
+ return compat_pci_register_driver(&eepro100_driver);
}
static void __exit eepro100_cleanup_module(void)
Index: rtnet/stack/include/rtnet_port.h
===================================================================
--- rtnet.orig/stack/include/rtnet_port.h
+++ rtnet/stack/include/rtnet_port.h
@@ -32,6 +32,16 @@
#include <ethernet/eth.h>
+#ifndef compat_pci_register_driver
+# if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+# define compat_pci_register_driver(drv) \
+ (pci_register_driver(drv) <= 0 ? -EINVAL : 0)
+# else
+# define compat_pci_register_driver(drv) \
+ pci_register_driver(drv)
+# endif
+#endif
+
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
# define pci_dma_sync_single_for_device pci_dma_sync_single
# define pci_dma_sync_single_for_cpu pci_dma_sync_single
Index: rtnet/drivers/rt_8139too.c
===================================================================
--- rtnet.orig/drivers/rt_8139too.c
+++ rtnet/drivers/rt_8139too.c
@@ -1861,7 +1861,7 @@ static int __init rtl8139_init_module (v
printk (KERN_INFO RTL8139_DRIVER_NAME "\n");
#endif
- return pci_register_driver (&rtl8139_pci_driver);
+ return compat_pci_register_driver (&rtl8139_pci_driver);
}
Index: rtnet/drivers/rt_natsemi.c
===================================================================
--- rtnet.orig/drivers/rt_natsemi.c
+++ rtnet/drivers/rt_natsemi.c
@@ -2865,7 +2865,7 @@ static int __init natsemi_init_mod (void
rtdm_printk(version);
#endif
- return pci_register_driver (&natsemi_driver);
+ return compat_pci_register_driver (&natsemi_driver);
}
static void __exit natsemi_exit_mod (void)
Index: rtnet/drivers/rt_pcnet32.c
===================================================================
--- rtnet.orig/drivers/rt_pcnet32.c
+++ rtnet/drivers/rt_pcnet32.c
@@ -1810,7 +1810,7 @@ static int __init pcnet32_init_module(vo
tx_start = tx_start_pt;
/* find the PCI devices */
- if (!pci_register_driver(&pcnet32_driver))
+ if (!compat_pci_register_driver(&pcnet32_driver))
pcnet32_have_pci = 1;
/* should we find any remaining VLbus devices ? */
Index: rtnet/drivers/rt_via-rhine.c
===================================================================
--- rtnet.orig/drivers/rt_via-rhine.c
+++ rtnet/drivers/rt_via-rhine.c
@@ -2037,7 +2037,7 @@ static int __init via_rhine_init (void)
#ifdef MODULE
printk(version);
#endif
- return pci_register_driver (&via_rhine_driver);
+ return compat_pci_register_driver (&via_rhine_driver);
}
Index: rtnet/drivers/e1000/e1000_main.c
===================================================================
--- rtnet.orig/drivers/e1000/e1000_main.c
+++ rtnet/drivers/e1000/e1000_main.c
@@ -277,7 +277,7 @@ e1000_init_module(void)
printk(KERN_INFO "%s\n", e1000_copyright);
- ret = pci_register_driver(&e1000_driver);
+ ret = compat_pci_register_driver(&e1000_driver);
return ret;
}
Index: rtnet/drivers/experimental/rt2500/rt_rt2500pci.c
===================================================================
--- rtnet.orig/drivers/experimental/rt2500/rt_rt2500pci.c
+++ rtnet/drivers/experimental/rt2500/rt_rt2500pci.c
@@ -1239,7 +1239,7 @@ struct pci_driver rt2x00_pci_driver =
static int __init rt2x00_pci_init(void) {
rtdm_printk(KERN_INFO "Loading module: %s\n", version);
- return pci_register_driver(&rt2x00_pci_driver);
+ return compat_pci_register_driver(&rt2x00_pci_driver);
}
static void __exit rt2x00_pci_exit(void) {
Index: rtnet/drivers/experimental/rt_3c59x.c
===================================================================
--- rtnet.orig/drivers/experimental/rt_3c59x.c
+++ rtnet/drivers/experimental/rt_3c59x.c
@@ -3358,7 +3358,7 @@ static int __init vortex_init (void)
{
int pci_rc;
- pci_rc = pci_register_driver(&vortex_driver);
+ pci_rc = compat_pci_register_driver(&vortex_driver);
if (pci_rc == 0)
vortex_have_pci = 1;
Index: rtnet/drivers/experimental/rt_r8169.c
===================================================================
--- rtnet.orig/drivers/experimental/rt_r8169.c
+++ rtnet/drivers/experimental/rt_r8169.c
@@ -2111,7 +2111,7 @@ static int __init rtl8169_init_module (v
r8169_debug = debug;
}
if (r8169_debug & DEBUG_RUN) printk("Initializing " MODULENAME "
driver");
- return pci_register_driver (&rtl8169_pci_driver);
+ return compat_pci_register_driver (&rtl8169_pci_driver);
}
Index: rtnet/drivers/tulip/tulip_core.c
===================================================================
--- rtnet.orig/drivers/tulip/tulip_core.c
+++ rtnet/drivers/tulip/tulip_core.c
@@ -1591,7 +1591,7 @@ static int __init tulip_init (void)
tulip_max_interrupt_work = max_interrupt_work;
/* probe for and init boards */
- return pci_register_driver (&tulip_driver);
+ return compat_pci_register_driver (&tulip_driver);
}
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
RTnet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rtnet-users