diff options
Diffstat (limited to 'drivers/net/sunhme.c')
| -rw-r--r-- | drivers/net/sunhme.c | 26 | 
1 files changed, 9 insertions, 17 deletions
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c index 6762f1c6ec8a..b17dbb11bd67 100644 --- a/drivers/net/sunhme.c +++ b/drivers/net/sunhme.c @@ -1516,24 +1516,20 @@ static int happy_meal_init(struct happy_meal *hp)  	HMD(("htable, "));  	if ((hp->dev->flags & IFF_ALLMULTI) || -	    (hp->dev->mc_count > 64)) { +	    (netdev_mc_count(hp->dev) > 64)) {  		hme_write32(hp, bregs + BMAC_HTABLE0, 0xffff);  		hme_write32(hp, bregs + BMAC_HTABLE1, 0xffff);  		hme_write32(hp, bregs + BMAC_HTABLE2, 0xffff);  		hme_write32(hp, bregs + BMAC_HTABLE3, 0xffff);  	} else if ((hp->dev->flags & IFF_PROMISC) == 0) {  		u16 hash_table[4]; -		struct dev_mc_list *dmi = hp->dev->mc_list; +		struct dev_mc_list *dmi;  		char *addrs; -		int i;  		u32 crc; -		for (i = 0; i < 4; i++) -			hash_table[i] = 0; - -		for (i = 0; i < hp->dev->mc_count; i++) { +		memset(hash_table, 0, sizeof(hash_table)); +		netdev_for_each_mc_addr(dmi, hp->dev) {  			addrs = dmi->dmi_addr; -			dmi = dmi->next;  			if (!(*addrs & 1))  				continue; @@ -2366,14 +2362,13 @@ static void happy_meal_set_multicast(struct net_device *dev)  {  	struct happy_meal *hp = netdev_priv(dev);  	void __iomem *bregs = hp->bigmacregs; -	struct dev_mc_list *dmi = dev->mc_list; +	struct dev_mc_list *dmi;  	char *addrs; -	int i;  	u32 crc;  	spin_lock_irq(&hp->happy_lock); -	if ((dev->flags & IFF_ALLMULTI) || (dev->mc_count > 64)) { +	if ((dev->flags & IFF_ALLMULTI) || (netdev_mc_count(dev) > 64)) {  		hme_write32(hp, bregs + BMAC_HTABLE0, 0xffff);  		hme_write32(hp, bregs + BMAC_HTABLE1, 0xffff);  		hme_write32(hp, bregs + BMAC_HTABLE2, 0xffff); @@ -2384,12 +2379,9 @@ static void happy_meal_set_multicast(struct net_device *dev)  	} else {  		u16 hash_table[4]; -		for (i = 0; i < 4; i++) -			hash_table[i] = 0; - -		for (i = 0; i < dev->mc_count; i++) { +		memset(hash_table, 0, sizeof(hash_table)); +		netdev_for_each_mc_addr(dmi, dev) {  			addrs = dmi->dmi_addr; -			dmi = dmi->next;  			if (!(*addrs & 1))  				continue; @@ -3211,7 +3203,7 @@ static void __devexit happy_meal_pci_remove(struct pci_dev *pdev)  	dev_set_drvdata(&pdev->dev, NULL);  } -static struct pci_device_id happymeal_pci_ids[] = { +static DEFINE_PCI_DEVICE_TABLE(happymeal_pci_ids) = {  	{ PCI_DEVICE(PCI_VENDOR_ID_SUN, PCI_DEVICE_ID_SUN_HAPPYMEAL) },  	{ }			/* Terminating entry */  };  |