net: use netdev_mc_count and netdev_mc_empty when appropriate
This patch replaces dev->mc_count in all drivers (hopefully I didn't miss anything). Used spatch and did small tweaks and conding style changes when it was suitable. Jirka Signed-off-by: Jiri Pirko <jpirko@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
8e5574211d
commit
4cd24eaf0c
@@ -677,7 +677,7 @@ static void build_setup_frame_hash(u16 *setup_frm, struct net_device *dev)
|
||||
memset(hash_table, 0, sizeof(hash_table));
|
||||
set_bit_le(255, hash_table); /* Broadcast entry */
|
||||
/* This should work on big-endian machines as well. */
|
||||
for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
|
||||
for (i = 0, mclist = dev->mc_list; mclist && i < netdev_mc_count(dev);
|
||||
i++, mclist = mclist->next) {
|
||||
int index = ether_crc_le(ETH_ALEN, mclist->dmi_addr) & 0x1ff;
|
||||
|
||||
@@ -706,7 +706,7 @@ static void build_setup_frame_perfect(u16 *setup_frm, struct net_device *dev)
|
||||
|
||||
/* We have <= 14 addresses so we can use the wonderful
|
||||
16 address perfect filtering of the Tulip. */
|
||||
for (i = 0, mclist = dev->mc_list; i < dev->mc_count;
|
||||
for (i = 0, mclist = dev->mc_list; i < netdev_mc_count(dev);
|
||||
i++, mclist = mclist->next) {
|
||||
eaddrs = (u16 *)mclist->dmi_addr;
|
||||
*setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++;
|
||||
@@ -741,7 +741,7 @@ static void __de_set_rx_mode (struct net_device *dev)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if ((dev->mc_count > 1000) || (dev->flags & IFF_ALLMULTI)) {
|
||||
if ((netdev_mc_count(dev) > 1000) || (dev->flags & IFF_ALLMULTI)) {
|
||||
/* Too many to filter well -- accept all multicasts. */
|
||||
macmode |= AcceptAllMulticast;
|
||||
goto out;
|
||||
@@ -749,7 +749,7 @@ static void __de_set_rx_mode (struct net_device *dev)
|
||||
|
||||
/* Note that only the low-address shortword of setup_frame is valid!
|
||||
The values are doubled for big-endian architectures. */
|
||||
if (dev->mc_count > 14) /* Must use a multicast hash table. */
|
||||
if (netdev_mc_count(dev) > 14) /* Must use a multicast hash table. */
|
||||
build_setup_frame_hash (de->setup_frame, dev);
|
||||
else
|
||||
build_setup_frame_perfect (de->setup_frame, dev);
|
||||
|
@@ -1963,10 +1963,10 @@ SetMulticastFilter(struct net_device *dev)
|
||||
omr &= ~(OMR_PR | OMR_PM);
|
||||
pa = build_setup_frame(dev, ALL); /* Build the basic frame */
|
||||
|
||||
if ((dev->flags & IFF_ALLMULTI) || (dev->mc_count > 14)) {
|
||||
if ((dev->flags & IFF_ALLMULTI) || (netdev_mc_count(dev) > 14)) {
|
||||
omr |= OMR_PM; /* Pass all multicasts */
|
||||
} else if (lp->setup_f == HASH_PERF) { /* Hash Filtering */
|
||||
for (i=0;i<dev->mc_count;i++) { /* for each address in the list */
|
||||
for (i = 0; i < netdev_mc_count(dev) ;i++) {
|
||||
addrs=dmi->dmi_addr;
|
||||
dmi=dmi->next;
|
||||
if ((*addrs & 0x01) == 1) { /* multicast address? */
|
||||
@@ -1984,7 +1984,7 @@ SetMulticastFilter(struct net_device *dev)
|
||||
}
|
||||
}
|
||||
} else { /* Perfect filtering */
|
||||
for (j=0; j<dev->mc_count; j++) {
|
||||
for (j=0; j<netdev_mc_count(dev); j++) {
|
||||
addrs=dmi->dmi_addr;
|
||||
dmi=dmi->next;
|
||||
for (i=0; i<ETH_ALEN; i++) {
|
||||
|
@@ -658,9 +658,9 @@ static void dmfe_init_dm910x(struct DEVICE *dev)
|
||||
|
||||
/* Send setup frame */
|
||||
if (db->chip_id == PCI_DM9132_ID)
|
||||
dm9132_id_table(dev, dev->mc_count); /* DM9132 */
|
||||
dm9132_id_table(dev, netdev_mc_count(dev)); /* DM9132 */
|
||||
else
|
||||
send_filter_frame(dev, dev->mc_count); /* DM9102/DM9102A */
|
||||
send_filter_frame(dev, netdev_mc_count(dev)); /* DM9102/DM9102A */
|
||||
|
||||
/* Init CR7, interrupt active bit */
|
||||
db->cr7_data = CR7_DEFAULT;
|
||||
@@ -1052,6 +1052,7 @@ static void dmfe_set_filter_mode(struct DEVICE * dev)
|
||||
{
|
||||
struct dmfe_board_info *db = netdev_priv(dev);
|
||||
unsigned long flags;
|
||||
int mc_count = netdev_mc_count(dev);
|
||||
|
||||
DMFE_DBUG(0, "dmfe_set_filter_mode()", 0);
|
||||
spin_lock_irqsave(&db->lock, flags);
|
||||
@@ -1064,19 +1065,19 @@ static void dmfe_set_filter_mode(struct DEVICE * dev)
|
||||
return;
|
||||
}
|
||||
|
||||
if (dev->flags & IFF_ALLMULTI || dev->mc_count > DMFE_MAX_MULTICAST) {
|
||||
DMFE_DBUG(0, "Pass all multicast address", dev->mc_count);
|
||||
if (dev->flags & IFF_ALLMULTI || mc_count > DMFE_MAX_MULTICAST) {
|
||||
DMFE_DBUG(0, "Pass all multicast address", mc_count);
|
||||
db->cr6_data &= ~(CR6_PM | CR6_PBF);
|
||||
db->cr6_data |= CR6_PAM;
|
||||
spin_unlock_irqrestore(&db->lock, flags);
|
||||
return;
|
||||
}
|
||||
|
||||
DMFE_DBUG(0, "Set multicast address", dev->mc_count);
|
||||
DMFE_DBUG(0, "Set multicast address", mc_count);
|
||||
if (db->chip_id == PCI_DM9132_ID)
|
||||
dm9132_id_table(dev, dev->mc_count); /* DM9132 */
|
||||
dm9132_id_table(dev, mc_count); /* DM9132 */
|
||||
else
|
||||
send_filter_frame(dev, dev->mc_count); /* DM9102/DM9102A */
|
||||
send_filter_frame(dev, mc_count); /* DM9102/DM9102A */
|
||||
spin_unlock_irqrestore(&db->lock, flags);
|
||||
}
|
||||
|
||||
|
@@ -997,7 +997,7 @@ static void build_setup_frame_hash(u16 *setup_frm, struct net_device *dev)
|
||||
memset(hash_table, 0, sizeof(hash_table));
|
||||
set_bit_le(255, hash_table); /* Broadcast entry */
|
||||
/* This should work on big-endian machines as well. */
|
||||
for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
|
||||
for (i = 0, mclist = dev->mc_list; mclist && i < netdev_mc_count(dev);
|
||||
i++, mclist = mclist->next) {
|
||||
int index = ether_crc_le(ETH_ALEN, mclist->dmi_addr) & 0x1ff;
|
||||
|
||||
@@ -1026,7 +1026,7 @@ static void build_setup_frame_perfect(u16 *setup_frm, struct net_device *dev)
|
||||
|
||||
/* We have <= 14 addresses so we can use the wonderful
|
||||
16 address perfect filtering of the Tulip. */
|
||||
for (i = 0, mclist = dev->mc_list; i < dev->mc_count;
|
||||
for (i = 0, mclist = dev->mc_list; i < netdev_mc_count(dev);
|
||||
i++, mclist = mclist->next) {
|
||||
eaddrs = (u16 *)mclist->dmi_addr;
|
||||
*setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++;
|
||||
@@ -1057,7 +1057,8 @@ static void set_rx_mode(struct net_device *dev)
|
||||
if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */
|
||||
tp->csr6 |= AcceptAllMulticast | AcceptAllPhys;
|
||||
csr6 |= AcceptAllMulticast | AcceptAllPhys;
|
||||
} else if ((dev->mc_count > 1000) || (dev->flags & IFF_ALLMULTI)) {
|
||||
} else if ((netdev_mc_count(dev) > 1000) ||
|
||||
(dev->flags & IFF_ALLMULTI)) {
|
||||
/* Too many to filter well -- accept all multicasts. */
|
||||
tp->csr6 |= AcceptAllMulticast;
|
||||
csr6 |= AcceptAllMulticast;
|
||||
@@ -1066,14 +1067,16 @@ static void set_rx_mode(struct net_device *dev)
|
||||
/* Should verify correctness on big-endian/__powerpc__ */
|
||||
struct dev_mc_list *mclist;
|
||||
int i;
|
||||
if (dev->mc_count > 64) { /* Arbitrary non-effective limit. */
|
||||
if (netdev_mc_count(dev) > 64) {
|
||||
/* Arbitrary non-effective limit. */
|
||||
tp->csr6 |= AcceptAllMulticast;
|
||||
csr6 |= AcceptAllMulticast;
|
||||
} else {
|
||||
u32 mc_filter[2] = {0, 0}; /* Multicast hash filter */
|
||||
int filterbit;
|
||||
for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
|
||||
i++, mclist = mclist->next) {
|
||||
for (i = 0, mclist = dev->mc_list;
|
||||
mclist && i < netdev_mc_count(dev);
|
||||
i++, mclist = mclist->next) {
|
||||
if (tp->flags & COMET_MAC_ADDR)
|
||||
filterbit = ether_crc_le(ETH_ALEN, mclist->dmi_addr);
|
||||
else
|
||||
@@ -1107,7 +1110,8 @@ static void set_rx_mode(struct net_device *dev)
|
||||
|
||||
/* Note that only the low-address shortword of setup_frame is valid!
|
||||
The values are doubled for big-endian architectures. */
|
||||
if (dev->mc_count > 14) { /* Must use a multicast hash table. */
|
||||
if (netdev_mc_count(dev) > 14) {
|
||||
/* Must use a multicast hash table. */
|
||||
build_setup_frame_hash(tp->setup_frame, dev);
|
||||
tx_flags = 0x08400000 | 192;
|
||||
} else {
|
||||
|
@@ -557,7 +557,7 @@ static void uli526x_init(struct net_device *dev)
|
||||
update_cr6(db->cr6_data, ioaddr);
|
||||
|
||||
/* Send setup frame */
|
||||
send_filter_frame(dev, dev->mc_count); /* M5261/M5263 */
|
||||
send_filter_frame(dev, netdev_mc_count(dev)); /* M5261/M5263 */
|
||||
|
||||
/* Init CR7, interrupt active bit */
|
||||
db->cr7_data = CR7_DEFAULT;
|
||||
@@ -906,16 +906,18 @@ static void uli526x_set_filter_mode(struct net_device * dev)
|
||||
return;
|
||||
}
|
||||
|
||||
if (dev->flags & IFF_ALLMULTI || dev->mc_count > ULI5261_MAX_MULTICAST) {
|
||||
ULI526X_DBUG(0, "Pass all multicast address", dev->mc_count);
|
||||
if (dev->flags & IFF_ALLMULTI ||
|
||||
netdev_mc_count(dev) > ULI5261_MAX_MULTICAST) {
|
||||
ULI526X_DBUG(0, "Pass all multicast address",
|
||||
netdev_mc_count(dev));
|
||||
db->cr6_data &= ~(CR6_PM | CR6_PBF);
|
||||
db->cr6_data |= CR6_PAM;
|
||||
spin_unlock_irqrestore(&db->lock, flags);
|
||||
return;
|
||||
}
|
||||
|
||||
ULI526X_DBUG(0, "Set multicast address", dev->mc_count);
|
||||
send_filter_frame(dev, dev->mc_count); /* M5261/M5263 */
|
||||
ULI526X_DBUG(0, "Set multicast address", netdev_mc_count(dev));
|
||||
send_filter_frame(dev, netdev_mc_count(dev)); /* M5261/M5263 */
|
||||
spin_unlock_irqrestore(&db->lock, flags);
|
||||
}
|
||||
|
||||
|
@@ -1361,7 +1361,7 @@ static u32 __set_rx_mode(struct net_device *dev)
|
||||
memset(mc_filter, 0xff, sizeof(mc_filter));
|
||||
rx_mode = RxAcceptBroadcast | AcceptMulticast | RxAcceptAllPhys
|
||||
| AcceptMyPhys;
|
||||
} else if ((dev->mc_count > multicast_filter_limit) ||
|
||||
} else if ((netdev_mc_count(dev) > multicast_filter_limit) ||
|
||||
(dev->flags & IFF_ALLMULTI)) {
|
||||
/* Too many to match, or accept all multicasts. */
|
||||
memset(mc_filter, 0xff, sizeof(mc_filter));
|
||||
@@ -1370,8 +1370,9 @@ static u32 __set_rx_mode(struct net_device *dev)
|
||||
struct dev_mc_list *mclist;
|
||||
int i;
|
||||
memset(mc_filter, 0, sizeof(mc_filter));
|
||||
for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
|
||||
i++, mclist = mclist->next) {
|
||||
for (i = 0, mclist = dev->mc_list;
|
||||
mclist && i < netdev_mc_count(dev);
|
||||
i++, mclist = mclist->next) {
|
||||
int filterbit = (ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26) ^ 0x3F;
|
||||
filterbit &= 0x3f;
|
||||
mc_filter[filterbit >> 5] |= 1 << (filterbit & 31);
|
||||
|
Reference in New Issue
Block a user