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 RTnet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rtnet-users