aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/orinoco.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c
index 1ebcafe7ca5f..36c004e15602 100644
--- a/drivers/net/wireless/orinoco.c
+++ b/drivers/net/wireless/orinoco.c
@@ -1970,6 +1970,9 @@ __orinoco_set_multicast_list(struct net_device *dev)
1970 priv->promiscuous = promisc; 1970 priv->promiscuous = promisc;
1971 } 1971 }
1972 1972
1973 /* If we're not in promiscuous mode, then we need to set the
1974 * group address if either we want to multicast, or if we were
1975 * multicasting and want to stop */
1973 if (! promisc && (mc_count || priv->mc_count) ) { 1976 if (! promisc && (mc_count || priv->mc_count) ) {
1974 struct dev_mc_list *p = dev->mc_list; 1977 struct dev_mc_list *p = dev->mc_list;
1975 struct hermes_multicast mclist; 1978 struct hermes_multicast mclist;
@@ -1989,9 +1992,10 @@ __orinoco_set_multicast_list(struct net_device *dev)
1989 printk(KERN_WARNING "%s: Multicast list is " 1992 printk(KERN_WARNING "%s: Multicast list is "
1990 "longer than mc_count\n", dev->name); 1993 "longer than mc_count\n", dev->name);
1991 1994
1992 err = hermes_write_ltv(hw, USER_BAP, HERMES_RID_CNFGROUPADDRESSES, 1995 err = hermes_write_ltv(hw, USER_BAP,
1993 HERMES_BYTES_TO_RECLEN(priv->mc_count * ETH_ALEN), 1996 HERMES_RID_CNFGROUPADDRESSES,
1994 &mclist); 1997 HERMES_BYTES_TO_RECLEN(mc_count * ETH_ALEN),
1998 &mclist);
1995 if (err) 1999 if (err)
1996 printk(KERN_ERR "%s: Error %d setting multicast list.\n", 2000 printk(KERN_ERR "%s: Error %d setting multicast list.\n",
1997 dev->name, err); 2001 dev->name, err);