.get_regs               = de_get_regs,
 };
 
-static void __devinit de21040_get_mac_address (struct de_private *de)
+static void de21040_get_mac_address(struct de_private *de)
 {
        unsigned i;
 
        }
 }
 
-static void __devinit de21040_get_media_info(struct de_private *de)
+static void de21040_get_media_info(struct de_private *de)
 {
        unsigned int i;
 
 }
 
 /* Note: this routine returns extra data bits for size detection. */
-static unsigned __devinit tulip_read_eeprom(void __iomem *regs, int location, int addr_len)
+static unsigned tulip_read_eeprom(void __iomem *regs, int location,
+                                 int addr_len)
 {
        int i;
        unsigned retval = 0;
        return retval;
 }
 
-static void __devinit de21041_get_srom_info (struct de_private *de)
+static void de21041_get_srom_info(struct de_private *de)
 {
        unsigned i, sa_offset = 0, ofs;
        u8 ee_data[DE_EEPROM_SIZE + 6] = {};
        .ndo_validate_addr      = eth_validate_addr,
 };
 
-static int __devinit de_init_one (struct pci_dev *pdev,
-                                 const struct pci_device_id *ent)
+static int de_init_one(struct pci_dev *pdev,
+                      const struct pci_device_id *ent)
 {
        struct net_device *dev;
        struct de_private *de;
        return rc;
 }
 
-static void __devexit de_remove_one (struct pci_dev *pdev)
+static void de_remove_one(struct pci_dev *pdev)
 {
        struct net_device *dev = pci_get_drvdata(pdev);
        struct de_private *de = netdev_priv(dev);
        .name           = DRV_NAME,
        .id_table       = de_pci_tbl,
        .probe          = de_init_one,
-       .remove         = __devexit_p(de_remove_one),
+       .remove         = de_remove_one,
 #ifdef CONFIG_PM
        .suspend        = de_suspend,
        .resume         = de_resume,
 
 
 #include "de4x5.h"
 
-static const char version[] __devinitconst =
+static const char version[] =
        KERN_INFO "de4x5.c:V0.546 2001/02/22 davies@maniac.ultranet.com\n";
 
 #define c_char const char
 };
 
 
-static int __devinit
+static int
 de4x5_hw_init(struct net_device *dev, u_long iobase, struct device *gendev)
 {
     char name[DE4X5_NAME_LENGTH + 1];
        return status;
 }
 
-static int __devexit de4x5_eisa_remove (struct device *device)
+static int de4x5_eisa_remove(struct device *device)
 {
        struct net_device *dev;
        u_long iobase;
         .driver   = {
                 .name    = "de4x5",
                 .probe   = de4x5_eisa_probe,
-                .remove  = __devexit_p (de4x5_eisa_remove),
+               .remove  = de4x5_eisa_remove,
         }
 };
 MODULE_DEVICE_TABLE(eisa, de4x5_eisa_ids);
 ** DECchips, we can find the base SROM irrespective of the BIOS scan direction.
 ** For single port cards this is a time waster...
 */
-static void __devinit
+static void
 srom_search(struct net_device *dev, struct pci_dev *pdev)
 {
     u_char pb;
 ** kernels use the V0.535[n] drivers.
 */
 
-static int __devinit de4x5_pci_probe (struct pci_dev *pdev,
-                                  const struct pci_device_id *ent)
+static int de4x5_pci_probe(struct pci_dev *pdev,
+                          const struct pci_device_id *ent)
 {
        u_char pb, pbus = 0, dev_num, dnum = 0, timer;
        u_short vendor, status;
        return error;
 }
 
-static void __devexit de4x5_pci_remove (struct pci_dev *pdev)
+static void de4x5_pci_remove(struct pci_dev *pdev)
 {
        struct net_device *dev;
        u_long iobase;
         .name           = "de4x5",
         .id_table       = de4x5_pci_tbl,
         .probe          = de4x5_pci_probe,
-       .remove         = __devexit_p (de4x5_pci_remove),
+       .remove         = de4x5_pci_remove,
 };
 
 #endif
 
 };
 
 /* Global variable declaration ----------------------------- */
-static int __devinitdata printed_version;
-static const char version[] __devinitconst =
+static int printed_version;
+static const char version[] =
        "Davicom DM9xxx net driver, version " DRV_VERSION " (" DRV_RELDATE ")";
 
 static int dmfe_debug;
  *     Search DM910X board ,allocate space and register it
  */
 
-static int __devinit dmfe_init_one (struct pci_dev *pdev,
-                                   const struct pci_device_id *ent)
+static int dmfe_init_one(struct pci_dev *pdev,
+                        const struct pci_device_id *ent)
 {
        struct dmfe_board_info *db;     /* board information structure */
        struct net_device *dev;
 }
 
 
-static void __devexit dmfe_remove_one (struct pci_dev *pdev)
+static void dmfe_remove_one(struct pci_dev *pdev)
 {
        struct net_device *dev = pci_get_drvdata(pdev);
        struct dmfe_board_info *db = netdev_priv(dev);
        .name           = "dmfe",
        .id_table       = dmfe_pci_tbl,
        .probe          = dmfe_init_one,
-       .remove         = __devexit_p(dmfe_remove_one),
+       .remove         = dmfe_remove_one,
        .suspend        = dmfe_suspend,
        .resume         = dmfe_resume
 };
 
    */
 
 /* Known cards that have old-style EEPROMs. */
-static struct eeprom_fixup eeprom_fixups[] __devinitdata = {
+static struct eeprom_fixup eeprom_fixups[] = {
   {"Asante", 0, 0, 0x94, {0x1e00, 0x0000, 0x0800, 0x0100, 0x018c,
                          0x0000, 0x0000, 0xe078, 0x0001, 0x0050, 0x0018 }},
   {"SMC9332DST", 0, 0, 0xC0, { 0x1e00, 0x0000, 0x0800, 0x041f,
   {NULL}};
 
 
-static const char *const block_name[] __devinitconst = {
+static const char *const block_name[] = {
        "21140 non-MII",
        "21140 MII PHY",
        "21142 Serial PHY",
  * #ifdef __hppa__ should completely optimize this function away for
  * non-parisc hardware.
  */
-static void __devinit tulip_build_fake_mediatable(struct tulip_private *tp)
+static void tulip_build_fake_mediatable(struct tulip_private *tp)
 {
 #ifdef CONFIG_GSC
        if (tp->flags & NEEDS_FAKE_MEDIA_TABLE) {
 #endif
 }
 
-void __devinit tulip_parse_eeprom(struct net_device *dev)
+void tulip_parse_eeprom(struct net_device *dev)
 {
        /*
          dev is not registered at this point, so logging messages can't
 #define EE_READ_CMD            (6)
 
 /* Note: this routine returns extra data bits for size detection. */
-int __devinit tulip_read_eeprom(struct net_device *dev, int location, int addr_len)
+int tulip_read_eeprom(struct net_device *dev, int location, int addr_len)
 {
        int i;
        unsigned retval = 0;
 
        return 0;
 }
 
-void __devinit tulip_find_mii (struct net_device *dev, int board_idx)
+void tulip_find_mii(struct net_device *dev, int board_idx)
 {
        struct tulip_private *tp = netdev_priv(dev);
        int phyn, phy_idx = 0;
 
 #include <asm/prom.h>
 #endif
 
-static char version[] __devinitdata =
+static char version[] =
        "Linux Tulip driver version " DRV_VERSION " (" DRV_RELDATE ")\n";
 
 /* A few user-configurable values. */
 }
 
 #ifdef CONFIG_TULIP_MWI
-static void __devinit tulip_mwi_config (struct pci_dev *pdev,
-                                       struct net_device *dev)
+static void tulip_mwi_config(struct pci_dev *pdev,
+                            struct net_device *dev)
 {
        struct tulip_private *tp = netdev_priv(dev);
        u8 cache;
        { },
 };
 
-static int __devinit tulip_init_one (struct pci_dev *pdev,
-                                    const struct pci_device_id *ent)
+static int tulip_init_one(struct pci_dev *pdev,
+                         const struct pci_device_id *ent)
 {
        struct tulip_private *tp;
        /* See note below on the multiport cards. */
 #endif /* CONFIG_PM */
 
 
-static void __devexit tulip_remove_one (struct pci_dev *pdev)
+static void tulip_remove_one(struct pci_dev *pdev)
 {
        struct net_device *dev = pci_get_drvdata (pdev);
        struct tulip_private *tp;
        .name           = DRV_NAME,
        .id_table       = tulip_pci_tbl,
        .probe          = tulip_init_one,
-       .remove         = __devexit_p(tulip_remove_one),
+       .remove         = tulip_remove_one,
 #ifdef CONFIG_PM
        .suspend        = tulip_suspend,
        .resume         = tulip_resume,
 
 };
 
 /* Global variable declaration ----------------------------- */
-static int __devinitdata printed_version;
-static const char version[] __devinitconst =
+static int printed_version;
+static const char version[] =
        "ULi M5261/M5263 net driver, version " DRV_VERSION " (" DRV_RELDATE ")";
 
 static int uli526x_debug;
  *     Search ULI526X board, allocate space and register it
  */
 
-static int __devinit uli526x_init_one (struct pci_dev *pdev,
-                                   const struct pci_device_id *ent)
+static int uli526x_init_one(struct pci_dev *pdev,
+                           const struct pci_device_id *ent)
 {
        struct uli526x_board_info *db;  /* board information structure */
        struct net_device *dev;
 }
 
 
-static void __devexit uli526x_remove_one (struct pci_dev *pdev)
+static void uli526x_remove_one(struct pci_dev *pdev)
 {
        struct net_device *dev = pci_get_drvdata(pdev);
        struct uli526x_board_info *db = netdev_priv(dev);
        .name           = "uli526x",
        .id_table       = uli526x_pci_tbl,
        .probe          = uli526x_init_one,
-       .remove         = __devexit_p(uli526x_remove_one),
+       .remove         = uli526x_remove_one,
        .suspend        = uli526x_suspend,
        .resume         = uli526x_resume,
 };
 
         int drv_flags;         /* Driver use, intended as capability flags. */
 };
 
-static const struct pci_id_info pci_id_tbl[] __devinitconst = {
+static const struct pci_id_info pci_id_tbl[] = {
        {                               /* Sometime a Level-One switch card. */
          "Winbond W89c840",    CanHaveMII | HasBrokenTx | FDXOnNoMII},
        { "Winbond W89c840",    CanHaveMII | HasBrokenTx},
        .ndo_validate_addr      = eth_validate_addr,
 };
 
-static int __devinit w840_probe1 (struct pci_dev *pdev,
-                                 const struct pci_device_id *ent)
+static int w840_probe1(struct pci_dev *pdev,
+                      const struct pci_device_id *ent)
 {
        struct net_device *dev;
        struct netdev_private *np;
        return 0;
 }
 
-static void __devexit w840_remove1 (struct pci_dev *pdev)
+static void w840_remove1(struct pci_dev *pdev)
 {
        struct net_device *dev = pci_get_drvdata(pdev);
 
        .name           = DRV_NAME,
        .id_table       = w840_pci_tbl,
        .probe          = w840_probe1,
-       .remove         = __devexit_p(w840_remove1),
+       .remove         = w840_remove1,
 #ifdef CONFIG_PM
        .suspend        = w840_suspend,
        .resume         = w840_resume,
 
        .name           = "xircom_cb",
        .id_table       = xircom_pci_table,
        .probe          = xircom_probe,
-       .remove         = __devexit_p(xircom_remove),
+       .remove         = xircom_remove,
 };
 
 
          first two packets that get send, and pump hates that.
 
  */
-static int __devinit xircom_probe(struct pci_dev *pdev, const struct pci_device_id *id)
+static int xircom_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 {
        struct device *d = &pdev->dev;
        struct net_device *dev = NULL;
  Interrupts and such are already stopped in the "ifconfig ethX down"
  code.
  */
-static void __devexit xircom_remove(struct pci_dev *pdev)
+static void xircom_remove(struct pci_dev *pdev)
 {
        struct net_device *dev = pci_get_drvdata(pdev);
        struct xircom_private *card = netdev_priv(dev);