aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/forcedeth.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/forcedeth.c')
-rw-r--r--drivers/net/forcedeth.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index ca05e5662029..6a2b64f0a7db 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -3103,12 +3103,14 @@ static void nv_set_multicast(struct net_device *dev)
3103 if (dev->flags & IFF_ALLMULTI) { 3103 if (dev->flags & IFF_ALLMULTI) {
3104 alwaysOn[0] = alwaysOn[1] = alwaysOff[0] = alwaysOff[1] = 0; 3104 alwaysOn[0] = alwaysOn[1] = alwaysOff[0] = alwaysOff[1] = 0;
3105 } else { 3105 } else {
3106 struct dev_mc_list *walk; 3106 struct netdev_hw_addr *ha;
3107 3107
3108 netdev_for_each_mc_addr(walk, dev) { 3108 netdev_for_each_mc_addr(ha, dev) {
3109 unsigned char *addr = ha->addr;
3109 u32 a, b; 3110 u32 a, b;
3110 a = le32_to_cpu(*(__le32 *) walk->dmi_addr); 3111
3111 b = le16_to_cpu(*(__le16 *) (&walk->dmi_addr[4])); 3112 a = le32_to_cpu(*(__le32 *) addr);
3113 b = le16_to_cpu(*(__le16 *) (&addr[4]));
3112 alwaysOn[0] &= a; 3114 alwaysOn[0] &= a;
3113 alwaysOff[0] &= ~a; 3115 alwaysOff[0] &= ~a;
3114 alwaysOn[1] &= b; 3116 alwaysOn[1] &= b;