aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/dl2k.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/dl2k.c')
-rw-r--r--drivers/net/dl2k.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/net/dl2k.c b/drivers/net/dl2k.c
index 2a8b6a7c0b8..b05bad82982 100644
--- a/drivers/net/dl2k.c
+++ b/drivers/net/dl2k.c
@@ -1128,19 +1128,16 @@ set_multicast (struct net_device *dev)
1128 /* Receive all frames promiscuously. */ 1128 /* Receive all frames promiscuously. */
1129 rx_mode = ReceiveAllFrames; 1129 rx_mode = ReceiveAllFrames;
1130 } else if ((dev->flags & IFF_ALLMULTI) || 1130 } else if ((dev->flags & IFF_ALLMULTI) ||
1131 (dev->mc_count > multicast_filter_limit)) { 1131 (netdev_mc_count(dev) > multicast_filter_limit)) {
1132 /* Receive broadcast and multicast frames */ 1132 /* Receive broadcast and multicast frames */
1133 rx_mode = ReceiveBroadcast | ReceiveMulticast | ReceiveUnicast; 1133 rx_mode = ReceiveBroadcast | ReceiveMulticast | ReceiveUnicast;
1134 } else if (dev->mc_count > 0) { 1134 } else if (!netdev_mc_empty(dev)) {
1135 int i;
1136 struct dev_mc_list *mclist; 1135 struct dev_mc_list *mclist;
1137 /* Receive broadcast frames and multicast frames filtering 1136 /* Receive broadcast frames and multicast frames filtering
1138 by Hashtable */ 1137 by Hashtable */
1139 rx_mode = 1138 rx_mode =
1140 ReceiveBroadcast | ReceiveMulticastHash | ReceiveUnicast; 1139 ReceiveBroadcast | ReceiveMulticastHash | ReceiveUnicast;
1141 for (i=0, mclist = dev->mc_list; mclist && i < dev->mc_count; 1140 netdev_for_each_mc_addr(mclist, dev) {
1142 i++, mclist=mclist->next)
1143 {
1144 int bit, index = 0; 1141 int bit, index = 0;
1145 int crc = ether_crc_le (ETH_ALEN, mclist->dmi_addr); 1142 int crc = ether_crc_le (ETH_ALEN, mclist->dmi_addr);
1146 /* The inverted high significant 6 bits of CRC are 1143 /* The inverted high significant 6 bits of CRC are