aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/defxx.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/defxx.c')
-rw-r--r--drivers/net/defxx.c24
1 files changed, 10 insertions, 14 deletions
diff --git a/drivers/net/defxx.c b/drivers/net/defxx.c
index 6a6ea038d7a3..ed53a8d45f4e 100644
--- a/drivers/net/defxx.c
+++ b/drivers/net/defxx.c
@@ -1052,12 +1052,9 @@ static int __devinit dfx_driver_init(struct net_device *dev,
1052 board_name = "DEFEA"; 1052 board_name = "DEFEA";
1053 if (dfx_bus_pci) 1053 if (dfx_bus_pci)
1054 board_name = "DEFPA"; 1054 board_name = "DEFPA";
1055 pr_info("%s: %s at %saddr = 0x%llx, IRQ = %d, " 1055 pr_info("%s: %s at %saddr = 0x%llx, IRQ = %d, Hardware addr = %pMF\n",
1056 "Hardware addr = %02X-%02X-%02X-%02X-%02X-%02X\n",
1057 print_name, board_name, dfx_use_mmio ? "" : "I/O ", 1056 print_name, board_name, dfx_use_mmio ? "" : "I/O ",
1058 (long long)bar_start, dev->irq, 1057 (long long)bar_start, dev->irq, dev->dev_addr);
1059 dev->dev_addr[0], dev->dev_addr[1], dev->dev_addr[2],
1060 dev->dev_addr[3], dev->dev_addr[4], dev->dev_addr[5]);
1061 1058
1062 /* 1059 /*
1063 * Get memory for descriptor block, consumer block, and other buffers 1060 * Get memory for descriptor block, consumer block, and other buffers
@@ -2230,7 +2227,7 @@ static void dfx_ctl_set_multicast_list(struct net_device *dev)
2230 * perfect filtering will be used. 2227 * perfect filtering will be used.
2231 */ 2228 */
2232 2229
2233 if (dev->mc_count > (PI_CMD_ADDR_FILTER_K_SIZE - bp->uc_count)) 2230 if (netdev_mc_count(dev) > (PI_CMD_ADDR_FILTER_K_SIZE - bp->uc_count))
2234 { 2231 {
2235 bp->group_prom = PI_FSTATE_K_PASS; /* Enable LLC group prom mode */ 2232 bp->group_prom = PI_FSTATE_K_PASS; /* Enable LLC group prom mode */
2236 bp->mc_count = 0; /* Don't add mc addrs to CAM */ 2233 bp->mc_count = 0; /* Don't add mc addrs to CAM */
@@ -2238,17 +2235,16 @@ static void dfx_ctl_set_multicast_list(struct net_device *dev)
2238 else 2235 else
2239 { 2236 {
2240 bp->group_prom = PI_FSTATE_K_BLOCK; /* Disable LLC group prom mode */ 2237 bp->group_prom = PI_FSTATE_K_BLOCK; /* Disable LLC group prom mode */
2241 bp->mc_count = dev->mc_count; /* Add mc addrs to CAM */ 2238 bp->mc_count = netdev_mc_count(dev); /* Add mc addrs to CAM */
2242 } 2239 }
2243 2240
2244 /* Copy addresses to multicast address table, then update adapter CAM */ 2241 /* Copy addresses to multicast address table, then update adapter CAM */
2245 2242
2246 dmi = dev->mc_list; /* point to first multicast addr */ 2243 i = 0;
2247 for (i=0; i < bp->mc_count; i++) 2244 netdev_for_each_mc_addr(dmi, dev)
2248 { 2245 memcpy(&bp->mc_table[i++ * FDDI_K_ALEN],
2249 memcpy(&bp->mc_table[i*FDDI_K_ALEN], dmi->dmi_addr, FDDI_K_ALEN); 2246 dmi->dmi_addr, FDDI_K_ALEN);
2250 dmi = dmi->next; /* point to next multicast addr */ 2247
2251 }
2252 if (dfx_ctl_update_cam(bp) != DFX_K_SUCCESS) 2248 if (dfx_ctl_update_cam(bp) != DFX_K_SUCCESS)
2253 { 2249 {
2254 DBG_printk("%s: Could not update multicast address table!\n", dev->name); 2250 DBG_printk("%s: Could not update multicast address table!\n", dev->name);
@@ -3631,7 +3627,7 @@ static int __devinit dfx_pci_register(struct pci_dev *,
3631 const struct pci_device_id *); 3627 const struct pci_device_id *);
3632static void __devexit dfx_pci_unregister(struct pci_dev *); 3628static void __devexit dfx_pci_unregister(struct pci_dev *);
3633 3629
3634static struct pci_device_id dfx_pci_table[] = { 3630static DEFINE_PCI_DEVICE_TABLE(dfx_pci_table) = {
3635 { PCI_DEVICE(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_FDDI) }, 3631 { PCI_DEVICE(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_FDDI) },
3636 { } 3632 { }
3637}; 3633};