diff options
Diffstat (limited to 'drivers/net/sungem.c')
| -rw-r--r-- | drivers/net/sungem.c | 14 | 
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c index b571a1babab9..4344017bfaef 100644 --- a/drivers/net/sungem.c +++ b/drivers/net/sungem.c @@ -107,7 +107,7 @@ MODULE_LICENSE("GPL");  #define GEM_MODULE_NAME	"gem"  #define PFX GEM_MODULE_NAME ": " -static struct pci_device_id gem_pci_tbl[] = { +static DEFINE_PCI_DEVICE_TABLE(gem_pci_tbl) = {  	{ PCI_VENDOR_ID_SUN, PCI_DEVICE_ID_SUN_GEM,  	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, @@ -1837,7 +1837,7 @@ static u32 gem_setup_multicast(struct gem *gp)  	int i;  	if ((gp->dev->flags & IFF_ALLMULTI) || -	    (gp->dev->mc_count > 256)) { +	    (netdev_mc_count(gp->dev) > 256)) {  	    	for (i=0; i<16; i++)  			writel(0xffff, gp->regs + MAC_HASH0 + (i << 2));  		rxcfg |= MAC_RXCFG_HFE; @@ -1846,17 +1846,13 @@ static u32 gem_setup_multicast(struct gem *gp)  	} else {  		u16 hash_table[16];  		u32 crc; -		struct dev_mc_list *dmi = gp->dev->mc_list; +		struct dev_mc_list *dmi;  		int i; -		for (i = 0; i < 16; i++) -			hash_table[i] = 0; - -		for (i = 0; i < gp->dev->mc_count; i++) { +		memset(hash_table, 0, sizeof(hash_table)); +		netdev_for_each_mc_addr(dmi, gp->dev) {  			char *addrs = dmi->dmi_addr; -			dmi = dmi->next; -  			if (!(*addrs & 1))  				continue;  |