/* Read/set MAC address routines */
  static void r6040_mac_address(struct net_device *dev)
-@@ -874,10 +782,6 @@ static int r6040_open(struct net_device 
+@@ -874,10 +782,6 @@ static int r6040_open(struct net_device
        napi_enable(&lp->napi);
        netif_start_queue(dev);
  
        return 0;
  }
  
-@@ -1020,40 +924,22 @@ static void netdev_get_drvinfo(struct ne
+@@ -1018,40 +922,22 @@ static void netdev_get_drvinfo(struct ne
  static int netdev_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
  {
        struct r6040_private *rp = netdev_priv(dev);
  };
  
  static const struct net_device_ops r6040_netdev_ops = {
-@@ -1072,6 +958,86 @@ static const struct net_device_ops r6040
+@@ -1070,6 +956,86 @@ static const struct net_device_ops r6040
  #endif
  };
  
  static int __devinit r6040_init_one(struct pci_dev *pdev,
                                         const struct pci_device_id *ent)
  {
-@@ -1082,6 +1048,7 @@ static int __devinit r6040_init_one(stru
+@@ -1080,6 +1046,7 @@ static int __devinit r6040_init_one(stru
        static int card_idx = -1;
        int bar = 0;
        u16 *adrp;
  
        printk("%s\n", version);
  
-@@ -1169,7 +1136,6 @@ static int __devinit r6040_init_one(stru
+@@ -1167,7 +1134,6 @@ static int __devinit r6040_init_one(stru
        /* Init RDC private data */
        lp->mcr0 = 0x1002;
        lp->phy_addr = phy_table[card_idx];
  
        /* The RDC-specific entries in the device structure. */
        dev->netdev_ops = &r6040_netdev_ops;
-@@ -1177,28 +1143,61 @@ static int __devinit r6040_init_one(stru
+@@ -1175,28 +1141,61 @@ static int __devinit r6040_init_one(stru
        dev->watchdog_timeo = TX_TIMEOUT;
  
        netif_napi_add(dev, &lp->napi, r6040_poll, 64);
  err_out_unmap:
        pci_iounmap(pdev, ioaddr);
  err_out_free_res:
-@@ -1212,8 +1211,12 @@ err_out:
+@@ -1210,8 +1209,12 @@ err_out:
  static void __devexit r6040_remove_one(struct pci_dev *pdev)
  {
        struct net_device *dev = pci_get_drvdata(pdev);
 
+++ /dev/null
----
---- a/drivers/net/r6040.c
-+++ b/drivers/net/r6040.c
-@@ -136,7 +136,7 @@
- #define RX_DESC_SIZE  (RX_DCNT * sizeof(struct r6040_descriptor))
- #define TX_DESC_SIZE  (TX_DCNT * sizeof(struct r6040_descriptor))
- #define MBCR_DEFAULT  0x012A  /* MAC Bus Control Register */
--#define MCAST_MAX     4       /* Max number multicast addresses to filter */
-+#define MCAST_MAX     3       /* Max number multicast addresses to filter */
- 
- /* Descriptor status */
- #define DSC_OWNER_MAC 0x8000  /* MAC is the owner of this descriptor */
-@@ -887,9 +887,6 @@ static void r6040_multicast_list(struct 
-                       crc >>= 26;
-                       hash_table[crc >> 4] |= 1 << (15 - (crc & 0xf));
-               }
--              /* Write the index of the hash table */
--              for (i = 0; i < 4; i++)
--                      iowrite16(hash_table[i] << 14, ioaddr + MCR1);
-               /* Fill the MAC hash tables with their values */
-               iowrite16(hash_table[0], ioaddr + MAR0);
-               iowrite16(hash_table[1], ioaddr + MAR1);
-@@ -905,9 +902,9 @@ static void r6040_multicast_list(struct 
-               dmi = dmi->next;
-       }
-       for (i = dev->mc_count; i < MCAST_MAX; i++) {
--              iowrite16(0xffff, ioaddr + MID_0L + 8*i);
--              iowrite16(0xffff, ioaddr + MID_0M + 8*i);
--              iowrite16(0xffff, ioaddr + MID_0H + 8*i);
-+              iowrite16(0xffff, ioaddr + MID_1L + 8 * i);
-+              iowrite16(0xffff, ioaddr + MID_1M + 8 * i);
-+              iowrite16(0xffff, ioaddr + MID_1H + 8 * i);
-       }
- }
-