[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1244889678.13033.6.camel@johannes.local>
Date: Sat, 13 Jun 2009 12:41:18 +0200
From: Johannes Berg <johannes@...solutions.net>
To: Netdev <netdev@...r.kernel.org>
Subject: [RFC] net: refactor multicast/unicast address list
I'm trying to use address lists without netdevs, but as
a first step I thought it would be good to reduce the
amount duplicated code between unicast and multicast
lists.
After introducing a new 'struct address_list', we can
unify a lot between these. The next step will probably
be exporting the __dev_addr_sync and __dev_addr_unsync
functions so I can use them without a netdev, but this
cleanup can stand on its own.
Signed-off-by: Johannes Berg <johannes@...solutions.net>
---
Also reduces the number of exported symbols by 4.
arch/xtensa/platforms/iss/network.c | 2
drivers/infiniband/hw/nes/nes_nic.c | 4
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 2
drivers/media/dvb/dvb-core/dvb_net.c | 10 -
drivers/net/3c501.c | 2
drivers/net/3c505.c | 8 -
drivers/net/3c509.c | 8 -
drivers/net/3c515.c | 2
drivers/net/3c523.c | 6
drivers/net/3c527.c | 12 -
drivers/net/3c59x.c | 2
drivers/net/7990.c | 4
drivers/net/8139cp.c | 4
drivers/net/8139too.c | 4
drivers/net/82596.c | 10 -
drivers/net/a2065.c | 4
drivers/net/acenic.c | 2
drivers/net/amd8111e.c | 10 -
drivers/net/appletalk/ltpc.c | 2
drivers/net/ariadne.c | 2
drivers/net/arm/am79c961a.c | 2
drivers/net/arm/at91_ether.c | 6
drivers/net/arm/ether3.c | 2
drivers/net/arm/ixp4xx_eth.c | 4
drivers/net/arm/ks8695net.c | 6
drivers/net/at1700.c | 6
drivers/net/atarilance.c | 2
drivers/net/atl1c/atl1c_main.c | 2
drivers/net/atl1e/atl1e_main.c | 2
drivers/net/atlx/atl2.c | 2
drivers/net/atlx/atlx.c | 2
drivers/net/atp.c | 6
drivers/net/au1000_eth.c | 4
drivers/net/b44.c | 6
drivers/net/benet/be_main.c | 2
drivers/net/bfin_mac.c | 6
drivers/net/bmac.c | 12 -
drivers/net/bnx2.c | 8 -
drivers/net/bnx2x_main.c | 10 -
drivers/net/bonding/bond_main.c | 16 +-
drivers/net/cassini.c | 2
drivers/net/chelsio/common.h | 4
drivers/net/chelsio/cxgb2.c | 2
drivers/net/cpmac.c | 2
drivers/net/cris/eth_v10.c | 4
drivers/net/cs89x0.c | 2
drivers/net/cxgb3/common.h | 2
drivers/net/cxgb3/cxgb3_main.c | 4
drivers/net/de620.c | 2
drivers/net/declance.c | 4
drivers/net/defxx.c | 6
drivers/net/depca.c | 4
drivers/net/dl2k.c | 6
drivers/net/dm9000.c | 4
drivers/net/e100.c | 8 -
drivers/net/e1000/e1000_main.c | 6
drivers/net/e1000e/netdev.c | 8 -
drivers/net/eepro.c | 16 +-
drivers/net/eexpress.c | 8 -
drivers/net/ehea/ehea_main.c | 6
drivers/net/enc28j60.c | 2
drivers/net/enic/enic_main.c | 6
drivers/net/epic100.c | 6
drivers/net/eth16i.c | 2
drivers/net/ethoc.c | 2
drivers/net/ewrk3.c | 4
drivers/net/fealnx.c | 4
drivers/net/fec.c | 4
drivers/net/fec_mpc52xx.c | 4
drivers/net/forcedeth.c | 4
drivers/net/fs_enet/mac-fcc.c | 4
drivers/net/fs_enet/mac-fec.c | 4
drivers/net/fs_enet/mac-scc.c | 4
drivers/net/gianfar.c | 4
drivers/net/hamachi.c | 6
drivers/net/hp100.c | 6
drivers/net/ibm_newemac/core.c | 8 -
drivers/net/ibmlana.c | 2
drivers/net/ibmveth.c | 6
drivers/net/igb/igb_main.c | 8 -
drivers/net/igbvf/netdev.c | 8 -
drivers/net/ioc3-eth.c | 6
drivers/net/ipg.c | 6
drivers/net/isa-skeleton.c | 6
drivers/net/iseries_veth.c | 6
drivers/net/ixgb/ixgb_main.c | 8 -
drivers/net/ixgbe/ixgbe_main.c | 8 -
drivers/net/jme.c | 4
drivers/net/korina.c | 8 -
drivers/net/lance.c | 2
drivers/net/lib82596.c | 10 -
drivers/net/lib8390.c | 6
drivers/net/lp486e.c | 12 -
drivers/net/mac89x0.c | 2
drivers/net/macb.c | 6
drivers/net/mace.c | 4
drivers/net/macmace.c | 4
drivers/net/mlx4/en_netdev.c | 2
drivers/net/mv643xx_eth.c | 4
drivers/net/myri10ge/myri10ge.c | 2
drivers/net/natsemi.c | 4
drivers/net/netxen/netxen_nic_hw.c | 14 -
drivers/net/ni5010.c | 2
drivers/net/ni52.c | 4
drivers/net/ni65.c | 2
drivers/net/niu.c | 10 -
drivers/net/ns83820.c | 2
drivers/net/pci-skeleton.c | 4
drivers/net/pcmcia/3c574_cs.c | 2
drivers/net/pcmcia/3c589_cs.c | 2
drivers/net/pcmcia/axnet_cs.c | 6
drivers/net/pcmcia/fmvj18x_cs.c | 6
drivers/net/pcmcia/nmclan_cs.c | 16 +-
drivers/net/pcmcia/smc91c92_cs.c | 4
drivers/net/pcmcia/xirc2ps_cs.c | 10 -
drivers/net/pcnet32.c | 4
drivers/net/ps3_gelic_net.c | 4
drivers/net/qlge/qlge_main.c | 6
drivers/net/r6040.c | 12 -
drivers/net/r8169.c | 4
drivers/net/s2io.c | 8 -
drivers/net/sb1250-mac.c | 2
drivers/net/sc92031.c | 4
drivers/net/sfc/efx.c | 4
drivers/net/sgiseeq.c | 2
drivers/net/sis190.c | 4
drivers/net/sis900.c | 6
drivers/net/skfp/skfddi.c | 8 -
drivers/net/skge.c | 10 -
drivers/net/sky2.c | 6
drivers/net/smc911x.c | 8 -
drivers/net/smc9194.c | 4
drivers/net/smc91x.c | 8 -
drivers/net/smsc911x.c | 8 -
drivers/net/smsc9420.c | 4
drivers/net/sonic.c | 8 -
drivers/net/spider_net.c | 2
drivers/net/starfire.c | 8 -
drivers/net/sun3_82586.c | 4
drivers/net/sun3lance.c | 2
drivers/net/sunbmac.c | 6
drivers/net/sundance.c | 6
drivers/net/sungem.c | 6
drivers/net/sunhme.c | 12 -
drivers/net/sunlance.c | 4
drivers/net/sunqe.c | 6
drivers/net/sunvnet.c | 2
drivers/net/tc35815.c | 8 -
drivers/net/tehuti.c | 6
drivers/net/tg3.c | 4
drivers/net/tlan.c | 4
drivers/net/tokenring/3c359.c | 2
drivers/net/tokenring/ibmtr.c | 4
drivers/net/tokenring/lanstreamer.c | 2
drivers/net/tokenring/olympic.c | 2
drivers/net/tokenring/tms380tr.c | 4
drivers/net/tsi108_eth.c | 4
drivers/net/tulip/de2104x.c | 8 -
drivers/net/tulip/de4x5.c | 8 -
drivers/net/tulip/dmfe.c | 18 +-
drivers/net/tulip/tulip_core.c | 12 -
drivers/net/tulip/uli526x.c | 12 -
drivers/net/tulip/winbond-840.c | 4
drivers/net/typhoon.c | 6
drivers/net/ucc_geth.c | 4
drivers/net/usb/asix.c | 16 +-
drivers/net/usb/catc.c | 2
drivers/net/usb/dm9601.c | 8 -
drivers/net/usb/kaweth.c | 2
drivers/net/usb/mcs7830.c | 8 -
drivers/net/usb/pegasus.c | 2
drivers/net/usb/rtl8150.c | 2
drivers/net/usb/smsc95xx.c | 8 -
drivers/net/via-rhine.c | 4
drivers/net/via-velocity.c | 4
drivers/net/virtio_net.c | 20 +-
drivers/net/vxge/vxge-main.c | 6
drivers/net/wireless/airo.c | 2
drivers/net/wireless/arlan-main.c | 4
drivers/net/wireless/libertas/main.c | 2
drivers/net/wireless/netwave_cs.c | 8 -
drivers/net/wireless/orinoco/main.c | 6
drivers/net/wireless/ray_cs.c | 4
drivers/net/wireless/rndis_wlan.c | 8 -
drivers/net/wireless/wavelan.c | 14 -
drivers/net/wireless/wavelan_cs.c | 16 +-
drivers/net/wireless/zd1201.c | 8 -
drivers/net/yellowfin.c | 6
drivers/net/znet.c | 2
drivers/s390/net/qeth_l2_main.c | 4
drivers/staging/et131x/et131x_netdev.c | 14 -
drivers/staging/slicoss/slicoss.c | 4
drivers/staging/sxg/sxg.c | 4
include/linux/netdevice.h | 143 +++++++++++++++++--
net/bluetooth/bnep/netdev.c | 6
net/core/dev.c | 180 +++++++++----------------
net/core/dev_mcast.c | 96 -------------
net/irda/irlan/irlan_eth.c | 4
net/mac80211/main.c | 4
net/mac80211/scan.c | 8 -
200 files changed, 743 insertions(+), 778 deletions(-)
--- wireless-testing.orig/include/linux/netdevice.h 2009-06-13 12:29:25.000000000 +0200
+++ wireless-testing/include/linux/netdevice.h 2009-06-13 12:30:21.000000000 +0200
@@ -200,6 +200,11 @@ struct dev_addr_list
int da_gusers;
};
+struct address_list {
+ struct dev_addr_list *list;
+ int count;
+};
+
/*
* We tag multicasts with these structures.
*/
@@ -748,11 +753,9 @@ struct net_device
unsigned short dev_id; /* for shared network cards */
spinlock_t addr_list_lock;
- struct dev_addr_list *uc_list; /* Secondary unicast mac addresses */
- int uc_count; /* Number of installed ucasts */
- int uc_promisc;
- struct dev_addr_list *mc_list; /* Multicast mac addresses */
- int mc_count; /* Number of installed mcasts */
+ struct address_list uc; /* secondary unicast mac addresses */
+ int uc_promisc; /* Multicast mac addresses */
+ struct address_list mc;
unsigned int promiscuity;
unsigned int allmulti;
@@ -1792,24 +1795,128 @@ extern int register_netdev(struct net_d
extern void unregister_netdev(struct net_device *dev);
/* Functions used for secondary unicast and multicast support */
extern void dev_set_rx_mode(struct net_device *dev);
-extern void __dev_set_rx_mode(struct net_device *dev);
-extern int dev_unicast_delete(struct net_device *dev, void *addr, int alen);
-extern int dev_unicast_add(struct net_device *dev, void *addr, int alen);
-extern int dev_unicast_sync(struct net_device *to, struct net_device *from);
-extern void dev_unicast_unsync(struct net_device *to, struct net_device *from);
-extern int dev_mc_delete(struct net_device *dev, void *addr, int alen, int all);
-extern int dev_mc_add(struct net_device *dev, void *addr, int alen, int newonly);
-extern int dev_mc_sync(struct net_device *to, struct net_device *from);
-extern void dev_mc_unsync(struct net_device *to, struct net_device *from);
-extern int __dev_addr_delete(struct dev_addr_list **list, int *count, void *addr, int alen, int all);
-extern int __dev_addr_add(struct dev_addr_list **list, int *count, void *addr, int alen, int newonly);
-extern int __dev_addr_sync(struct dev_addr_list **to, int *to_count, struct dev_addr_list **from, int *from_count);
-extern void __dev_addr_unsync(struct dev_addr_list **to, int *to_count, struct dev_addr_list **from, int *from_count);
extern int dev_set_promiscuity(struct net_device *dev, int inc);
extern int dev_set_allmulti(struct net_device *dev, int inc);
extern void netdev_state_change(struct net_device *dev);
extern void netdev_bonding_change(struct net_device *dev);
extern void netdev_features_change(struct net_device *dev);
+
+int dev_addr_add(struct net_device *dev, struct address_list *alist,
+ void *addr, int alen, int glbl);
+int dev_addr_delete(struct net_device *dev, struct address_list *alist,
+ void *addr, int alen, int glbl);
+int dev_addr_sync(struct net_device *todev, struct address_list *to,
+ struct address_list *from);
+void dev_addr_unsync(struct net_device *todev, struct net_device *fromdev,
+ struct address_list *to, struct address_list *from);
+
+static inline int dev_mc_delete(struct net_device *dev, void *addr,
+ int alen, int glbl)
+{
+ return dev_addr_delete(dev, &dev->mc, addr, alen, glbl);
+}
+
+static inline int dev_mc_add(struct net_device *dev, void *addr,
+ int alen, int glbl)
+{
+ return dev_addr_add(dev, &dev->mc, addr, alen, glbl);
+}
+
+/**
+ * dev_mc_sync - Synchronize device's multicast list to another device
+ * @to: destination device
+ * @from: source device
+ *
+ * Add newly added addresses to the destination device and release
+ * addresses that have no users left. The source device must be
+ * locked by netif_tx_lock_bh.
+ *
+ * This function is intended to be called from the dev->set_multicast_list
+ * or dev->set_rx_mode function of layered software devices.
+ */
+static inline int dev_mc_sync(struct net_device *to, struct net_device *from)
+{
+ return dev_addr_sync(to, &to->mc, &from->mc);
+}
+
+/**
+ * dev_mc_unsync - Remove synchronized addresses from the destination
+ * device
+ * @to: destination device
+ * @from: source device
+ *
+ * Remove all addresses that were added to the destination device by
+ * dev_mc_sync(). This function is intended to be called from the
+ * dev->stop function of layered software devices.
+ */
+static inline void dev_mc_unsync(struct net_device *to, struct net_device *from)
+{
+ dev_addr_unsync(to, from, &to->mc, &from->mc);
+}
+
+/**
+ * dev_unicast_delete - Release secondary unicast address.
+ * @dev: device
+ * @addr: address to delete
+ * @alen: length of @addr
+ *
+ * Release reference to a secondary unicast address and remove it
+ * from the device if the reference count drops to zero.
+ *
+ * The caller must hold the rtnl_mutex.
+ */
+static inline int dev_unicast_delete(struct net_device *dev, void *addr, int alen)
+{
+ return dev_addr_delete(dev, &dev->uc, addr, alen, 0);
+}
+
+/**
+ * dev_unicast_add - add a secondary unicast address
+ * @dev: device
+ * @addr: address to add
+ * @alen: length of @addr
+ *
+ * Add a secondary unicast address to the device or increase
+ * the reference count if it already exists.
+ *
+ * The caller must hold the rtnl_mutex.
+ */
+static inline int dev_unicast_add(struct net_device *dev, void *addr, int alen)
+{
+ return dev_addr_add(dev, &dev->uc, addr, alen, 0);
+}
+
+/**
+ * dev_unicast_sync - Synchronize device's unicast list to another device
+ * @to: destination device
+ * @from: source device
+ *
+ * Add newly added addresses to the destination device and release
+ * addresses that have no users left. The source device must be
+ * locked by netif_tx_lock_bh.
+ *
+ * This function is intended to be called from the dev->set_rx_mode
+ * function of layered software devices.
+ */
+static inline int dev_unicast_sync(struct net_device *to, struct net_device *from)
+{
+ return dev_addr_sync(to, &to->uc, &from->uc);
+}
+
+/**
+ * dev_unicast_unsync - Remove synchronized addresses from the destination device
+ * @to: destination device
+ * @from: source device
+ *
+ * Remove all addresses that were added to the destination device by
+ * dev_unicast_sync(). This function is intended to be called from the
+ * dev->stop function of layered software devices.
+ */
+static inline void dev_unicast_unsync(struct net_device *to, struct net_device *from)
+{
+ dev_addr_unsync(to, from, &to->uc, &from->uc);
+}
+
/* Load a device via the kmod */
extern void dev_load(struct net *net, const char *name);
extern void dev_mcast_init(void);
--- wireless-testing.orig/net/bluetooth/bnep/netdev.c 2009-01-13 15:05:23.000000000 +0100
+++ wireless-testing/net/bluetooth/bnep/netdev.c 2009-06-13 12:29:32.000000000 +0200
@@ -64,7 +64,7 @@ static void bnep_net_set_mc_list(struct
struct sk_buff *skb;
int size;
- BT_DBG("%s mc_count %d", dev->name, dev->mc_count);
+ BT_DBG("%s mc_count %d", dev->name, dev->mc.count);
size = sizeof(*r) + (BNEP_MAX_MULTICAST_FILTERS + 1) * ETH_ALEN * 2;
skb = alloc_skb(size, GFP_ATOMIC);
@@ -87,7 +87,7 @@ static void bnep_net_set_mc_list(struct
memcpy(__skb_put(skb, ETH_ALEN), dev->broadcast, ETH_ALEN);
r->len = htons(ETH_ALEN * 2);
} else {
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
int i, len = skb->len;
if (dev->flags & IFF_BROADCAST) {
@@ -97,7 +97,7 @@ static void bnep_net_set_mc_list(struct
/* FIXME: We should group addresses here. */
- for (i = 0; i < dev->mc_count && i < BNEP_MAX_MULTICAST_FILTERS; i++) {
+ for (i = 0; i < dev->mc.count && i < BNEP_MAX_MULTICAST_FILTERS; i++) {
memcpy(__skb_put(skb, ETH_ALEN), dmi->dmi_addr, ETH_ALEN);
memcpy(__skb_put(skb, ETH_ALEN), dmi->dmi_addr, ETH_ALEN);
dmi = dmi->next;
--- wireless-testing.orig/net/core/dev.c 2009-06-01 22:33:04.000000000 +0200
+++ wireless-testing/net/core/dev.c 2009-06-13 12:29:32.000000000 +0200
@@ -3412,7 +3412,7 @@ int dev_set_allmulti(struct net_device *
* filtering it is put in promiscuous mode while unicast addresses
* are present.
*/
-void __dev_set_rx_mode(struct net_device *dev)
+static void __dev_set_rx_mode(struct net_device *dev)
{
const struct net_device_ops *ops = dev->netdev_ops;
@@ -3429,10 +3429,10 @@ void __dev_set_rx_mode(struct net_device
/* Unicast addresses changes may only happen under the rtnl,
* therefore calling __dev_set_promiscuity here is safe.
*/
- if (dev->uc_count > 0 && !dev->uc_promisc) {
+ if (dev->uc.count > 0 && !dev->uc_promisc) {
__dev_set_promiscuity(dev, 1);
dev->uc_promisc = 1;
- } else if (dev->uc_count == 0 && dev->uc_promisc) {
+ } else if (dev->uc.count == 0 && dev->uc_promisc) {
__dev_set_promiscuity(dev, -1);
dev->uc_promisc = 0;
}
@@ -3449,9 +3449,10 @@ void dev_set_rx_mode(struct net_device *
netif_addr_unlock_bh(dev);
}
-int __dev_addr_delete(struct dev_addr_list **list, int *count,
- void *addr, int alen, int glbl)
+static int __dev_addr_delete(struct address_list *alist,
+ void *addr, int alen, int glbl)
{
+ struct dev_addr_list **list = &alist->list;
struct dev_addr_list *da;
for (; (da = *list) != NULL; list = &da->next) {
@@ -3468,16 +3469,32 @@ int __dev_addr_delete(struct dev_addr_li
*list = da->next;
kfree(da);
- (*count)--;
+ alist->count--;
return 0;
}
}
return -ENOENT;
}
-int __dev_addr_add(struct dev_addr_list **list, int *count,
- void *addr, int alen, int glbl)
+int dev_addr_delete(struct net_device *dev, struct address_list *alist,
+ void *addr, int alen, int glbl)
{
+ int err;
+
+ netif_addr_lock_bh(dev);
+ err = __dev_addr_delete(alist, addr, alen, glbl);
+ if (!err)
+ __dev_set_rx_mode(dev);
+ netif_addr_unlock_bh(dev);
+
+ return err;
+}
+EXPORT_SYMBOL(dev_addr_delete);
+
+static int __dev_addr_add(struct address_list *alist,
+ void *addr, int alen, int glbl)
+{
+ struct dev_addr_list **list = &alist->list;
struct dev_addr_list *da;
for (da = *list; da != NULL; da = da->next) {
@@ -3503,156 +3520,91 @@ int __dev_addr_add(struct dev_addr_list
da->da_gusers = glbl ? 1 : 0;
da->next = *list;
*list = da;
- (*count)++;
+ alist->count++;
return 0;
}
-/**
- * dev_unicast_delete - Release secondary unicast address.
- * @dev: device
- * @addr: address to delete
- * @alen: length of @addr
- *
- * Release reference to a secondary unicast address and remove it
- * from the device if the reference count drops to zero.
- *
- * The caller must hold the rtnl_mutex.
- */
-int dev_unicast_delete(struct net_device *dev, void *addr, int alen)
+int dev_addr_add(struct net_device *dev, struct address_list *alist,
+ void *addr, int alen, int glbl)
{
int err;
- ASSERT_RTNL();
-
netif_addr_lock_bh(dev);
- err = __dev_addr_delete(&dev->uc_list, &dev->uc_count, addr, alen, 0);
+ err = __dev_addr_add(alist, addr, alen, glbl);
if (!err)
__dev_set_rx_mode(dev);
netif_addr_unlock_bh(dev);
- return err;
-}
-EXPORT_SYMBOL(dev_unicast_delete);
-
-/**
- * dev_unicast_add - add a secondary unicast address
- * @dev: device
- * @addr: address to add
- * @alen: length of @addr
- *
- * Add a secondary unicast address to the device or increase
- * the reference count if it already exists.
- *
- * The caller must hold the rtnl_mutex.
- */
-int dev_unicast_add(struct net_device *dev, void *addr, int alen)
-{
- int err;
-
- ASSERT_RTNL();
- netif_addr_lock_bh(dev);
- err = __dev_addr_add(&dev->uc_list, &dev->uc_count, addr, alen, 0);
- if (!err)
- __dev_set_rx_mode(dev);
- netif_addr_unlock_bh(dev);
return err;
}
-EXPORT_SYMBOL(dev_unicast_add);
+EXPORT_SYMBOL(dev_addr_add);
-int __dev_addr_sync(struct dev_addr_list **to, int *to_count,
- struct dev_addr_list **from, int *from_count)
+static int __dev_addr_sync(struct address_list *to, struct address_list *from)
{
struct dev_addr_list *da, *next;
int err = 0;
- da = *from;
+ da = from->list;
while (da != NULL) {
next = da->next;
if (!da->da_synced) {
- err = __dev_addr_add(to, to_count,
- da->da_addr, da->da_addrlen, 0);
+ err = __dev_addr_add(to, da->da_addr, da->da_addrlen, 0);
if (err < 0)
break;
da->da_synced = 1;
da->da_users++;
} else if (da->da_users == 1) {
- __dev_addr_delete(to, to_count,
- da->da_addr, da->da_addrlen, 0);
- __dev_addr_delete(from, from_count,
- da->da_addr, da->da_addrlen, 0);
+ __dev_addr_delete(to, da->da_addr, da->da_addrlen, 0);
+ __dev_addr_delete(from, da->da_addr, da->da_addrlen, 0);
}
da = next;
}
return err;
}
-void __dev_addr_unsync(struct dev_addr_list **to, int *to_count,
- struct dev_addr_list **from, int *from_count)
+int dev_addr_sync(struct net_device *todev, struct address_list *to,
+ struct address_list *from)
+{
+ int err = 0;
+
+ netif_addr_lock_bh(todev);
+ err = __dev_addr_sync(to, from);
+ if (!err)
+ __dev_set_rx_mode(todev);
+ netif_addr_unlock_bh(todev);
+ return err;
+}
+EXPORT_SYMBOL(dev_addr_sync);
+
+static void __dev_addr_unsync(struct address_list *to, struct address_list *from)
{
struct dev_addr_list *da, *next;
- da = *from;
+ da = from->list;
while (da != NULL) {
next = da->next;
if (da->da_synced) {
- __dev_addr_delete(to, to_count,
- da->da_addr, da->da_addrlen, 0);
+ __dev_addr_delete(to, da->da_addr, da->da_addrlen, 0);
da->da_synced = 0;
- __dev_addr_delete(from, from_count,
- da->da_addr, da->da_addrlen, 0);
+ __dev_addr_delete(from, da->da_addr, da->da_addrlen, 0);
}
da = next;
}
}
-/**
- * dev_unicast_sync - Synchronize device's unicast list to another device
- * @to: destination device
- * @from: source device
- *
- * Add newly added addresses to the destination device and release
- * addresses that have no users left. The source device must be
- * locked by netif_tx_lock_bh.
- *
- * This function is intended to be called from the dev->set_rx_mode
- * function of layered software devices.
- */
-int dev_unicast_sync(struct net_device *to, struct net_device *from)
-{
- int err = 0;
-
- netif_addr_lock_bh(to);
- err = __dev_addr_sync(&to->uc_list, &to->uc_count,
- &from->uc_list, &from->uc_count);
- if (!err)
- __dev_set_rx_mode(to);
- netif_addr_unlock_bh(to);
- return err;
-}
-EXPORT_SYMBOL(dev_unicast_sync);
-
-/**
- * dev_unicast_unsync - Remove synchronized addresses from the destination device
- * @to: destination device
- * @from: source device
- *
- * Remove all addresses that were added to the destination device by
- * dev_unicast_sync(). This function is intended to be called from the
- * dev->stop function of layered software devices.
- */
-void dev_unicast_unsync(struct net_device *to, struct net_device *from)
+void dev_addr_unsync(struct net_device *todev, struct net_device *fromdev,
+ struct address_list *to, struct address_list *from)
{
- netif_addr_lock_bh(from);
- netif_addr_lock(to);
+ netif_addr_lock_bh(fromdev);
+ netif_addr_lock(todev);
- __dev_addr_unsync(&to->uc_list, &to->uc_count,
- &from->uc_list, &from->uc_count);
- __dev_set_rx_mode(to);
+ __dev_addr_unsync(to, from);
+ __dev_set_rx_mode(todev);
- netif_addr_unlock(to);
- netif_addr_unlock_bh(from);
+ netif_addr_unlock(todev);
+ netif_addr_unlock_bh(fromdev);
}
-EXPORT_SYMBOL(dev_unicast_unsync);
+EXPORT_SYMBOL(dev_addr_unsync);
static void __dev_addr_discard(struct dev_addr_list **list)
{
@@ -3672,11 +3624,11 @@ static void dev_addr_discard(struct net_
{
netif_addr_lock_bh(dev);
- __dev_addr_discard(&dev->uc_list);
- dev->uc_count = 0;
+ __dev_addr_discard(&dev->uc.list);
+ dev->uc.count = 0;
- __dev_addr_discard(&dev->mc_list);
- dev->mc_count = 0;
+ __dev_addr_discard(&dev->mc.list);
+ dev->mc.count = 0;
netif_addr_unlock_bh(dev);
}
--- wireless-testing.orig/net/core/dev_mcast.c 2009-06-13 12:29:25.000000000 +0200
+++ wireless-testing/net/core/dev_mcast.c 2009-06-13 12:29:32.000000000 +0200
@@ -64,97 +64,6 @@
* We block accesses to device mc filters with netif_tx_lock.
*/
-/*
- * Delete a device level multicast
- */
-
-int dev_mc_delete(struct net_device *dev, void *addr, int alen, int glbl)
-{
- int err;
-
- netif_addr_lock_bh(dev);
- err = __dev_addr_delete(&dev->mc_list, &dev->mc_count,
- addr, alen, glbl);
- if (!err) {
- /*
- * We have altered the list, so the card
- * loaded filter is now wrong. Fix it
- */
-
- __dev_set_rx_mode(dev);
- }
- netif_addr_unlock_bh(dev);
- return err;
-}
-
-/*
- * Add a device level multicast
- */
-
-int dev_mc_add(struct net_device *dev, void *addr, int alen, int glbl)
-{
- int err;
-
- netif_addr_lock_bh(dev);
- err = __dev_addr_add(&dev->mc_list, &dev->mc_count, addr, alen, glbl);
- if (!err)
- __dev_set_rx_mode(dev);
- netif_addr_unlock_bh(dev);
- return err;
-}
-
-/**
- * dev_mc_sync - Synchronize device's multicast list to another device
- * @to: destination device
- * @from: source device
- *
- * Add newly added addresses to the destination device and release
- * addresses that have no users left. The source device must be
- * locked by netif_tx_lock_bh.
- *
- * This function is intended to be called from the dev->set_multicast_list
- * or dev->set_rx_mode function of layered software devices.
- */
-int dev_mc_sync(struct net_device *to, struct net_device *from)
-{
- int err = 0;
-
- netif_addr_lock_bh(to);
- err = __dev_addr_sync(&to->mc_list, &to->mc_count,
- &from->mc_list, &from->mc_count);
- if (!err)
- __dev_set_rx_mode(to);
- netif_addr_unlock_bh(to);
-
- return err;
-}
-EXPORT_SYMBOL(dev_mc_sync);
-
-
-/**
- * dev_mc_unsync - Remove synchronized addresses from the destination
- * device
- * @to: destination device
- * @from: source device
- *
- * Remove all addresses that were added to the destination device by
- * dev_mc_sync(). This function is intended to be called from the
- * dev->stop function of layered software devices.
- */
-void dev_mc_unsync(struct net_device *to, struct net_device *from)
-{
- netif_addr_lock_bh(from);
- netif_addr_lock(to);
-
- __dev_addr_unsync(&to->mc_list, &to->mc_count,
- &from->mc_list, &from->mc_count);
- __dev_set_rx_mode(to);
-
- netif_addr_unlock(to);
- netif_addr_unlock_bh(from);
-}
-EXPORT_SYMBOL(dev_mc_unsync);
-
#ifdef CONFIG_PROC_FS
static int dev_mc_seq_show(struct seq_file *seq, void *v)
{
@@ -165,7 +74,7 @@ static int dev_mc_seq_show(struct seq_fi
return 0;
netif_addr_lock_bh(dev);
- for (m = dev->mc_list; m; m = m->next) {
+ for (m = dev->mc.list; m; m = m->next) {
int i;
seq_printf(seq, "%-4d %-15s %-5d %-5d ", dev->ifindex,
@@ -224,6 +133,3 @@ void __init dev_mcast_init(void)
{
register_pernet_subsys(&dev_mc_net_ops);
}
-
-EXPORT_SYMBOL(dev_mc_add);
-EXPORT_SYMBOL(dev_mc_delete);
--- wireless-testing.orig/net/irda/irlan/irlan_eth.c 2009-04-09 10:00:39.000000000 +0200
+++ wireless-testing/net/irda/irlan/irlan_eth.c 2009-06-13 12:29:32.000000000 +0200
@@ -318,14 +318,14 @@ static void irlan_eth_set_multicast_list
/* Enable promiscuous mode */
IRDA_WARNING("Promiscuous mode not implemented by IrLAN!\n");
}
- else if ((dev->flags & IFF_ALLMULTI) || dev->mc_count > HW_MAX_ADDRS) {
+ else if ((dev->flags & IFF_ALLMULTI) || dev->mc.count > HW_MAX_ADDRS) {
/* Disable promiscuous mode, use normal mode. */
IRDA_DEBUG(4, "%s(), Setting multicast filter\n", __func__ );
/* hardware_set_filter(NULL); */
irlan_set_multicast_filter(self, TRUE);
}
- else if (dev->mc_count) {
+ else if (dev->mc.count) {
IRDA_DEBUG(4, "%s(), Setting multicast filter\n", __func__ );
/* Walk the address list, and load the filter */
/* hardware_set_filter(dev->mc_list); */
--- wireless-testing.orig/net/mac80211/main.c 2009-06-11 11:34:09.000000000 +0200
+++ wireless-testing/net/mac80211/main.c 2009-06-13 12:29:32.000000000 +0200
@@ -83,8 +83,8 @@ void ieee80211_configure_filter(struct i
new_flags |= (1<<31);
drv_configure_filter(local, changed_flags, &new_flags,
- local->mdev->mc_count,
- local->mdev->mc_list);
+ local->mdev->mc.count,
+ local->mdev->mc.list);
WARN_ON(new_flags & (1<<31));
--- wireless-testing.orig/net/mac80211/scan.c 2009-06-11 11:34:09.000000000 +0200
+++ wireless-testing/net/mac80211/scan.c 2009-06-13 12:29:32.000000000 +0200
@@ -312,8 +312,8 @@ void ieee80211_scan_completed(struct iee
local->filter_flags &= ~FIF_BCN_PRBRESP_PROMISC;
drv_configure_filter(local, FIF_BCN_PRBRESP_PROMISC,
&local->filter_flags,
- local->mdev->mc_count,
- local->mdev->mc_list);
+ local->mdev->mc.count,
+ local->mdev->mc.list);
netif_addr_unlock(local->mdev);
netif_tx_unlock_bh(local->mdev);
@@ -399,8 +399,8 @@ static int ieee80211_start_sw_scan(struc
local->filter_flags |= FIF_BCN_PRBRESP_PROMISC;
drv_configure_filter(local, FIF_BCN_PRBRESP_PROMISC,
&local->filter_flags,
- local->mdev->mc_count,
- local->mdev->mc_list);
+ local->mdev->mc.count,
+ local->mdev->mc.list);
netif_addr_unlock_bh(local->mdev);
/* TODO: start scan as soon as all nullfunc frames are ACKed */
--- wireless-testing.orig/drivers/infiniband/hw/nes/nes_nic.c 2009-04-16 02:16:34.000000000 +0200
+++ wireless-testing/drivers/infiniband/hw/nes/nes_nic.c 2009-06-13 12:29:33.000000000 +0200
@@ -862,10 +862,10 @@ static void nes_netdev_set_multicast_lis
}
nes_debug(NES_DBG_NIC_RX, "Number of MC entries = %d, Promiscous = %d, All Multicast = %d.\n",
- netdev->mc_count, !!(netdev->flags & IFF_PROMISC),
+ netdev->mc.count, !!(netdev->flags & IFF_PROMISC),
!!(netdev->flags & IFF_ALLMULTI));
if (!mc_all_on) {
- multicast_addr = netdev->mc_list;
+ multicast_addr = netdev->mc.list;
perfect_filter_register_address = NES_IDX_PERFECT_FILTER_LOW +
pft_entries_preallocated * 0x8;
for (mc_index = 0; mc_index < max_pft_entries_avaiable;
--- wireless-testing.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 2009-01-29 20:09:53.000000000 +0100
+++ wireless-testing/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 2009-06-13 12:29:33.000000000 +0200
@@ -788,7 +788,7 @@ void ipoib_mcast_restart_task(struct wor
clear_bit(IPOIB_MCAST_FLAG_FOUND, &mcast->flags);
/* Mark all of the entries that are found or don't exist */
- for (mclist = dev->mc_list; mclist; mclist = mclist->next) {
+ for (mclist = dev->mc.list; mclist; mclist = mclist->next) {
union ib_gid mgid;
memcpy(mgid.raw, mclist->dmi_addr + 4, sizeof mgid);
--- wireless-testing.orig/drivers/media/dvb/dvb-core/dvb_net.c 2009-04-09 10:00:09.000000000 +0200
+++ wireless-testing/drivers/media/dvb/dvb-core/dvb_net.c 2009-06-13 12:29:33.000000000 +0200
@@ -1140,18 +1140,18 @@ static void wq_set_multicast_list (struc
} else if ((dev->flags & IFF_ALLMULTI)) {
dprintk("%s: allmulti mode\n", dev->name);
priv->rx_mode = RX_MODE_ALL_MULTI;
- } else if (dev->mc_count) {
+ } else if (dev->mc.count) {
int mci;
struct dev_mc_list *mc;
dprintk("%s: set_mc_list, %d entries\n",
- dev->name, dev->mc_count);
+ dev->name, dev->mc.count);
priv->rx_mode = RX_MODE_MULTI;
priv->multi_num = 0;
- for (mci = 0, mc=dev->mc_list;
- mci < dev->mc_count;
+ for (mci = 0, mc=dev->mc.list;
+ mci < dev->mc.count;
mc = mc->next, mci++) {
dvb_set_mc_filter(dev, mc);
}
@@ -1238,7 +1238,7 @@ static void dvb_net_setup(struct net_dev
dev->header_ops = &dvb_header_ops;
dev->netdev_ops = &dvb_netdev_ops;
dev->mtu = 4096;
- dev->mc_count = 0;
+ dev->mc.count = 0;
dev->flags |= IFF_NOARP;
}
--- wireless-testing.orig/drivers/net/3c501.c 2009-04-09 10:00:10.000000000 +0200
+++ wireless-testing/drivers/net/3c501.c 2009-06-13 12:29:33.000000000 +0200
@@ -819,7 +819,7 @@ static void set_multicast_list(struct ne
if (dev->flags & IFF_PROMISC) {
outb(RX_PROM, RX_CMD);
inb(RX_STATUS);
- } else if (dev->mc_list || dev->flags & IFF_ALLMULTI) {
+ } else if (dev->mc.list || dev->flags & IFF_ALLMULTI) {
/* Multicast or all multicast is the same */
outb(RX_MULT, RX_CMD);
inb(RX_STATUS); /* Clear status. */
--- wireless-testing.orig/drivers/net/3c505.c 2009-04-09 10:00:10.000000000 +0200
+++ wireless-testing/drivers/net/3c505.c 2009-06-13 12:29:33.000000000 +0200
@@ -1208,7 +1208,7 @@ static int elp_close(struct net_device *
static void elp_set_mc_list(struct net_device *dev)
{
elp_device *adapter = netdev_priv(dev);
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_addr_list *dmi = dev->mc.list;
int i;
unsigned long flags;
@@ -1221,8 +1221,8 @@ static void elp_set_mc_list(struct net_d
/* send a "load multicast list" command to the board, max 10 addrs/cmd */
/* if num_addrs==0 the list will be cleared */
adapter->tx_pcb.command = CMD_LOAD_MULTICAST_LIST;
- adapter->tx_pcb.length = 6 * dev->mc_count;
- for (i = 0; i < dev->mc_count; i++) {
+ adapter->tx_pcb.length = 6 * dev->mc.count;
+ for (i = 0; i < dev->mc.count; i++) {
memcpy(adapter->tx_pcb.data.multicast[i], dmi->dmi_addr, 6);
dmi = dmi->next;
}
@@ -1236,7 +1236,7 @@ static void elp_set_mc_list(struct net_d
TIMEOUT_MSG(__LINE__);
}
}
- if (dev->mc_count)
+ if (dev->mc.count)
adapter->tx_pcb.data.configure = NO_LOOPBACK | RECV_BROAD | RECV_MULTI;
else /* num_addrs == 0 */
adapter->tx_pcb.data.configure = NO_LOOPBACK | RECV_BROAD;
--- wireless-testing.orig/drivers/net/3c509.c 2009-06-07 21:32:31.000000000 +0200
+++ wireless-testing/drivers/net/3c509.c 2009-06-13 12:29:33.000000000 +0200
@@ -1116,9 +1116,9 @@ set_multicast_list(struct net_device *de
if (el3_debug > 1) {
static int old;
- if (old != dev->mc_count) {
- old = dev->mc_count;
- printk("%s: Setting Rx mode to %d addresses.\n", dev->name, dev->mc_count);
+ if (old != dev->mc.count) {
+ old = dev->mc.count;
+ printk("%s: Setting Rx mode to %d addresses.\n", dev->name, dev->mc.count);
}
}
spin_lock_irqsave(&lp->lock, flags);
@@ -1126,7 +1126,7 @@ set_multicast_list(struct net_device *de
outw(SetRxFilter | RxStation | RxMulticast | RxBroadcast | RxProm,
ioaddr + EL3_CMD);
}
- else if (dev->mc_count || (dev->flags&IFF_ALLMULTI)) {
+ else if (dev->mc.count || (dev->flags&IFF_ALLMULTI)) {
outw(SetRxFilter | RxStation | RxMulticast | RxBroadcast, ioaddr + EL3_CMD);
}
else
--- wireless-testing.orig/drivers/net/3c515.c 2009-04-09 10:00:10.000000000 +0200
+++ wireless-testing/drivers/net/3c515.c 2009-06-13 12:29:33.000000000 +0200
@@ -1537,7 +1537,7 @@ static void set_rx_mode(struct net_devic
printk("%s: Setting promiscuous mode.\n",
dev->name);
new_mode = SetRxFilter | RxStation | RxMulticast | RxBroadcast | RxProm;
- } else if ((dev->mc_list) || (dev->flags & IFF_ALLMULTI)) {
+ } else if ((dev->mc.list) || (dev->flags & IFF_ALLMULTI)) {
new_mode = SetRxFilter | RxStation | RxMulticast | RxBroadcast;
} else
new_mode = SetRxFilter | RxStation | RxBroadcast;
--- wireless-testing.orig/drivers/net/3c523.c 2009-04-09 10:00:10.000000000 +0200
+++ wireless-testing/drivers/net/3c523.c 2009-06-13 12:29:33.000000000 +0200
@@ -625,8 +625,8 @@ static int init586(struct net_device *de
volatile struct iasetup_cmd_struct *ias_cmd;
volatile struct tdr_cmd_struct *tdr_cmd;
volatile struct mcsetup_cmd_struct *mc_cmd;
- struct dev_mc_list *dmi = dev->mc_list;
- int num_addrs = dev->mc_count;
+ struct dev_mc_list *dmi = dev->mc.list;
+ int num_addrs = dev->mc.count;
ptr = (void *) ((char *) p->scb + sizeof(struct scb_struct));
@@ -770,7 +770,7 @@ static int init586(struct net_device *de
* Multicast setup
*/
- if (dev->mc_count) {
+ if (dev->mc.count) {
/* I don't understand this: do we really need memory after the init? */
int len = ((char *) p->iscp - (char *) ptr - 8) / 6;
if (len <= 0) {
--- wireless-testing.orig/drivers/net/3c527.c 2009-04-09 10:00:10.000000000 +0200
+++ wireless-testing/drivers/net/3c527.c 2009-06-13 12:29:33.000000000 +0200
@@ -1528,14 +1528,14 @@ static void do_mc32_set_multicast_list(s
if ((dev->flags&IFF_PROMISC) ||
(dev->flags&IFF_ALLMULTI) ||
- dev->mc_count > 10)
+ dev->mc.count > 10)
/* Enable promiscuous mode */
filt |= 1;
- else if(dev->mc_count)
+ else if(dev->mc.count)
{
unsigned char block[62];
unsigned char *bp;
- struct dev_mc_list *dmc=dev->mc_list;
+ struct dev_mc_list *dmc=dev->mc.list;
int i;
@@ -1544,16 +1544,16 @@ static void do_mc32_set_multicast_list(s
if(!lp->mc_list_valid)
{
block[1]=0;
- block[0]=dev->mc_count;
+ block[0]=dev->mc.count;
bp=block+2;
- for(i=0;i<dev->mc_count;i++)
+ for(i=0;i<dev->mclcount;i++)
{
memcpy(bp, dmc->dmi_addr, 6);
bp+=6;
dmc=dmc->next;
}
- if(mc32_command_nowait(dev, 2, block, 2+6*dev->mc_count)==-1)
+ if(mc32_command_nowait(dev, 2, block, 2+6*dev->mclcount)==-1)
{
lp->mc_reload_wait = 1;
return;
--- wireless-testing.orig/drivers/net/3c59x.c 2009-04-09 10:00:10.000000000 +0200
+++ wireless-testing/drivers/net/3c59x.c 2009-06-13 12:29:33.000000000 +0200
@@ -2972,7 +2972,7 @@ static void set_rx_mode(struct net_devic
if (vortex_debug > 3)
printk(KERN_NOTICE "%s: Setting promiscuous mode.\n", dev->name);
new_mode = SetRxFilter|RxStation|RxMulticast|RxBroadcast|RxProm;
- } else if ((dev->mc_list) || (dev->flags & IFF_ALLMULTI)) {
+ } else if ((dev->mc.list) || (dev->flags & IFF_ALLMULTI)) {
new_mode = SetRxFilter|RxStation|RxMulticast|RxBroadcast;
} else
new_mode = SetRxFilter | RxStation | RxBroadcast;
--- wireless-testing.orig/drivers/net/7990.c 2009-01-13 15:05:05.000000000 +0100
+++ wireless-testing/drivers/net/7990.c 2009-06-13 12:29:33.000000000 +0200
@@ -595,7 +595,7 @@ static void lance_load_multicast (struct
struct lance_private *lp = netdev_priv(dev);
volatile struct lance_init_block *ib = lp->init_block;
volatile u16 *mcast_table = (u16 *)&ib->filter;
- struct dev_mc_list *dmi=dev->mc_list;
+ struct dev_mc_list *dmi=dev->mc.list;
char *addrs;
int i;
u32 crc;
@@ -611,7 +611,7 @@ static void lance_load_multicast (struct
ib->filter [1] = 0;
/* Add addresses */
- for (i = 0; i < dev->mc_count; i++){
+ for (i = 0; i < dev->mc.count; i++){
addrs = dmi->dmi_addr;
dmi = dmi->next;
--- wireless-testing.orig/drivers/net/8139cp.c 2009-04-09 10:00:10.000000000 +0200
+++ wireless-testing/drivers/net/8139cp.c 2009-06-13 12:29:33.000000000 +0200
@@ -912,7 +912,7 @@ static void __cp_set_rx_mode (struct net
AcceptBroadcast | AcceptMulticast | AcceptMyPhys |
AcceptAllPhys;
mc_filter[1] = mc_filter[0] = 0xffffffff;
- } else if ((dev->mc_count > multicast_filter_limit)
+ } else if ((dev->mc.count > multicast_filter_limit)
|| (dev->flags & IFF_ALLMULTI)) {
/* Too many to filter perfectly -- accept all multicasts. */
rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys;
@@ -921,7 +921,7 @@ static void __cp_set_rx_mode (struct net
struct dev_mc_list *mclist;
rx_mode = AcceptBroadcast | AcceptMyPhys;
mc_filter[1] = mc_filter[0] = 0;
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
int bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26;
--- wireless-testing.orig/drivers/net/8139too.c 2009-04-30 23:07:17.000000000 +0200
+++ wireless-testing/drivers/net/8139too.c 2009-06-13 12:29:33.000000000 +0200
@@ -2536,7 +2536,7 @@ static void __set_rx_mode (struct net_de
AcceptBroadcast | AcceptMulticast | AcceptMyPhys |
AcceptAllPhys;
mc_filter[1] = mc_filter[0] = 0xffffffff;
- } else if ((dev->mc_count > multicast_filter_limit)
+ } else if ((dev->mc.count > multicast_filter_limit)
|| (dev->flags & IFF_ALLMULTI)) {
/* Too many to filter perfectly -- accept all multicasts. */
rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys;
@@ -2545,7 +2545,7 @@ static void __set_rx_mode (struct net_de
struct dev_mc_list *mclist;
rx_mode = AcceptBroadcast | AcceptMyPhys;
mc_filter[1] = mc_filter[0] = 0;
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
int bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26;
--- wireless-testing.orig/drivers/net/82596.c 2009-04-09 10:00:10.000000000 +0200
+++ wireless-testing/drivers/net/82596.c 2009-06-13 12:29:33.000000000 +0200
@@ -1506,7 +1506,7 @@ static void set_multicast_list(struct ne
int config = 0, cnt;
DEB(DEB_MULTI,printk(KERN_DEBUG "%s: set multicast list, %d entries, promisc %s, allmulti %s\n",
- dev->name, dev->mc_count,
+ dev->name, dev->mc.count,
dev->flags & IFF_PROMISC ? "ON" : "OFF",
dev->flags & IFF_ALLMULTI ? "ON" : "OFF"));
@@ -1534,7 +1534,7 @@ static void set_multicast_list(struct ne
i596_add_cmd(dev, &lp->cf_cmd.cmd);
}
- cnt = dev->mc_count;
+ cnt = dev->mc.count;
if (cnt > MAX_MC_CNT)
{
cnt = MAX_MC_CNT;
@@ -1542,7 +1542,7 @@ static void set_multicast_list(struct ne
dev->name, cnt);
}
- if (dev->mc_count > 0) {
+ if (dev->mc.count > 0) {
struct dev_mc_list *dmi;
unsigned char *cp;
struct mc_cmd *cmd;
@@ -1551,9 +1551,9 @@ static void set_multicast_list(struct ne
return;
cmd = &lp->mc_cmd;
cmd->cmd.command = CmdMulticastList;
- cmd->mc_cnt = dev->mc_count * 6;
+ cmd->mc_cnt = dev->mc.count * 6;
cp = cmd->mc_addrs;
- for (dmi = dev->mc_list; cnt && dmi != NULL; dmi = dmi->next, cnt--, cp += 6) {
+ for (dmi = dev->mc.list; cnt && dmi != NULL; dmi = dmi->next, cnt--, cp += 6) {
memcpy(cp, dmi->dmi_addr, 6);
if (i596_debug > 1)
DEB(DEB_MULTI,printk(KERN_INFO "%s: Adding address %pM\n",
--- wireless-testing.orig/drivers/net/a2065.c 2009-04-23 00:20:40.000000000 +0200
+++ wireless-testing/drivers/net/a2065.c 2009-06-13 12:29:33.000000000 +0200
@@ -610,7 +610,7 @@ static void lance_load_multicast (struct
struct lance_private *lp = netdev_priv(dev);
volatile struct lance_init_block *ib = lp->init_block;
volatile u16 *mcast_table = (u16 *)&ib->filter;
- struct dev_mc_list *dmi=dev->mc_list;
+ struct dev_mc_list *dmi=dev->mc.list;
char *addrs;
int i;
u32 crc;
@@ -626,7 +626,7 @@ static void lance_load_multicast (struct
ib->filter [1] = 0;
/* Add addresses */
- for (i = 0; i < dev->mc_count; i++){
+ for (i = 0; i < dev->mc.count; i++){
addrs = dmi->dmi_addr;
dmi = dmi->next;
--- wireless-testing.orig/drivers/net/acenic.c 2009-04-09 10:00:10.000000000 +0200
+++ wireless-testing/drivers/net/acenic.c 2009-06-13 12:29:33.000000000 +0200
@@ -2844,7 +2844,7 @@ static void ace_set_multicast_list(struc
* set the entire multicast list at a time and keeping track of
* it here is going to be messy.
*/
- if ((dev->mc_count) && !(ap->mcast_all)) {
+ if ((dev->mc.count) && !(ap->mcast_all)) {
cmd.evt = C_SET_MULTICAST_MODE;
cmd.code = C_C_MCAST_ENABLE;
cmd.idx = 0;
--- wireless-testing.orig/drivers/net/amd8111e.c 2009-04-09 10:00:10.000000000 +0200
+++ wireless-testing/drivers/net/amd8111e.c 2009-06-13 12:29:33.000000000 +0200
@@ -1387,15 +1387,15 @@ static void amd8111e_set_multicast_list(
}
else
writel( PROM, lp->mmio + CMD2);
- if(dev->flags & IFF_ALLMULTI || dev->mc_count > MAX_FILTER_SIZE){
+ if(dev->flags & IFF_ALLMULTI || dev->mc.count > MAX_FILTER_SIZE){
/* get all multicast packet */
mc_filter[1] = mc_filter[0] = 0xffffffff;
- lp->mc_list = dev->mc_list;
+ lp->mc_list = dev->mc.list;
lp->options |= OPTION_MULTICAST_ENABLE;
amd8111e_writeq(*(u64*)mc_filter,lp->mmio + LADRF);
return;
}
- if( dev->mc_count == 0 ){
+ if( dev->mc.count == 0 ){
/* get only own packets */
mc_filter[1] = mc_filter[0] = 0;
lp->mc_list = NULL;
@@ -1407,9 +1407,9 @@ static void amd8111e_set_multicast_list(
}
/* load all the multicast addresses in the logic filter */
lp->options |= OPTION_MULTICAST_ENABLE;
- lp->mc_list = dev->mc_list;
+ lp->mc_list = dev->mc.list;
mc_filter[1] = mc_filter[0] = 0;
- for (i = 0, mc_ptr = dev->mc_list; mc_ptr && i < dev->mc_count;
+ for (i = 0, mc_ptr = dev->mc.list; mc_ptr && i < dev->mc.count;
i++, mc_ptr = mc_ptr->next) {
bit_num = (ether_crc_le(ETH_ALEN, mc_ptr->dmi_addr) >> 26) & 0x3f;
mc_filter[bit_num >> 5] |= 1 << (bit_num & 31);
--- wireless-testing.orig/drivers/net/appletalk/ltpc.c 2009-04-09 10:00:10.000000000 +0200
+++ wireless-testing/drivers/net/appletalk/ltpc.c 2009-06-13 12:29:33.000000000 +0200
@@ -1125,7 +1125,7 @@ struct net_device * __init ltpc_probe(vo
printk(KERN_INFO "Apple/Farallon LocalTalk-PC card at %03x, DMA%d. Using polled mode.\n",io,dma);
dev->netdev_ops = <pc_netdev;
- dev->mc_list = NULL;
+ dev->mc.list = NULL;
dev->base_addr = io;
dev->irq = irq;
dev->dma = dma;
--- wireless-testing.orig/drivers/net/ariadne.c 2009-04-23 00:20:40.000000000 +0200
+++ wireless-testing/drivers/net/ariadne.c 2009-06-13 12:29:33.000000000 +0200
@@ -819,7 +819,7 @@ static void set_multicast_list(struct ne
lance->RDP = PROM; /* Set promiscuous mode */
} else {
short multicast_table[4];
- int num_addrs = dev->mc_count;
+ int num_addrs = dev->mc.count;
int i;
/* We don't use the multicast table, but rely on upper-layer filtering. */
memset(multicast_table, (num_addrs == 0) ? 0 : -1,
--- wireless-testing.orig/drivers/net/arm/am79c961a.c 2009-04-23 00:20:40.000000000 +0200
+++ wireless-testing/drivers/net/arm/am79c961a.c 2009-06-13 12:29:33.000000000 +0200
@@ -387,7 +387,7 @@ static void am79c961_setmulticastlist (s
memset(multi_hash, 0x00, sizeof(multi_hash));
- for (dmi = dev->mc_list; dmi; dmi = dmi->next)
+ for (dmi = dev->mc.list; dmi; dmi = dmi->next)
am79c961_mc_hash(dmi, multi_hash);
}
--- wireless-testing.orig/drivers/net/arm/at91_ether.c 2009-04-23 00:20:40.000000000 +0200
+++ wireless-testing/drivers/net/arm/at91_ether.c 2009-06-13 12:29:34.000000000 +0200
@@ -562,8 +562,8 @@ static void at91ether_sethashtable(struc
mc_filter[0] = mc_filter[1] = 0;
- curr = dev->mc_list;
- for (i = 0; i < dev->mc_count; i++, curr = curr->next) {
+ curr = dev->mc.list;
+ for (i = 0; i < dev->mc.count; i++, curr = curr->next) {
if (!curr) break; /* unexpected end of list */
bitnr = hash_get_index(curr->dmi_addr);
@@ -592,7 +592,7 @@ static void at91ether_set_multicast_list
at91_emac_write(AT91_EMAC_HSH, -1);
at91_emac_write(AT91_EMAC_HSL, -1);
cfg |= AT91_EMAC_MTI;
- } else if (dev->mc_count > 0) { /* Enable specific multicasts */
+ } else if (dev->mc.count > 0) { /* Enable specific multicasts */
at91ether_sethashtable(dev);
cfg |= AT91_EMAC_MTI;
} else if (dev->flags & (~IFF_ALLMULTI)) { /* Disable all multicast mode */
--- wireless-testing.orig/drivers/net/arm/ether3.c 2009-04-23 00:20:40.000000000 +0200
+++ wireless-testing/drivers/net/arm/ether3.c 2009-06-13 12:29:34.000000000 +0200
@@ -463,7 +463,7 @@ static void ether3_setmulticastlist(stru
if (dev->flags & IFF_PROMISC) {
/* promiscuous mode */
priv(dev)->regs.config1 |= CFG1_RECVPROMISC;
- } else if (dev->flags & IFF_ALLMULTI || dev->mc_count) {
+ } else if (dev->flags & IFF_ALLMULTI || dev->mc.count) {
priv(dev)->regs.config1 |= CFG1_RECVSPECBRMULTI;
} else
priv(dev)->regs.config1 |= CFG1_RECVSPECBROAD;
--- wireless-testing.orig/drivers/net/arm/ixp4xx_eth.c 2009-05-18 12:02:00.000000000 +0200
+++ wireless-testing/drivers/net/arm/ixp4xx_eth.c 2009-06-13 12:29:34.000000000 +0200
@@ -733,9 +733,9 @@ static int eth_xmit(struct sk_buff *skb,
static void eth_set_mcast_list(struct net_device *dev)
{
struct port *port = netdev_priv(dev);
- struct dev_mc_list *mclist = dev->mc_list;
+ struct dev_mc_list *mclist = dev->mc.list;
u8 diffs[ETH_ALEN], *addr;
- int cnt = dev->mc_count, i;
+ int cnt = dev->mc.count, i;
if ((dev->flags & IFF_PROMISC) || !mclist || !cnt) {
__raw_writel(DEFAULT_RX_CNTRL0 & ~RX_CNTRL0_ADDR_FLTR_EN,
--- wireless-testing.orig/drivers/net/arm/ks8695net.c 2009-04-09 10:00:10.000000000 +0200
+++ wireless-testing/drivers/net/arm/ks8695net.c 2009-06-13 12:29:34.000000000 +0200
@@ -1127,7 +1127,7 @@ ks8695_set_multicast(struct net_device *
if (ndev->flags & IFF_ALLMULTI) {
/* enable all multicast mode */
ctrl |= DRXC_RM;
- } else if (ndev->mc_count > KS8695_NR_ADDRESSES) {
+ } else if (ndev->mc.count > KS8695_NR_ADDRESSES) {
/* more specific multicast addresses than can be
* handled in hardware
*/
@@ -1135,8 +1135,8 @@ ks8695_set_multicast(struct net_device *
} else {
/* enable specific multicasts */
ctrl &= ~DRXC_RM;
- ks8695_init_partial_multicast(ksp, ndev->mc_list,
- ndev->mc_count);
+ ks8695_init_partial_multicast(ksp, ndev->mc.list,
+ ndev->mc.count);
}
ks8695_writereg(ksp, KS8695_DRXC, ctrl);
--- wireless-testing.orig/drivers/net/at1700.c 2009-04-09 10:00:10.000000000 +0200
+++ wireless-testing/drivers/net/at1700.c 2009-06-13 12:29:34.000000000 +0200
@@ -837,12 +837,12 @@ set_rx_mode(struct net_device *dev)
if (dev->flags & IFF_PROMISC) {
memset(mc_filter, 0xff, sizeof(mc_filter));
outb(3, ioaddr + RX_MODE); /* Enable promiscuous mode */
- } else if (dev->mc_count > MC_FILTERBREAK
+ } else if (dev->mc.count > MC_FILTERBREAK
|| (dev->flags & IFF_ALLMULTI)) {
/* Too many to filter perfectly -- accept all multicasts. */
memset(mc_filter, 0xff, sizeof(mc_filter));
outb(2, ioaddr + RX_MODE); /* Use normal mode. */
- } else if (dev->mc_count == 0) {
+ } else if (dev->mc.count == 0) {
memset(mc_filter, 0x00, sizeof(mc_filter));
outb(1, ioaddr + RX_MODE); /* Ignore almost all multicasts. */
} else {
@@ -850,7 +850,7 @@ set_rx_mode(struct net_device *dev)
int i;
memset(mc_filter, 0, sizeof(mc_filter));
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
unsigned int bit =
ether_crc_le(ETH_ALEN, mclist->dmi_addr) >> 26;
--- wireless-testing.orig/drivers/net/atarilance.c 2009-04-23 00:20:40.000000000 +0200
+++ wireless-testing/drivers/net/atarilance.c 2009-06-13 12:29:34.000000000 +0200
@@ -1097,7 +1097,7 @@ static void set_multicast_list( struct n
REGA( CSR15 ) = 0x8000; /* Set promiscuous mode */
} else {
short multicast_table[4];
- int num_addrs = dev->mc_count;
+ int num_addrs = dev->mc.count;
int i;
/* We don't use the multicast table, but rely on upper-layer
* filtering. */
--- wireless-testing.orig/drivers/net/atl1c/atl1c_main.c 2009-04-16 02:16:35.000000000 +0200
+++ wireless-testing/drivers/net/atl1c/atl1c_main.c 2009-06-13 12:29:34.000000000 +0200
@@ -355,7 +355,7 @@ static void atl1c_set_multi(struct net_d
AT_WRITE_REG_ARRAY(hw, REG_RX_HASH_TABLE, 1, 0);
/* comoute mc addresses' hash value ,and put it into hash table */
- for (mc_ptr = netdev->mc_list; mc_ptr; mc_ptr = mc_ptr->next) {
+ for (mc_ptr = netdev->mc.list; mc_ptr; mc_ptr = mc_ptr->next) {
hash_value = atl1c_hash_mc_addr(hw, mc_ptr->dmi_addr);
atl1c_hash_set(hw, hash_value);
}
--- wireless-testing.orig/drivers/net/atl1e/atl1e_main.c 2009-06-07 21:32:31.000000000 +0200
+++ wireless-testing/drivers/net/atl1e/atl1e_main.c 2009-06-13 12:29:35.000000000 +0200
@@ -311,7 +311,7 @@ static void atl1e_set_multi(struct net_d
AT_WRITE_REG_ARRAY(hw, REG_RX_HASH_TABLE, 1, 0);
/* comoute mc addresses' hash value ,and put it into hash table */
- for (mc_ptr = netdev->mc_list; mc_ptr; mc_ptr = mc_ptr->next) {
+ for (mc_ptr = netdev->mc.list; mc_ptr; mc_ptr = mc_ptr->next) {
hash_value = atl1e_hash_mc_addr(hw, mc_ptr->dmi_addr);
atl1e_hash_set(hw, hash_value);
}
--- wireless-testing.orig/drivers/net/atlx/atl2.c 2009-04-09 10:00:10.000000000 +0200
+++ wireless-testing/drivers/net/atlx/atl2.c 2009-06-13 12:29:35.000000000 +0200
@@ -157,7 +157,7 @@ static void atl2_set_multi(struct net_de
ATL2_WRITE_REG_ARRAY(hw, REG_RX_HASH_TABLE, 1, 0);
/* comoute mc addresses' hash value ,and put it into hash table */
- for (mc_ptr = netdev->mc_list; mc_ptr; mc_ptr = mc_ptr->next) {
+ for (mc_ptr = netdev->mc.list; mc_ptr; mc_ptr = mc_ptr->next) {
hash_value = atl2_hash_mc_addr(hw, mc_ptr->dmi_addr);
atl2_hash_set(hw, hash_value);
}
--- wireless-testing.orig/drivers/net/atlx/atlx.c 2009-01-13 15:05:05.000000000 +0100
+++ wireless-testing/drivers/net/atlx/atlx.c 2009-06-13 12:29:35.000000000 +0200
@@ -144,7 +144,7 @@ static void atlx_set_multi(struct net_de
iowrite32(0, (hw->hw_addr + REG_RX_HASH_TABLE) + (1 << 2));
/* compute mc addresses' hash value ,and put it into hash table */
- for (mc_ptr = netdev->mc_list; mc_ptr; mc_ptr = mc_ptr->next) {
+ for (mc_ptr = netdev->mc.list; mc_ptr; mc_ptr = mc_ptr->next) {
hash_value = atlx_hash_mc_addr(hw, mc_ptr->dmi_addr);
atlx_hash_set(hw, hash_value);
}
--- wireless-testing.orig/drivers/net/atp.c 2009-01-13 15:05:05.000000000 +0100
+++ wireless-testing/drivers/net/atp.c 2009-06-13 12:29:35.000000000 +0200
@@ -859,7 +859,7 @@ static void set_rx_mode_8002(struct net_
struct net_local *lp = netdev_priv(dev);
long ioaddr = dev->base_addr;
- if (dev->mc_count > 0 || (dev->flags & (IFF_ALLMULTI|IFF_PROMISC)))
+ if (dev->mc.count > 0 || (dev->flags & (IFF_ALLMULTI|IFF_PROMISC)))
lp->addr_mode = CMR2h_PROMISC;
else
lp->addr_mode = CMR2h_Normal;
@@ -875,7 +875,7 @@ static void set_rx_mode_8012(struct net_
if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */
new_mode = CMR2h_PROMISC;
- } else if ((dev->mc_count > 1000) || (dev->flags & IFF_ALLMULTI)) {
+ } else if ((dev->mc.count > 1000) || (dev->flags & IFF_ALLMULTI)) {
/* Too many to filter perfectly -- accept all multicasts. */
memset(mc_filter, 0xff, sizeof(mc_filter));
new_mode = CMR2h_Normal;
@@ -883,7 +883,7 @@ static void set_rx_mode_8012(struct net_
struct dev_mc_list *mclist;
memset(mc_filter, 0, sizeof(mc_filter));
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next)
{
int filterbit = ether_crc_le(ETH_ALEN, mclist->dmi_addr) & 0x3f;
--- wireless-testing.orig/drivers/net/au1000_eth.c 2009-04-23 00:20:40.000000000 +0200
+++ wireless-testing/drivers/net/au1000_eth.c 2009-06-13 12:29:35.000000000 +0200
@@ -1014,7 +1014,7 @@ static void au1000_multicast_list(struct
if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */
aup->mac->control |= MAC_PROMISCUOUS;
} else if ((dev->flags & IFF_ALLMULTI) ||
- dev->mc_count > MULTICAST_FILTER_LIMIT) {
+ dev->mc.count > MULTICAST_FILTER_LIMIT) {
aup->mac->control |= MAC_PASS_ALL_MULTI;
aup->mac->control &= ~MAC_PROMISCUOUS;
printk(KERN_INFO "%s: Pass all multicast\n", dev->name);
@@ -1024,7 +1024,7 @@ static void au1000_multicast_list(struct
u32 mc_filter[2]; /* Multicast hash filter */
mc_filter[1] = mc_filter[0] = 0;
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
set_bit(ether_crc(ETH_ALEN, mclist->dmi_addr)>>26,
(long *)mc_filter);
--- wireless-testing.orig/drivers/net/b44.c 2009-04-09 10:00:10.000000000 +0200
+++ wireless-testing/drivers/net/b44.c 2009-06-13 12:29:35.000000000 +0200
@@ -1691,8 +1691,8 @@ static int __b44_load_mcast(struct b44 *
struct dev_mc_list *mclist;
int i, num_ents;
- num_ents = min_t(int, dev->mc_count, B44_MCAST_TABLE_SIZE);
- mclist = dev->mc_list;
+ num_ents = min_t(int, dev->mc.count, B44_MCAST_TABLE_SIZE);
+ mclist = dev->mc.list;
for (i = 0; mclist && i < num_ents; i++, mclist = mclist->next) {
__b44_cam_write(bp, mclist->dmi_addr, i + 1);
}
@@ -1716,7 +1716,7 @@ static void __b44_set_rx_mode(struct net
__b44_set_mac_addr(bp);
if ((dev->flags & IFF_ALLMULTI) ||
- (dev->mc_count > B44_MCAST_TABLE_SIZE))
+ (dev->mc.count > B44_MCAST_TABLE_SIZE))
val |= RXCONFIG_ALLMULTI;
else
i = __b44_load_mcast(bp, dev);
--- wireless-testing.orig/drivers/net/benet/be_main.c 2009-05-30 01:38:26.000000000 +0200
+++ wireless-testing/drivers/net/benet/be_main.c 2009-06-13 12:29:35.000000000 +0200
@@ -576,7 +576,7 @@ static void be_set_multicast_filter(stru
return;
}
- for (mc_ptr = netdev->mc_list; mc_ptr; mc_ptr = mc_ptr->next) {
+ for (mc_ptr = netdev->mc.list; mc_ptr; mc_ptr = mc_ptr->next) {
memcpy(&mac_addr[i][0], mc_ptr->dmi_addr, ETH_ALEN);
if (++i >= 32) {
be_cmd_mcast_mac_set(&adapter->ctrl,
--- wireless-testing.orig/drivers/net/bfin_mac.c 2009-06-07 21:32:31.000000000 +0200
+++ wireless-testing/drivers/net/bfin_mac.c 2009-06-13 12:29:35.000000000 +0200
@@ -863,14 +863,14 @@ static void bfin_mac_timeout(struct net_
static void bfin_mac_multicast_hash(struct net_device *dev)
{
u32 emac_hashhi, emac_hashlo;
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
char *addrs;
int i;
u32 crc;
emac_hashhi = emac_hashlo = 0;
- for (i = 0; i < dev->mc_count; i++) {
+ for (i = 0; i < dev->mc.count; i++) {
addrs = dmi->dmi_addr;
dmi = dmi->next;
@@ -913,7 +913,7 @@ static void bfin_mac_set_multicast_list(
sysctl = bfin_read_EMAC_OPMODE();
sysctl |= PAM;
bfin_write_EMAC_OPMODE(sysctl);
- } else if (dev->mc_count) {
+ } else if (dev->mc.count) {
/* set up multicast hash table */
sysctl = bfin_read_EMAC_OPMODE();
sysctl |= HM;
--- wireless-testing.orig/drivers/net/bmac.c 2009-04-09 10:00:11.000000000 +0200
+++ wireless-testing/drivers/net/bmac.c 2009-06-13 12:29:35.000000000 +0200
@@ -972,7 +972,7 @@ static void bmac_set_multicast(struct ne
{
struct dev_mc_list *dmi;
struct bmac_data *bp = netdev_priv(dev);
- int num_addrs = dev->mc_count;
+ int num_addrs = dev->mc.count;
unsigned short rx_cfg;
int i;
@@ -981,7 +981,7 @@ static void bmac_set_multicast(struct ne
XXDEBUG(("bmac: enter bmac_set_multicast, n_addrs=%d\n", num_addrs));
- if((dev->flags & IFF_ALLMULTI) || (dev->mc_count > 64)) {
+ if((dev->flags & IFF_ALLMULTI) || (dev->mc.count > 64)) {
for (i=0; i<4; i++) bp->hash_table_mask[i] = 0xffff;
bmac_update_hash_table_mask(dev, bp);
rx_cfg = bmac_rx_on(dev, 1, 0);
@@ -999,7 +999,7 @@ static void bmac_set_multicast(struct ne
rx_cfg = bmac_rx_on(dev, 0, 0);
XXDEBUG(("bmac: multi disabled, rx_cfg=%#08x\n", rx_cfg));
} else {
- for (dmi=dev->mc_list; dmi!=NULL; dmi=dmi->next)
+ for (dmi=dev->mc.list; dmi!=NULL; dmi=dmi->next)
bmac_addhash(bp, dmi->dmi_addr);
bmac_update_hash_table_mask(dev, bp);
rx_cfg = bmac_rx_on(dev, 1, 0);
@@ -1014,13 +1014,13 @@ static void bmac_set_multicast(struct ne
static void bmac_set_multicast(struct net_device *dev)
{
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
char *addrs;
int i;
unsigned short rx_cfg;
u32 crc;
- if((dev->flags & IFF_ALLMULTI) || (dev->mc_count > 64)) {
+ if((dev->flags & IFF_ALLMULTI) || (dev->mc.count > 64)) {
bmwrite(dev, BHASH0, 0xffff);
bmwrite(dev, BHASH1, 0xffff);
bmwrite(dev, BHASH2, 0xffff);
@@ -1038,7 +1038,7 @@ static void bmac_set_multicast(struct ne
for(i = 0; i < 4; i++) hash_table[i] = 0;
- for(i = 0; i < dev->mc_count; i++) {
+ for(i = 0; i < dev->mc.count; i++) {
addrs = dmi->dmi_addr;
dmi = dmi->next;
--- wireless-testing.orig/drivers/net/bnx2.c 2009-05-18 12:02:00.000000000 +0200
+++ wireless-testing/drivers/net/bnx2.c 2009-06-13 12:29:35.000000000 +0200
@@ -3349,7 +3349,7 @@ bnx2_set_rx_mode(struct net_device *dev)
memset(mc_filter, 0, 4 * NUM_MC_HASH_REGISTERS);
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
crc = ether_crc_le(ETH_ALEN, mclist->dmi_addr);
@@ -3368,15 +3368,15 @@ bnx2_set_rx_mode(struct net_device *dev)
}
uc_ptr = NULL;
- if (dev->uc_count > BNX2_MAX_UNICAST_ADDRESSES) {
+ if (dev->uc.count > BNX2_MAX_UNICAST_ADDRESSES) {
rx_mode |= BNX2_EMAC_RX_MODE_PROMISCUOUS;
sort_mode |= BNX2_RPM_SORT_USER0_PROM_EN |
BNX2_RPM_SORT_USER0_PROM_VLAN;
} else if (!(dev->flags & IFF_PROMISC)) {
- uc_ptr = dev->uc_list;
+ uc_ptr = dev->uc.list;
/* Add all entries into to the match filter list */
- for (i = 0; i < dev->uc_count; i++) {
+ for (i = 0; i < dev->uc.count; i++) {
bnx2_set_mac_addr(bp, uc_ptr->da_addr,
i + BNX2_START_UNICAST_ADDRESS_INDEX);
sort_mode |= (1 <<
--- wireless-testing.orig/drivers/net/bnx2x_main.c 2009-04-09 10:00:14.000000000 +0200
+++ wireless-testing/drivers/net/bnx2x_main.c 2009-06-13 12:29:35.000000000 +0200
@@ -10655,7 +10655,7 @@ static void bnx2x_set_rx_mode(struct net
rx_mode = BNX2X_RX_MODE_PROMISC;
else if ((dev->flags & IFF_ALLMULTI) ||
- ((dev->mc_count > BNX2X_MAX_MULTICAST) && CHIP_IS_E1(bp)))
+ ((dev->mc.count > BNX2X_MAX_MULTICAST) && CHIP_IS_E1(bp)))
rx_mode = BNX2X_RX_MODE_ALLMULTI;
else { /* some multicasts */
@@ -10665,8 +10665,8 @@ static void bnx2x_set_rx_mode(struct net
struct mac_configuration_cmd *config =
bnx2x_sp(bp, mcast_config);
- for (i = 0, mclist = dev->mc_list;
- mclist && (i < dev->mc_count);
+ for (i = 0, mclist = dev->mc.list;
+ mclist && (i < dev->mc.count);
i++, mclist = mclist->next) {
config->config_table[i].
@@ -10733,8 +10733,8 @@ static void bnx2x_set_rx_mode(struct net
memset(mc_filter, 0, 4 * MC_HASH_SIZE);
- for (i = 0, mclist = dev->mc_list;
- mclist && (i < dev->mc_count);
+ for (i = 0, mclist = dev->mc.list;
+ mclist && (i < dev->mc.count);
i++, mclist = mclist->next) {
DP(NETIF_MSG_IFUP, "Adding mcast MAC: %pM\n",
--- wireless-testing.orig/drivers/net/bonding/bond_main.c 2009-05-18 12:02:00.000000000 +0200
+++ wireless-testing/drivers/net/bonding/bond_main.c 2009-06-13 12:29:35.000000000 +0200
@@ -872,7 +872,7 @@ static void bond_resend_igmp_join_reques
rcu_read_lock();
in_dev = __in_dev_get_rcu(bond->dev);
if (in_dev) {
- for (im = in_dev->mc_list; im; im = im->next) {
+ for (im = in_dev->mc.list; im; im = im->next) {
ip_mc_rejoin_group(im);
}
}
@@ -931,7 +931,7 @@ static void bond_mc_list_flush(struct ne
struct bonding *bond = netdev_priv(bond_dev);
struct dev_mc_list *dmi;
- for (dmi = bond_dev->mc_list; dmi; dmi = dmi->next) {
+ for (dmi = bond_dev->mc.list; dmi; dmi = dmi->next) {
dev_mc_delete(slave_dev, dmi->dmi_addr, dmi->dmi_addrlen, 0);
}
@@ -970,7 +970,7 @@ static void bond_mc_swap(struct bonding
dev_set_allmulti(old_active->dev, -1);
}
- for (dmi = bond->dev->mc_list; dmi; dmi = dmi->next) {
+ for (dmi = bond->dev->mc.list; dmi; dmi = dmi->next) {
dev_mc_delete(old_active->dev, dmi->dmi_addr, dmi->dmi_addrlen, 0);
}
}
@@ -985,7 +985,7 @@ static void bond_mc_swap(struct bonding
dev_set_allmulti(new_active->dev, 1);
}
- for (dmi = bond->dev->mc_list; dmi; dmi = dmi->next) {
+ for (dmi = bond->dev->mc.list; dmi; dmi = dmi->next) {
dev_mc_add(new_active->dev, dmi->dmi_addr, dmi->dmi_addrlen, 0);
}
bond_resend_igmp_join_requests(bond);
@@ -1578,7 +1578,7 @@ int bond_enslave(struct net_device *bond
netif_addr_lock_bh(bond_dev);
/* upload master's mc_list to new slave */
- for (dmi = bond_dev->mc_list; dmi; dmi = dmi->next) {
+ for (dmi = bond_dev->mc.list; dmi; dmi = dmi->next) {
dev_mc_add (slave_dev, dmi->dmi_addr, dmi->dmi_addrlen, 0);
}
netif_addr_unlock_bh(bond_dev);
@@ -4067,7 +4067,7 @@ static void bond_set_multicast_list(stru
bond->flags = bond_dev->flags;
/* looking for addresses to add to slaves' mc list */
- for (dmi = bond_dev->mc_list; dmi; dmi = dmi->next) {
+ for (dmi = bond_dev->mc.list; dmi; dmi = dmi->next) {
if (!bond_mc_list_find_dmi(dmi, bond->mc_list)) {
bond_mc_add(bond, dmi->dmi_addr, dmi->dmi_addrlen);
}
@@ -4075,14 +4075,14 @@ static void bond_set_multicast_list(stru
/* looking for addresses to delete from slaves' list */
for (dmi = bond->mc_list; dmi; dmi = dmi->next) {
- if (!bond_mc_list_find_dmi(dmi, bond_dev->mc_list)) {
+ if (!bond_mc_list_find_dmi(dmi, bond_dev->mc.list)) {
bond_mc_delete(bond, dmi->dmi_addr, dmi->dmi_addrlen);
}
}
/* save master's multicast list */
bond_mc_list_destroy(bond);
- bond_mc_list_copy(bond_dev->mc_list, bond, GFP_ATOMIC);
+ bond_mc_list_copy(bond_dev->mc.list, bond, GFP_ATOMIC);
read_unlock(&bond->lock);
}
--- wireless-testing.orig/drivers/net/cassini.c 2009-04-09 10:00:14.000000000 +0200
+++ wireless-testing/drivers/net/cassini.c 2009-06-13 12:29:36.000000000 +0200
@@ -3016,7 +3016,7 @@ static u32 cas_setup_multicast(struct ca
} else {
u16 hash_table[16];
u32 crc;
- struct dev_mc_list *dmi = cp->dev->mc_list;
+ struct dev_mc_list *dmi = cp->dev->mc.list;
int i;
/* use the alternate mac address registers for the
--- wireless-testing.orig/drivers/net/chelsio/common.h 2008-12-19 00:28:05.000000000 +0100
+++ wireless-testing/drivers/net/chelsio/common.h 2009-06-13 12:29:36.000000000 +0200
@@ -97,13 +97,13 @@ struct t1_rx_mode {
#define t1_rx_mode_promisc(rm) (rm->dev->flags & IFF_PROMISC)
#define t1_rx_mode_allmulti(rm) (rm->dev->flags & IFF_ALLMULTI)
-#define t1_rx_mode_mc_cnt(rm) (rm->dev->mc_count)
+#define t1_rx_mode_mc_cnt(rm) (rm->dev->mc.count)
static inline u8 *t1_get_next_mcaddr(struct t1_rx_mode *rm)
{
u8 *addr = NULL;
- if (rm->idx++ < rm->dev->mc_count) {
+ if (rm->idx++ < rm->dev->mc.count) {
addr = rm->list->dmi_addr;
rm->list = rm->list->next;
}
--- wireless-testing.orig/drivers/net/chelsio/cxgb2.c 2009-04-09 10:00:14.000000000 +0200
+++ wireless-testing/drivers/net/chelsio/cxgb2.c 2009-06-13 12:29:36.000000000 +0200
@@ -126,7 +126,7 @@ static void t1_set_rxmode(struct net_dev
rm.dev = dev;
rm.idx = 0;
- rm.list = dev->mc_list;
+ rm.list = dev->mc.list;
mac->ops->set_rx_mode(mac, &rm);
}
--- wireless-testing.orig/drivers/net/cpmac.c 2009-04-09 10:00:14.000000000 +0200
+++ wireless-testing/drivers/net/cpmac.c 2009-06-13 12:29:36.000000000 +0200
@@ -340,7 +340,7 @@ static void cpmac_set_multicast_list(str
* cpmac uses some strange mac address hashing
* (not crc32)
*/
- for (i = 0, iter = dev->mc_list; i < dev->mc_count;
+ for (i = 0, iter = dev->mc.list; i < dev->mc.count;
i++, iter = iter->next) {
bit = 0;
tmp = iter->dmi_addr[0];
--- wireless-testing.orig/drivers/net/cris/eth_v10.c 2009-04-23 00:20:40.000000000 +0200
+++ wireless-testing/drivers/net/cris/eth_v10.c 2009-06-13 12:29:36.000000000 +0200
@@ -1550,7 +1550,7 @@ static void
set_multicast_list(struct net_device *dev)
{
struct net_local *lp = netdev_priv(dev);
- int num_addr = dev->mc_count;
+ int num_addr = dev->mc.count;
unsigned long int lo_bits;
unsigned long int hi_bits;
@@ -1582,7 +1582,7 @@ set_multicast_list(struct net_device *de
} else {
/* MC mode, receive normal and MC packets */
char hash_ix;
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
int i;
char *baddr;
--- wireless-testing.orig/drivers/net/cs89x0.c 2009-04-09 10:00:14.000000000 +0200
+++ wireless-testing/drivers/net/cs89x0.c 2009-06-13 12:29:36.000000000 +0200
@@ -1788,7 +1788,7 @@ static void set_multicast_list(struct ne
{
lp->rx_mode = RX_ALL_ACCEPT;
}
- else if((dev->flags&IFF_ALLMULTI)||dev->mc_list)
+ else if((dev->flags&IFF_ALLMULTI)||dev->mc.list)
{
/* The multicast-accept list is initialized to accept-all, and we
rely on higher-level filtering for now. */
--- wireless-testing.orig/drivers/net/cxgb3/common.h 2009-04-09 10:00:14.000000000 +0200
+++ wireless-testing/drivers/net/cxgb3/common.h 2009-06-13 12:29:36.000000000 +0200
@@ -85,7 +85,7 @@ static inline u8 *t3_get_next_mcaddr(str
{
u8 *addr = NULL;
- if (rm->mclist && rm->idx < rm->dev->mc_count) {
+ if (rm->mclist && rm->idx < rm->dev->mc.count) {
addr = rm->mclist->dmi_addr;
rm->mclist = rm->mclist->next;
rm->idx++;
--- wireless-testing.orig/drivers/net/cxgb3/cxgb3_main.c 2009-06-07 21:32:31.000000000 +0200
+++ wireless-testing/drivers/net/cxgb3/cxgb3_main.c 2009-06-13 12:29:36.000000000 +0200
@@ -297,7 +297,7 @@ static void cxgb_set_rxmode(struct net_d
struct t3_rx_mode rm;
struct port_info *pi = netdev_priv(dev);
- init_rx_mode(&rm, dev, dev->mc_list);
+ init_rx_mode(&rm, dev, dev->mc.list);
t3_mac_set_rx_mode(&pi->mac, &rm);
}
@@ -313,7 +313,7 @@ static void link_start(struct net_device
struct port_info *pi = netdev_priv(dev);
struct cmac *mac = &pi->mac;
- init_rx_mode(&rm, dev, dev->mc_list);
+ init_rx_mode(&rm, dev, dev->mc.list);
t3_mac_reset(mac);
t3_mac_set_mtu(mac, dev->mtu);
t3_mac_set_address(mac, 0, dev->dev_addr);
--- wireless-testing.orig/drivers/net/de620.c 2009-01-13 15:05:05.000000000 +0100
+++ wireless-testing/drivers/net/de620.c 2009-06-13 12:29:36.000000000 +0200
@@ -486,7 +486,7 @@ static int de620_close(struct net_device
static void de620_set_multicast_list(struct net_device *dev)
{
- if (dev->mc_count || dev->flags&(IFF_ALLMULTI|IFF_PROMISC))
+ if (dev->mc.count || dev->flags&(IFF_ALLMULTI|IFF_PROMISC))
{ /* Enable promiscuous mode */
de620_set_register(dev, W_TCR, (TCR_DEF & ~RXPBM) | RXALL);
}
--- wireless-testing.orig/drivers/net/declance.c 2009-04-23 00:20:40.000000000 +0200
+++ wireless-testing/drivers/net/declance.c 2009-06-13 12:29:36.000000000 +0200
@@ -935,7 +935,7 @@ static void lance_load_multicast(struct
{
struct lance_private *lp = netdev_priv(dev);
volatile u16 *ib = (volatile u16 *)dev->mem_start;
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
char *addrs;
int i;
u32 crc;
@@ -955,7 +955,7 @@ static void lance_load_multicast(struct
*lib_ptr(ib, filter[3], lp->type) = 0;
/* Add addresses */
- for (i = 0; i < dev->mc_count; i++) {
+ for (i = 0; i < dev->mc.count; i++) {
addrs = dmi->dmi_addr;
dmi = dmi->next;
--- wireless-testing.orig/drivers/net/defxx.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/defxx.c 2009-06-13 12:29:36.000000000 +0200
@@ -2229,7 +2229,7 @@ static void dfx_ctl_set_multicast_list(s
* perfect filtering will be used.
*/
- if (dev->mc_count > (PI_CMD_ADDR_FILTER_K_SIZE - bp->uc_count))
+ if (dev->mc.count > (PI_CMD_ADDR_FILTER_K_SIZE - bp->uc_count))
{
bp->group_prom = PI_FSTATE_K_PASS; /* Enable LLC group prom mode */
bp->mc_count = 0; /* Don't add mc addrs to CAM */
@@ -2237,12 +2237,12 @@ static void dfx_ctl_set_multicast_list(s
else
{
bp->group_prom = PI_FSTATE_K_BLOCK; /* Disable LLC group prom mode */
- bp->mc_count = dev->mc_count; /* Add mc addrs to CAM */
+ bp->mc_count = dev->mc.count; /* Add mc addrs to CAM */
}
/* Copy addresses to multicast address table, then update adapter CAM */
- dmi = dev->mc_list; /* point to first multicast addr */
+ dmi = dev->mc.list; /* point to first multicast addr */
for (i=0; i < bp->mc_count; i++)
{
memcpy(&bp->mc_table[i*FDDI_K_ALEN], dmi->dmi_addr, FDDI_K_ALEN);
--- wireless-testing.orig/drivers/net/depca.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/depca.c 2009-06-13 12:29:36.000000000 +0200
@@ -1269,7 +1269,7 @@ static void set_multicast_list(struct ne
static void SetMulticastFilter(struct net_device *dev)
{
struct depca_private *lp = netdev_priv(dev);
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
char *addrs;
int i, j, bit, byte;
u16 hashcode;
@@ -1284,7 +1284,7 @@ static void SetMulticastFilter(struct ne
lp->init_block.mcast_table[i] = 0;
}
/* Add multicast addresses */
- for (i = 0; i < dev->mc_count; i++) { /* for each address in the list */
+ for (i = 0; i < dev->mc.count; i++) { /* for each address in the list */
addrs = dmi->dmi_addr;
dmi = dmi->next;
if ((*addrs & 0x01) == 1) { /* multicast address? */
--- wireless-testing.orig/drivers/net/dl2k.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/dl2k.c 2009-06-13 12:29:37.000000000 +0200
@@ -1133,17 +1133,17 @@ set_multicast (struct net_device *dev)
/* Receive all frames promiscuously. */
rx_mode = ReceiveAllFrames;
} else if ((dev->flags & IFF_ALLMULTI) ||
- (dev->mc_count > multicast_filter_limit)) {
+ (dev->mc.count > multicast_filter_limit)) {
/* Receive broadcast and multicast frames */
rx_mode = ReceiveBroadcast | ReceiveMulticast | ReceiveUnicast;
- } else if (dev->mc_count > 0) {
+ } else if (dev->mc.count > 0) {
int i;
struct dev_mc_list *mclist;
/* Receive broadcast frames and multicast frames filtering
by Hashtable */
rx_mode =
ReceiveBroadcast | ReceiveMulticastHash | ReceiveUnicast;
- for (i=0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i=0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist=mclist->next)
{
int bit, index = 0;
--- wireless-testing.orig/drivers/net/dm9000.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/dm9000.c 2009-06-13 12:29:37.000000000 +0200
@@ -627,8 +627,8 @@ static void
dm9000_hash_table(struct net_device *dev)
{
board_info_t *db = netdev_priv(dev);
- struct dev_mc_list *mcptr = dev->mc_list;
- int mc_cnt = dev->mc_count;
+ struct dev_mc_list *mcptr = dev->mc.list;
+ int mc_cnt = dev->mc.count;
int i, oft;
u32 hash_val;
u16 hash_table[4];
--- wireless-testing.orig/drivers/net/e100.c 2009-04-30 23:07:17.000000000 +0200
+++ wireless-testing/drivers/net/e100.c 2009-06-13 12:29:37.000000000 +0200
@@ -1375,8 +1375,8 @@ static int e100_hw_init(struct nic *nic)
static void e100_multi(struct nic *nic, struct cb *cb, struct sk_buff *skb)
{
struct net_device *netdev = nic->netdev;
- struct dev_mc_list *list = netdev->mc_list;
- u16 i, count = min(netdev->mc_count, E100_MAX_MULTICAST_ADDRS);
+ struct dev_mc_list *list = netdev->mc.list;
+ u16 i, count = min(netdev->mc.count, E100_MAX_MULTICAST_ADDRS);
cb->command = cpu_to_le16(cb_multi);
cb->u.multi.count = cpu_to_le16(count * ETH_ALEN);
@@ -1390,7 +1390,7 @@ static void e100_set_multicast_list(stru
struct nic *nic = netdev_priv(netdev);
DPRINTK(HW, DEBUG, "mc_count=%d, flags=0x%04X\n",
- netdev->mc_count, netdev->flags);
+ netdev->mc.count, netdev->flags);
if (netdev->flags & IFF_PROMISC)
nic->flags |= promiscuous;
@@ -1398,7 +1398,7 @@ static void e100_set_multicast_list(stru
nic->flags &= ~promiscuous;
if (netdev->flags & IFF_ALLMULTI ||
- netdev->mc_count > E100_MAX_MULTICAST_ADDRS)
+ netdev->mc.count > E100_MAX_MULTICAST_ADDRS)
nic->flags |= multicast_all;
else
nic->flags &= ~multicast_all;
--- wireless-testing.orig/drivers/net/e1000/e1000_main.c 2009-06-07 21:32:31.000000000 +0200
+++ wireless-testing/drivers/net/e1000/e1000_main.c 2009-06-13 12:29:37.000000000 +0200
@@ -2367,11 +2367,11 @@ static void e1000_set_rx_mode(struct net
}
uc_ptr = NULL;
- if (netdev->uc_count > rar_entries - 1) {
+ if (netdev->uc.count > rar_entries - 1) {
rctl |= E1000_RCTL_UPE;
} else if (!(netdev->flags & IFF_PROMISC)) {
rctl &= ~E1000_RCTL_UPE;
- uc_ptr = netdev->uc_list;
+ uc_ptr = netdev->uc.list;
}
ew32(RCTL, rctl);
@@ -2389,7 +2389,7 @@ static void e1000_set_rx_mode(struct net
* if there are not 14 addresses, go ahead and clear the filters
* -- with 82571 controllers only 0-13 entries are filled here
*/
- mc_ptr = netdev->mc_list;
+ mc_ptr = netdev->mc.list;
for (i = 1; i < rar_entries; i++) {
if (uc_ptr) {
--- wireless-testing.orig/drivers/net/e1000e/netdev.c 2009-04-30 23:07:17.000000000 +0200
+++ wireless-testing/drivers/net/e1000e/netdev.c 2009-06-13 12:29:37.000000000 +0200
@@ -2572,15 +2572,15 @@ static void e1000_set_multi(struct net_d
ew32(RCTL, rctl);
- if (netdev->mc_count) {
- mta_list = kmalloc(netdev->mc_count * 6, GFP_ATOMIC);
+ if (netdev->mc.count) {
+ mta_list = kmalloc(netdev->mc.count * 6, GFP_ATOMIC);
if (!mta_list)
return;
/* prepare a packed array of only addresses. */
- mc_ptr = netdev->mc_list;
+ mc_ptr = netdev->mc.list;
- for (i = 0; i < netdev->mc_count; i++) {
+ for (i = 0; i < netdev->mc.count; i++) {
if (!mc_ptr)
break;
memcpy(mta_list + (i*ETH_ALEN), mc_ptr->dmi_addr,
--- wireless-testing.orig/drivers/net/eepro.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/eepro.c 2009-06-13 12:29:37.000000000 +0200
@@ -1285,9 +1285,9 @@ set_multicast_list(struct net_device *de
struct eepro_local *lp = netdev_priv(dev);
short ioaddr = dev->base_addr;
unsigned short mode;
- struct dev_mc_list *dmi=dev->mc_list;
+ struct dev_mc_list *dmi=dev->mc.list;
- if (dev->flags&(IFF_ALLMULTI|IFF_PROMISC) || dev->mc_count > 63)
+ if (dev->flags&(IFF_ALLMULTI|IFF_PROMISC) || dev->mc.count > 63)
{
eepro_sw2bank2(ioaddr); /* be CAREFUL, BANK 2 now */
mode = inb(ioaddr + REG2);
@@ -1297,7 +1297,7 @@ set_multicast_list(struct net_device *de
eepro_sw2bank0(ioaddr); /* Return to BANK 0 now */
}
- else if (dev->mc_count==0 )
+ else if (dev->mc.count==0 )
{
eepro_sw2bank2(ioaddr); /* be CAREFUL, BANK 2 now */
mode = inb(ioaddr + REG2);
@@ -1327,9 +1327,9 @@ set_multicast_list(struct net_device *de
outw(MC_SETUP, ioaddr + IO_PORT);
outw(0, ioaddr + IO_PORT);
outw(0, ioaddr + IO_PORT);
- outw(6*(dev->mc_count + 1), ioaddr + IO_PORT);
+ outw(6*(dev->mc.count + 1), ioaddr + IO_PORT);
- for (i = 0; i < dev->mc_count; i++)
+ for (i = 0; i < dev->mc.count; i++)
{
eaddrs=(unsigned short *)dmi->dmi_addr;
dmi=dmi->next;
@@ -1346,7 +1346,7 @@ set_multicast_list(struct net_device *de
outb(MC_SETUP, ioaddr);
/* Update the transmit queue */
- i = lp->tx_end + XMT_HEADER + 6*(dev->mc_count + 1);
+ i = lp->tx_end + XMT_HEADER + 6*(dev->mc.count + 1);
if (lp->tx_start != lp->tx_end)
{
@@ -1378,8 +1378,8 @@ set_multicast_list(struct net_device *de
break;
} else if ((i & 0x0f) == 0x03) { /* MC-Done */
printk(KERN_DEBUG "%s: set Rx mode to %d address%s.\n",
- dev->name, dev->mc_count,
- dev->mc_count > 1 ? "es":"");
+ dev->name, dev->mc.count,
+ dev->mc.count > 1 ? "es":"");
break;
}
}
--- wireless-testing.orig/drivers/net/eexpress.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/eexpress.c 2009-06-13 12:29:37.000000000 +0200
@@ -1577,7 +1577,7 @@ static void eexp_setup_filter(struct net
{
struct dev_mc_list *dmi;
unsigned short ioaddr = dev->base_addr;
- int count = dev->mc_count;
+ int count = dev->mc.count;
int i;
if (count > 8) {
printk(KERN_INFO "%s: too many multicast addresses (%d)\n",
@@ -1587,7 +1587,7 @@ static void eexp_setup_filter(struct net
outw(CONF_NR_MULTICAST & ~31, ioaddr+SM_PTR);
outw(6*count, ioaddr+SHADOW(CONF_NR_MULTICAST));
- for (i = 0, dmi = dev->mc_list; i < count; i++, dmi = dmi->next) {
+ for (i = 0, dmi = dev->mc.list; i < count; i++, dmi = dmi->next) {
unsigned short *data;
if (!dmi) {
printk(KERN_INFO "%s: too few multicast addresses\n", dev->name);
@@ -1626,9 +1626,9 @@ eexp_set_multicast(struct net_device *de
}
if (!(dev->flags & IFF_PROMISC)) {
eexp_setup_filter(dev);
- if (lp->old_mc_count != dev->mc_count) {
+ if (lp->old_mc_count != dev->mc.count) {
kick = 1;
- lp->old_mc_count = dev->mc_count;
+ lp->old_mc_count = dev->mc.count;
}
}
if (kick) {
--- wireless-testing.orig/drivers/net/ehea/ehea_main.c 2009-05-11 21:32:39.000000000 +0200
+++ wireless-testing/drivers/net/ehea/ehea_main.c 2009-06-13 12:29:37.000000000 +0200
@@ -1977,7 +1977,7 @@ static void ehea_set_multicast_list(stru
}
ehea_allmulti(dev, 0);
- if (dev->mc_count) {
+ if (dev->mc.count) {
ret = ehea_drop_multicast_list(dev);
if (ret) {
/* Dropping the current multicast list failed.
@@ -1986,14 +1986,14 @@ static void ehea_set_multicast_list(stru
ehea_allmulti(dev, 1);
}
- if (dev->mc_count > port->adapter->max_mc_mac) {
+ if (dev->mc.count > port->adapter->max_mc_mac) {
ehea_info("Mcast registration limit reached (0x%llx). "
"Use ALLMULTI!",
port->adapter->max_mc_mac);
goto out;
}
- for (i = 0, k_mcl_entry = dev->mc_list; i < dev->mc_count; i++,
+ for (i = 0, k_mcl_entry = dev->mc.list; i < dev->mc.count; i++,
k_mcl_entry = k_mcl_entry->next)
ehea_add_multicast_entry(port, k_mcl_entry->dmi_addr);
--- wireless-testing.orig/drivers/net/enc28j60.c 2009-01-13 15:05:06.000000000 +0100
+++ wireless-testing/drivers/net/enc28j60.c 2009-06-13 12:29:38.000000000 +0200
@@ -1412,7 +1412,7 @@ static void enc28j60_set_multicast_list(
if (netif_msg_link(priv))
dev_info(&dev->dev, "promiscuous mode\n");
priv->rxfilter = RXFILTER_PROMISC;
- } else if ((dev->flags & IFF_ALLMULTI) || dev->mc_count) {
+ } else if ((dev->flags & IFF_ALLMULTI) || dev->mc.count) {
if (netif_msg_link(priv))
dev_info(&dev->dev, "%smulticast mode\n",
(dev->flags & IFF_ALLMULTI) ? "all-" : "");
--- wireless-testing.orig/drivers/net/enic/enic_main.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/enic/enic_main.c 2009-06-13 12:29:38.000000000 +0200
@@ -713,15 +713,15 @@ static int enic_set_mac_addr(struct net_
static void enic_set_multicast_list(struct net_device *netdev)
{
struct enic *enic = netdev_priv(netdev);
- struct dev_mc_list *list = netdev->mc_list;
+ struct dev_mc_list *list = netdev->mc.list;
int directed = 1;
int multicast = (netdev->flags & IFF_MULTICAST) ? 1 : 0;
int broadcast = (netdev->flags & IFF_BROADCAST) ? 1 : 0;
int promisc = (netdev->flags & IFF_PROMISC) ? 1 : 0;
int allmulti = (netdev->flags & IFF_ALLMULTI) ||
- (netdev->mc_count > ENIC_MULTICAST_PERFECT_FILTERS);
+ (netdev->mc.count > ENIC_MULTICAST_PERFECT_FILTERS);
u8 mc_addr[ENIC_MULTICAST_PERFECT_FILTERS][ETH_ALEN];
- unsigned int mc_count = netdev->mc_count;
+ unsigned int mc_count = netdev->mc.count;
unsigned int i, j;
if (mc_count > ENIC_MULTICAST_PERFECT_FILTERS)
--- wireless-testing.orig/drivers/net/epic100.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/epic100.c 2009-06-13 12:29:38.000000000 +0200
@@ -1390,20 +1390,20 @@ static void set_rx_mode(struct net_devic
outl(0x002C, ioaddr + RxCtrl);
/* Unconditionally log net taps. */
memset(mc_filter, 0xff, sizeof(mc_filter));
- } else if ((dev->mc_count > 0) || (dev->flags & IFF_ALLMULTI)) {
+ } else if ((dev->mc.count > 0) || (dev->flags & IFF_ALLMULTI)) {
/* There is apparently a chip bug, so the multicast filter
is never enabled. */
/* Too many to filter perfectly -- accept all multicasts. */
memset(mc_filter, 0xff, sizeof(mc_filter));
outl(0x000C, ioaddr + RxCtrl);
- } else if (dev->mc_count == 0) {
+ } else if (dev->mc.count == 0) {
outl(0x0004, ioaddr + RxCtrl);
return;
} else { /* Never executed, for now. */
struct dev_mc_list *mclist;
memset(mc_filter, 0, sizeof(mc_filter));
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
unsigned int bit_nr =
ether_crc_le(ETH_ALEN, mclist->dmi_addr) & 0x3f;
--- wireless-testing.orig/drivers/net/eth16i.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/eth16i.c 2009-06-13 12:29:38.000000000 +0200
@@ -1359,7 +1359,7 @@ static void eth16i_multicast(struct net_
{
int ioaddr = dev->base_addr;
- if(dev->mc_count || dev->flags&(IFF_ALLMULTI|IFF_PROMISC))
+ if(dev->mc.count || dev->flags&(IFF_ALLMULTI|IFF_PROMISC))
{
outb(3, ioaddr + RECEIVE_MODE_REG);
} else {
--- wireless-testing.orig/drivers/net/ethoc.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/ethoc.c 2009-06-13 12:29:38.000000000 +0200
@@ -772,7 +772,7 @@ static void ethoc_set_multicast_list(str
hash[0] = 0xffffffff;
hash[1] = 0xffffffff;
} else {
- for (mc = dev->mc_list; mc; mc = mc->next) {
+ for (mc = dev->mc.list; mc; mc = mc->next) {
u32 crc = ether_crc(mc->dmi_addrlen, mc->dmi_addr);
int bit = (crc >> 26) & 0x3f;
hash[bit >> 5] |= 1 << (bit & 0x1f);
--- wireless-testing.orig/drivers/net/ewrk3.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/ewrk3.c 2009-06-13 12:29:38.000000000 +0200
@@ -1168,7 +1168,7 @@ static void set_multicast_list(struct ne
static void SetMulticastFilter(struct net_device *dev)
{
struct ewrk3_private *lp = netdev_priv(dev);
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
u_long iobase = dev->base_addr;
int i;
char *addrs, bit, byte;
@@ -1212,7 +1212,7 @@ static void SetMulticastFilter(struct ne
}
/* Update table */
- for (i = 0; i < dev->mc_count; i++) { /* for each address in the list */
+ for (i = 0; i < dev->mc.count; i++) { /* for each address in the list */
addrs = dmi->dmi_addr;
dmi = dmi->next;
if ((*addrs & 0x01) == 1) { /* multicast address? */
--- wireless-testing.orig/drivers/net/fealnx.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/fealnx.c 2009-06-13 12:29:38.000000000 +0200
@@ -1782,7 +1782,7 @@ static void __set_rx_mode(struct net_dev
if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */
memset(mc_filter, 0xff, sizeof(mc_filter));
rx_mode = CR_W_PROM | CR_W_AB | CR_W_AM;
- } else if ((dev->mc_count > multicast_filter_limit)
+ } else if ((dev->mc.count > multicast_filter_limit)
|| (dev->flags & IFF_ALLMULTI)) {
/* Too many to match, or accept all multicasts. */
memset(mc_filter, 0xff, sizeof(mc_filter));
@@ -1792,7 +1792,7 @@ static void __set_rx_mode(struct net_dev
int i;
memset(mc_filter, 0, sizeof(mc_filter));
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
unsigned int bit;
bit = (ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26) ^ 0x3F;
--- wireless-testing.orig/drivers/net/fec.c 2009-04-16 02:16:35.000000000 +0200
+++ wireless-testing/drivers/net/fec.c 2009-06-13 12:29:38.000000000 +0200
@@ -1610,9 +1610,9 @@ static void set_multicast_list(struct ne
ep->fec_grp_hash_table_high = 0;
ep->fec_grp_hash_table_low = 0;
- dmi = dev->mc_list;
+ dmi = dev->mc.list;
- for (j = 0; j < dev->mc_count; j++, dmi = dmi->next)
+ for (j = 0; j < dev->mc.count; j++, dmi = dmi->next)
{
/* Only support group multicast for now.
*/
--- wireless-testing.orig/drivers/net/fec_mpc52xx.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/fec_mpc52xx.c 2009-06-13 12:29:38.000000000 +0200
@@ -635,8 +635,8 @@ static void mpc52xx_fec_set_multicast_li
u32 gaddr1 = 0x00000000;
u32 gaddr2 = 0x00000000;
- dmi = dev->mc_list;
- for (i=0; i<dev->mc_count; i++) {
+ dmi = dev->mc.list;
+ for (i=0; i<dev->mc.count; i++) {
crc = ether_crc_le(6, dmi->dmi_addr) >> 26;
if (crc >= 32)
gaddr1 |= 1 << (crc-32);
--- wireless-testing.orig/drivers/net/forcedeth.c 2009-06-07 21:32:31.000000000 +0200
+++ wireless-testing/drivers/net/forcedeth.c 2009-06-13 12:29:38.000000000 +0200
@@ -3077,7 +3077,7 @@ static void nv_set_multicast(struct net_
} else {
pff |= NVREG_PFF_MYADDR;
- if (dev->flags & IFF_ALLMULTI || dev->mc_list) {
+ if (dev->flags & IFF_ALLMULTI || dev->mc.list) {
u32 alwaysOff[2];
u32 alwaysOn[2];
@@ -3087,7 +3087,7 @@ static void nv_set_multicast(struct net_
} else {
struct dev_mc_list *walk;
- walk = dev->mc_list;
+ walk = dev->mc.list;
while (walk != NULL) {
u32 a, b;
a = le32_to_cpu(*(__le32 *) walk->dmi_addr);
--- wireless-testing.orig/drivers/net/fs_enet/mac-fcc.c 2008-12-19 00:28:05.000000000 +0100
+++ wireless-testing/drivers/net/fs_enet/mac-fcc.c 2009-06-13 12:29:38.000000000 +0200
@@ -218,7 +218,7 @@ static void set_multicast_finish(struct
/* if all multi or too many multicasts; just enable all */
if ((dev->flags & IFF_ALLMULTI) != 0 ||
- dev->mc_count > FCC_MAX_MULTICAST_ADDRS) {
+ dev->mc.count > FCC_MAX_MULTICAST_ADDRS) {
W32(ep, fen_gaddrh, 0xffffffff);
W32(ep, fen_gaddrl, 0xffffffff);
@@ -235,7 +235,7 @@ static void set_multicast_list(struct ne
if ((dev->flags & IFF_PROMISC) == 0) {
set_multicast_start(dev);
- for (pmc = dev->mc_list; pmc != NULL; pmc = pmc->next)
+ for (pmc = dev->mc.list; pmc != NULL; pmc = pmc->next)
set_multicast_one(dev, pmc->dmi_addr);
set_multicast_finish(dev);
} else
--- wireless-testing.orig/drivers/net/fs_enet/mac-fec.c 2008-12-19 00:28:05.000000000 +0100
+++ wireless-testing/drivers/net/fs_enet/mac-fec.c 2009-06-13 12:29:38.000000000 +0200
@@ -220,7 +220,7 @@ static void set_multicast_finish(struct
/* if all multi or too many multicasts; just enable all */
if ((dev->flags & IFF_ALLMULTI) != 0 ||
- dev->mc_count > FEC_MAX_MULTICAST_ADDRS) {
+ dev->mc.count > FEC_MAX_MULTICAST_ADDRS) {
fep->fec.hthi = 0xffffffffU;
fep->fec.htlo = 0xffffffffU;
}
@@ -236,7 +236,7 @@ static void set_multicast_list(struct ne
if ((dev->flags & IFF_PROMISC) == 0) {
set_multicast_start(dev);
- for (pmc = dev->mc_list; pmc != NULL; pmc = pmc->next)
+ for (pmc = dev->mc.list; pmc != NULL; pmc = pmc->next)
set_multicast_one(dev, pmc->dmi_addr);
set_multicast_finish(dev);
} else
--- wireless-testing.orig/drivers/net/fs_enet/mac-scc.c 2008-12-19 00:28:05.000000000 +0100
+++ wireless-testing/drivers/net/fs_enet/mac-scc.c 2009-06-13 12:29:38.000000000 +0200
@@ -213,7 +213,7 @@ static void set_multicast_finish(struct
/* if all multi or too many multicasts; just enable all */
if ((dev->flags & IFF_ALLMULTI) != 0 ||
- dev->mc_count > SCC_MAX_MULTICAST_ADDRS) {
+ dev->mc.count > SCC_MAX_MULTICAST_ADDRS) {
W16(ep, sen_gaddr1, 0xffff);
W16(ep, sen_gaddr2, 0xffff);
@@ -228,7 +228,7 @@ static void set_multicast_list(struct ne
if ((dev->flags & IFF_PROMISC) == 0) {
set_multicast_start(dev);
- for (pmc = dev->mc_list; pmc != NULL; pmc = pmc->next)
+ for (pmc = dev->mc.list; pmc != NULL; pmc = pmc->next)
set_multicast_one(dev, pmc->dmi_addr);
set_multicast_finish(dev);
} else
--- wireless-testing.orig/drivers/net/gianfar.c 2009-06-07 21:32:31.000000000 +0200
+++ wireless-testing/drivers/net/gianfar.c 2009-06-13 12:29:38.000000000 +0200
@@ -2196,11 +2196,11 @@ static void gfar_set_multi(struct net_de
em_num = 0;
}
- if(dev->mc_count == 0)
+ if(dev->mc.count == 0)
return;
/* Parse the list, and set the appropriate bits */
- for(mc_ptr = dev->mc_list; mc_ptr; mc_ptr = mc_ptr->next) {
+ for(mc_ptr = dev->mc.list; mc_ptr; mc_ptr = mc_ptr->next) {
if (idx < em_num) {
gfar_set_mac_for_addr(dev, idx,
mc_ptr->dmi_addr);
--- wireless-testing.orig/drivers/net/hamachi.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/hamachi.c 2009-06-13 12:29:38.000000000 +0200
@@ -1849,13 +1849,13 @@ static void set_rx_mode(struct net_devic
if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */
writew(0x000F, ioaddr + AddrMode);
- } else if ((dev->mc_count > 63) || (dev->flags & IFF_ALLMULTI)) {
+ } else if ((dev->mc.count > 63) || (dev->flags & IFF_ALLMULTI)) {
/* Too many to match, or accept all multicasts. */
writew(0x000B, ioaddr + AddrMode);
- } else if (dev->mc_count > 0) { /* Must use the CAM filter. */
+ } else if (dev->mc.count > 0) { /* Must use the CAM filter. */
struct dev_mc_list *mclist;
int i;
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
writel(*(u32*)(mclist->dmi_addr), ioaddr + 0x100 + i*8);
writel(0x20000 | (*(u16*)&mclist->dmi_addr[4]),
--- wireless-testing.orig/drivers/net/hp100.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/hp100.c 2009-06-13 12:29:39.000000000 +0200
@@ -2087,7 +2087,7 @@ static void hp100_set_multicast_list(str
lp->mac2_mode = HP100_MAC2MODE6; /* promiscuous mode = get all good */
lp->mac1_mode = HP100_MAC1MODE6; /* packets on the net */
memset(&lp->hash_bytes, 0xff, 8);
- } else if (dev->mc_count || (dev->flags & IFF_ALLMULTI)) {
+ } else if (dev->mc.count || (dev->flags & IFF_ALLMULTI)) {
lp->mac2_mode = HP100_MAC2MODE5; /* multicast mode = get packets for */
lp->mac1_mode = HP100_MAC1MODE5; /* me, broadcasts and all multicasts */
#ifdef HP100_MULTICAST_FILTER /* doesn't work!!! */
@@ -2101,9 +2101,9 @@ static void hp100_set_multicast_list(str
memset(&lp->hash_bytes, 0x00, 8);
#ifdef HP100_DEBUG
- printk("hp100: %s: computing hash filter - mc_count = %i\n", dev->name, dev->mc_count);
+ printk("hp100: %s: computing hash filter - mc_count = %i\n", dev->name, dev->mc.count);
#endif
- for (i = 0, dmi = dev->mc_list; i < dev->mc_count; i++, dmi = dmi->next) {
+ for (i = 0, dmi = dev->mc.list; i < dev->mc.count; i++, dmi = dmi->next) {
addrs = dmi->dmi_addr;
if ((*addrs & 0x01) == 0x01) { /* multicast address? */
#ifdef HP100_DEBUG
--- wireless-testing.orig/drivers/net/ibm_newemac/core.c 2009-04-23 00:20:40.000000000 +0200
+++ wireless-testing/drivers/net/ibm_newemac/core.c 2009-06-13 12:29:39.000000000 +0200
@@ -390,11 +390,11 @@ static void emac_hash_mc(struct emac_ins
struct dev_mc_list *dmi;
int i;
- DBG(dev, "hash_mc %d" NL, dev->ndev->mc_count);
+ DBG(dev, "hash_mc %d" NL, dev->ndev->mc.count);
memset(gaht_temp, 0, sizeof (gaht_temp));
- for (dmi = dev->ndev->mc_list; dmi; dmi = dmi->next) {
+ for (dmi = dev->ndev->mc.list; dmi; dmi = dmi->next) {
int slot, reg, mask;
DBG2(dev, "mc %pM" NL, dmi->dmi_addr);
@@ -424,9 +424,9 @@ static inline u32 emac_iff2rmr(struct ne
if (ndev->flags & IFF_PROMISC)
r |= EMAC_RMR_PME;
else if (ndev->flags & IFF_ALLMULTI ||
- (ndev->mc_count > EMAC_XAHT_SLOTS(dev)))
+ (ndev->mc.count > EMAC_XAHT_SLOTS(dev)))
r |= EMAC_RMR_PMME;
- else if (ndev->mc_count > 0)
+ else if (ndev->mc.count > 0)
r |= EMAC_RMR_MAE;
return r;
--- wireless-testing.orig/drivers/net/ibmlana.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/ibmlana.c 2009-06-13 12:29:39.000000000 +0200
@@ -419,7 +419,7 @@ static void InitBoard(struct net_device
/* start putting the multicast addresses into the CAM list. Stop if
it is full. */
- for (mcptr = dev->mc_list; mcptr != NULL; mcptr = mcptr->next) {
+ for (mcptr = dev->mc.list; mcptr != NULL; mcptr = mcptr->next) {
putcam(cams, &camcnt, mcptr->dmi_addr);
if (camcnt == 16)
break;
--- wireless-testing.orig/drivers/net/ibmveth.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/ibmveth.c 2009-06-13 12:29:39.000000000 +0200
@@ -1061,7 +1061,7 @@ static void ibmveth_set_multicast_list(s
struct ibmveth_adapter *adapter = netdev_priv(netdev);
unsigned long lpar_rc;
- if((netdev->flags & IFF_PROMISC) || (netdev->mc_count > adapter->mcastFilterSize)) {
+ if((netdev->flags & IFF_PROMISC) || (netdev->mc.count > adapter->mcastFilterSize)) {
lpar_rc = h_multicast_ctrl(adapter->vdev->unit_address,
IbmVethMcastEnableRecv |
IbmVethMcastDisableFiltering,
@@ -1070,7 +1070,7 @@ static void ibmveth_set_multicast_list(s
ibmveth_error_printk("h_multicast_ctrl rc=%ld when entering promisc mode\n", lpar_rc);
}
} else {
- struct dev_mc_list *mclist = netdev->mc_list;
+ struct dev_mc_list *mclist = netdev->mc.list;
int i;
/* clear the filter table & disable filtering */
lpar_rc = h_multicast_ctrl(adapter->vdev->unit_address,
@@ -1082,7 +1082,7 @@ static void ibmveth_set_multicast_list(s
ibmveth_error_printk("h_multicast_ctrl rc=%ld when attempting to clear filter table\n", lpar_rc);
}
/* add the addresses to the filter table */
- for(i = 0; i < netdev->mc_count; ++i, mclist = mclist->next) {
+ for(i = 0; i < netdev->mc.count; ++i, mclist = mclist->next) {
// add the multicast address to the filter table
unsigned long mcast_addr = 0;
memcpy(((char *)&mcast_addr)+2, mclist->dmi_addr, 6);
--- wireless-testing.orig/drivers/net/igb/igb_main.c 2009-05-18 12:02:00.000000000 +0200
+++ wireless-testing/drivers/net/igb/igb_main.c 2009-06-13 12:29:39.000000000 +0200
@@ -2523,8 +2523,8 @@ static void igb_set_multi(struct net_dev
}
wr32(E1000_RCTL, rctl);
- if (netdev->mc_count) {
- mta_list = kzalloc(netdev->mc_count * 6, GFP_ATOMIC);
+ if (netdev->mc.count) {
+ mta_list = kzalloc(netdev->mc.count * 6, GFP_ATOMIC);
if (!mta_list) {
dev_err(&adapter->pdev->dev,
"failed to allocate multicast filter list\n");
@@ -2533,9 +2533,9 @@ static void igb_set_multi(struct net_dev
}
/* The shared function expects a packed array of only addresses. */
- mc_ptr = netdev->mc_list;
+ mc_ptr = netdev->mc.list;
- for (i = 0; i < netdev->mc_count; i++) {
+ for (i = 0; i < netdev->mc.count; i++) {
if (!mc_ptr)
break;
memcpy(mta_list + (i*ETH_ALEN), mc_ptr->dmi_addr, ETH_ALEN);
--- wireless-testing.orig/drivers/net/igbvf/netdev.c 2009-04-23 00:20:40.000000000 +0200
+++ wireless-testing/drivers/net/igbvf/netdev.c 2009-06-13 12:29:39.000000000 +0200
@@ -1402,8 +1402,8 @@ static void igbvf_set_multi(struct net_d
u8 *mta_list = NULL;
int i;
- if (netdev->mc_count) {
- mta_list = kmalloc(netdev->mc_count * 6, GFP_ATOMIC);
+ if (netdev->mc.count) {
+ mta_list = kmalloc(netdev->mc.count * 6, GFP_ATOMIC);
if (!mta_list) {
dev_err(&adapter->pdev->dev,
"failed to allocate multicast filter list\n");
@@ -1412,9 +1412,9 @@ static void igbvf_set_multi(struct net_d
}
/* prepare a packed array of only addresses. */
- mc_ptr = netdev->mc_list;
+ mc_ptr = netdev->mc.list;
- for (i = 0; i < netdev->mc_count; i++) {
+ for (i = 0; i < netdev->mc.count; i++) {
if (!mc_ptr)
break;
memcpy(mta_list + (i*ETH_ALEN), mc_ptr->dmi_addr,
--- wireless-testing.orig/drivers/net/ioc3-eth.c 2009-04-23 00:20:40.000000000 +0200
+++ wireless-testing/drivers/net/ioc3-eth.c 2009-06-13 12:29:39.000000000 +0200
@@ -1664,7 +1664,7 @@ static int ioc3_ioctl(struct net_device
static void ioc3_set_multicast_list(struct net_device *dev)
{
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
struct ioc3_private *ip = netdev_priv(dev);
struct ioc3 *ioc3 = ip->regs;
u64 ehar = 0;
@@ -1681,14 +1681,14 @@ static void ioc3_set_multicast_list(stru
ioc3_w_emcr(ip->emcr); /* Clear promiscuous. */
(void) ioc3_r_emcr();
- if ((dev->flags & IFF_ALLMULTI) || (dev->mc_count > 64)) {
+ if ((dev->flags & IFF_ALLMULTI) || (dev->mc.count > 64)) {
/* Too many for hashing to make sense or we want all
multicast packets anyway, so skip computing all the
hashes and just accept all packets. */
ip->ehar_h = 0xffffffff;
ip->ehar_l = 0xffffffff;
} else {
- for (i = 0; i < dev->mc_count; i++) {
+ for (i = 0; i < dev->mc.count; i++) {
char *addr = dmi->dmi_addr;
dmi = dmi->next;
--- wireless-testing.orig/drivers/net/ipg.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/ipg.c 2009-06-13 12:29:39.000000000 +0200
@@ -585,11 +585,11 @@ static void ipg_nic_set_multicast_list(s
receivemode = IPG_RM_RECEIVEALLFRAMES;
} else if ((dev->flags & IFF_ALLMULTI) ||
((dev->flags & IFF_MULTICAST) &&
- (dev->mc_count > IPG_MULTICAST_HASHTABLE_SIZE))) {
+ (dev->mc.count > IPG_MULTICAST_HASHTABLE_SIZE))) {
/* NIC to be configured to receive all multicast
* frames. */
receivemode |= IPG_RM_RECEIVEMULTICAST;
- } else if ((dev->flags & IFF_MULTICAST) && (dev->mc_count > 0)) {
+ } else if ((dev->flags & IFF_MULTICAST) && (dev->mc.count > 0)) {
/* NIC to be configured to receive selected
* multicast addresses. */
receivemode |= IPG_RM_RECEIVEMULTICASTHASH;
@@ -610,7 +610,7 @@ static void ipg_nic_set_multicast_list(s
hashtable[1] = 0x00000000;
/* Cycle through all multicast addresses to filter. */
- for (mc_list_ptr = dev->mc_list;
+ for (mc_list_ptr = dev->mc.list;
mc_list_ptr != NULL; mc_list_ptr = mc_list_ptr->next) {
/* Calculate CRC result for each multicast address. */
hashindex = crc32_le(0xffffffff, mc_list_ptr->dmi_addr,
--- wireless-testing.orig/drivers/net/isa-skeleton.c 2009-04-23 00:20:40.000000000 +0200
+++ wireless-testing/drivers/net/isa-skeleton.c 2009-06-13 12:29:39.000000000 +0200
@@ -654,17 +654,17 @@ set_multicast_list(struct net_device *de
/* Enable promiscuous mode */
outw(MULTICAST|PROMISC, ioaddr);
}
- else if((dev->flags&IFF_ALLMULTI) || dev->mc_count > HW_MAX_ADDRS)
+ else if((dev->flags&IFF_ALLMULTI) || dev->mc.count > HW_MAX_ADDRS)
{
/* Disable promiscuous mode, use normal mode. */
hardware_set_filter(NULL);
outw(MULTICAST, ioaddr);
}
- else if(dev->mc_count)
+ else if(dev->mc.count)
{
/* Walk the address list, and load the filter */
- hardware_set_filter(dev->mc_list);
+ hardware_set_filter(dev->mc.list);
outw(MULTICAST, ioaddr);
}
--- wireless-testing.orig/drivers/net/iseries_veth.c 2009-01-21 12:47:53.000000000 +0100
+++ wireless-testing/drivers/net/iseries_veth.c 2009-06-13 12:29:39.000000000 +0200
@@ -958,10 +958,10 @@ static void veth_set_multicast_list(stru
write_lock_irqsave(&port->mcast_gate, flags);
if ((dev->flags & IFF_PROMISC) || (dev->flags & IFF_ALLMULTI) ||
- (dev->mc_count > VETH_MAX_MCAST)) {
+ (dev->mc.count > VETH_MAX_MCAST)) {
port->promiscuous = 1;
} else {
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
int i;
port->promiscuous = 0;
@@ -969,7 +969,7 @@ static void veth_set_multicast_list(stru
/* Update table */
port->num_mcast = 0;
- for (i = 0; i < dev->mc_count; i++) {
+ for (i = 0; i < dev->mc.count; i++) {
u8 *addr = dmi->dmi_addr;
u64 xaddr = 0;
--- wireless-testing.orig/drivers/net/ixgb/ixgb_main.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/ixgb/ixgb_main.c 2009-06-13 12:29:39.000000000 +0200
@@ -1064,7 +1064,7 @@ ixgb_set_multi(struct net_device *netdev
rctl |= IXGB_RCTL_VFE;
}
- if (netdev->mc_count > IXGB_MAX_NUM_MULTICAST_ADDRESSES) {
+ if (netdev->mc.count > IXGB_MAX_NUM_MULTICAST_ADDRESSES) {
rctl |= IXGB_RCTL_MPE;
IXGB_WRITE_REG(hw, RCTL, rctl);
} else {
@@ -1073,13 +1073,13 @@ ixgb_set_multi(struct net_device *netdev
IXGB_WRITE_REG(hw, RCTL, rctl);
- for (i = 0, mc_ptr = netdev->mc_list;
+ for (i = 0, mc_ptr = netdev->mc.list;
mc_ptr;
i++, mc_ptr = mc_ptr->next)
memcpy(&mta[i * IXGB_ETH_LENGTH_OF_ADDRESS],
mc_ptr->dmi_addr, IXGB_ETH_LENGTH_OF_ADDRESS);
- ixgb_mc_addr_list_update(hw, mta, netdev->mc_count, 0);
+ ixgb_mc_addr_list_update(hw, mta, netdev->mc.count, 0);
}
}
@@ -1593,7 +1593,7 @@ ixgb_update_stats(struct ixgb_adapter *a
return;
if ((netdev->flags & IFF_PROMISC) || (netdev->flags & IFF_ALLMULTI) ||
- (netdev->mc_count > IXGB_MAX_NUM_MULTICAST_ADDRESSES)) {
+ (netdev->mc.count > IXGB_MAX_NUM_MULTICAST_ADDRESSES)) {
u64 multi = IXGB_READ_REG(&adapter->hw, MPRCL);
u32 bcast_l = IXGB_READ_REG(&adapter->hw, BPRCL);
u32 bcast_h = IXGB_READ_REG(&adapter->hw, BPRCH);
--- wireless-testing.orig/drivers/net/ixgbe/ixgbe_main.c 2009-04-30 23:07:18.000000000 +0200
+++ wireless-testing/drivers/net/ixgbe/ixgbe_main.c 2009-06-13 12:29:40.000000000 +0200
@@ -2015,16 +2015,16 @@ static void ixgbe_set_rx_mode(struct net
IXGBE_WRITE_REG(hw, IXGBE_VLNCTRL, vlnctrl);
/* reprogram secondary unicast list */
- addr_count = netdev->uc_count;
+ addr_count = netdev->uc.count;
if (addr_count)
- addr_list = netdev->uc_list->dmi_addr;
+ addr_list = netdev->uc.list->dmi_addr;
hw->mac.ops.update_uc_addr_list(hw, addr_list, addr_count,
ixgbe_addr_list_itr);
/* reprogram multicast list */
- addr_count = netdev->mc_count;
+ addr_count = netdev->mc.count;
if (addr_count)
- addr_list = netdev->mc_list->dmi_addr;
+ addr_list = netdev->mc.list->dmi_addr;
hw->mac.ops.update_mc_addr_list(hw, addr_list, addr_count,
ixgbe_addr_list_itr);
}
--- wireless-testing.orig/drivers/net/jme.c 2009-04-16 02:16:35.000000000 +0200
+++ wireless-testing/drivers/net/jme.c 2009-06-13 12:29:40.000000000 +0200
@@ -1995,8 +1995,8 @@ jme_set_multi(struct net_device *netdev)
int bit_nr;
jme->reg_rxmcs |= RXMCS_MULFRAME | RXMCS_MULFILTERED;
- for (i = 0, mclist = netdev->mc_list;
- mclist && i < netdev->mc_count;
+ for (i = 0, mclist = netdev->mc.list;
+ mclist && i < netdev->mc.count;
++i, mclist = mclist->next) {
bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) & 0x3F;
--- wireless-testing.orig/drivers/net/korina.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/korina.c 2009-06-13 12:29:40.000000000 +0200
@@ -484,7 +484,7 @@ static void korina_multicast_list(struct
{
struct korina_private *lp = netdev_priv(dev);
unsigned long flags;
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
u32 recognise = ETH_ARC_AB; /* always accept broadcasts */
int i;
@@ -492,19 +492,19 @@ static void korina_multicast_list(struct
if (dev->flags & IFF_PROMISC)
recognise |= ETH_ARC_PRO;
- else if ((dev->flags & IFF_ALLMULTI) || (dev->mc_count > 4))
+ else if ((dev->flags & IFF_ALLMULTI) || (dev->mc.count > 4))
/* All multicast and broadcast */
recognise |= ETH_ARC_AM;
/* Build the hash table */
- if (dev->mc_count > 4) {
+ if (dev->mc.count > 4) {
u16 hash_table[4];
u32 crc;
for (i = 0; i < 4; i++)
hash_table[i] = 0;
- for (i = 0; i < dev->mc_count; i++) {
+ for (i = 0; i < dev->mc.count; i++) {
char *addrs = dmi->dmi_addr;
dmi = dmi->next;
--- wireless-testing.orig/drivers/net/lance.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/lance.c 2009-06-13 12:29:40.000000000 +0200
@@ -1286,7 +1286,7 @@ static void set_multicast_list(struct ne
} else {
short multicast_table[4];
int i;
- int num_addrs=dev->mc_count;
+ int num_addrs=dev->mc.count;
if(dev->flags&IFF_ALLMULTI)
num_addrs=1;
/* FIXIT: We don't use the multicast table, but rely on upper-layer filtering. */
--- wireless-testing.orig/drivers/net/lib82596.c 2009-01-13 15:05:06.000000000 +0100
+++ wireless-testing/drivers/net/lib82596.c 2009-06-13 12:29:40.000000000 +0200
@@ -1342,7 +1342,7 @@ static void set_multicast_list(struct ne
DEB(DEB_MULTI,
printk(KERN_DEBUG
"%s: set multicast list, %d entries, promisc %s, allmulti %s\n",
- dev->name, dev->mc_count,
+ dev->name, dev->mc.count,
dev->flags & IFF_PROMISC ? "ON" : "OFF",
dev->flags & IFF_ALLMULTI ? "ON" : "OFF"));
@@ -1378,23 +1378,23 @@ static void set_multicast_list(struct ne
}
}
- cnt = dev->mc_count;
+ cnt = dev->mc.count;
if (cnt > MAX_MC_CNT) {
cnt = MAX_MC_CNT;
printk(KERN_NOTICE "%s: Only %d multicast addresses supported",
dev->name, cnt);
}
- if (dev->mc_count > 0) {
+ if (dev->mc.count > 0) {
struct dev_mc_list *dmi;
unsigned char *cp;
struct mc_cmd *cmd;
cmd = &dma->mc_cmd;
cmd->cmd.command = SWAP16(CmdMulticastList);
- cmd->mc_cnt = SWAP16(dev->mc_count * 6);
+ cmd->mc_cnt = SWAP16(dev->mc.count * 6);
cp = cmd->mc_addrs;
- for (dmi = dev->mc_list;
+ for (dmi = dev->mc.list;
cnt && dmi != NULL;
dmi = dmi->next, cnt--, cp += 6) {
memcpy(cp, dmi->dmi_addr, 6);
--- wireless-testing.orig/drivers/net/lib8390.c 2009-01-13 15:05:06.000000000 +0100
+++ wireless-testing/drivers/net/lib8390.c 2009-06-13 12:29:40.000000000 +0200
@@ -906,7 +906,7 @@ static inline void make_mc_bits(u8 *bits
{
struct dev_mc_list *dmi;
- for (dmi=dev->mc_list; dmi; dmi=dmi->next)
+ for (dmi=dev->mc.list; dmi; dmi=dmi->next)
{
u32 crc;
if (dmi->dmi_addrlen != ETH_ALEN)
@@ -940,7 +940,7 @@ static void do_set_multicast_list(struct
if (!(dev->flags&(IFF_PROMISC|IFF_ALLMULTI)))
{
memset(ei_local->mcfilter, 0, 8);
- if (dev->mc_list)
+ if (dev->mc.list)
make_mc_bits(ei_local->mcfilter, dev);
}
else
@@ -974,7 +974,7 @@ static void do_set_multicast_list(struct
if(dev->flags&IFF_PROMISC)
ei_outb_p(E8390_RXCONFIG | 0x18, e8390_base + EN0_RXCR);
- else if(dev->flags&IFF_ALLMULTI || dev->mc_list)
+ else if(dev->flags&IFF_ALLMULTI || dev->mc.list)
ei_outb_p(E8390_RXCONFIG | 0x08, e8390_base + EN0_RXCR);
else
ei_outb_p(E8390_RXCONFIG, e8390_base + EN0_RXCR);
--- wireless-testing.orig/drivers/net/lp486e.c 2009-04-09 10:00:15.000000000 +0200
+++ wireless-testing/drivers/net/lp486e.c 2009-06-13 12:29:40.000000000 +0200
@@ -1253,20 +1253,20 @@ static void set_multicast_list(struct ne
if (i596_debug > 1)
printk ("%s: set multicast list %d\n",
- dev->name, dev->mc_count);
+ dev->name, dev->mc.count);
- if (dev->mc_count > 0) {
+ if (dev->mc.count > 0) {
struct dev_mc_list *dmi;
char *cp;
- cmd = kmalloc(sizeof(struct i596_cmd)+2+dev->mc_count*6, GFP_ATOMIC);
+ cmd = kmalloc(sizeof(struct i596_cmd)+2+dev->mc.count*6, GFP_ATOMIC);
if (cmd == NULL) {
printk (KERN_ERR "%s: set_multicast Memory squeeze.\n", dev->name);
return;
}
cmd->command = CmdMulticastList;
- *((unsigned short *) (cmd + 1)) = dev->mc_count * 6;
+ *((unsigned short *) (cmd + 1)) = dev->mc.count * 6;
cp = ((char *)(cmd + 1))+2;
- for (dmi = dev->mc_list; dmi != NULL; dmi = dmi->next) {
+ for (dmi = dev->mc.list; dmi != NULL; dmi = dmi->next) {
memcpy(cp, dmi,6);
cp += 6;
}
@@ -1277,7 +1277,7 @@ static void set_multicast_list(struct ne
if (lp->set_conf.pa_next != I596_NULL) {
return;
}
- if (dev->mc_count == 0 && !(dev->flags & (IFF_PROMISC | IFF_ALLMULTI))) {
+ if (dev->mc.count == 0 && !(dev->flags & (IFF_PROMISC | IFF_ALLMULTI))) {
lp->i596_config[8] &= ~0x01;
} else {
lp->i596_config[8] |= 0x01;
--- wireless-testing.orig/drivers/net/mac89x0.c 2009-04-23 00:20:41.000000000 +0200
+++ wireless-testing/drivers/net/mac89x0.c 2009-06-13 12:29:40.000000000 +0200
@@ -571,7 +571,7 @@ static void set_multicast_list(struct ne
{
lp->rx_mode = RX_ALL_ACCEPT;
}
- else if((dev->flags&IFF_ALLMULTI)||dev->mc_list)
+ else if((dev->flags&IFF_ALLMULTI)||dev->mc.list)
{
/* The multicast-accept list is initialized to accept-all, and we
rely on higher-level filtering for now. */
--- wireless-testing.orig/drivers/net/macb.c 2009-04-30 23:07:18.000000000 +0200
+++ wireless-testing/drivers/net/macb.c 2009-06-13 12:29:40.000000000 +0200
@@ -884,8 +884,8 @@ static void macb_sethashtable(struct net
mc_filter[0] = mc_filter[1] = 0;
- curr = dev->mc_list;
- for (i = 0; i < dev->mc_count; i++, curr = curr->next) {
+ curr = dev->mc.list;
+ for (i = 0; i < dev->mc.count; i++, curr = curr->next) {
if (!curr) break; /* unexpected end of list */
bitnr = hash_get_index(curr->dmi_addr);
@@ -918,7 +918,7 @@ static void macb_set_rx_mode(struct net_
macb_writel(bp, HRB, -1);
macb_writel(bp, HRT, -1);
cfg |= MACB_BIT(NCFGR_MTI);
- } else if (dev->mc_count > 0) {
+ } else if (dev->mc.count > 0) {
/* Enable specific multicasts */
macb_sethashtable(dev);
cfg |= MACB_BIT(NCFGR_MTI);
--- wireless-testing.orig/drivers/net/mace.c 2009-01-13 15:05:06.000000000 +0100
+++ wireless-testing/drivers/net/mace.c 2009-06-13 12:29:40.000000000 +0200
@@ -592,7 +592,7 @@ static void mace_set_multicast(struct ne
mp->maccc |= PROM;
} else {
unsigned char multicast_filter[8];
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
if (dev->flags & IFF_ALLMULTI) {
for (i = 0; i < 8; i++)
@@ -600,7 +600,7 @@ static void mace_set_multicast(struct ne
} else {
for (i = 0; i < 8; i++)
multicast_filter[i] = 0;
- for (i = 0; i < dev->mc_count; i++) {
+ for (i = 0; i < dev->mc.count; i++) {
crc = ether_crc_le(6, dmi->dmi_addr);
j = crc >> 26; /* bit number in multicast_filter */
multicast_filter[j >> 3] |= 1 << (j & 7);
--- wireless-testing.orig/drivers/net/macmace.c 2009-01-13 15:05:06.000000000 +0100
+++ wireless-testing/drivers/net/macmace.c 2009-06-13 12:29:40.000000000 +0200
@@ -503,7 +503,7 @@ static void mace_set_multicast(struct ne
mb->maccc |= PROM;
} else {
unsigned char multicast_filter[8];
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
if (dev->flags & IFF_ALLMULTI) {
for (i = 0; i < 8; i++) {
@@ -512,7 +512,7 @@ static void mace_set_multicast(struct ne
} else {
for (i = 0; i < 8; i++)
multicast_filter[i] = 0;
- for (i = 0; i < dev->mc_count; i++) {
+ for (i = 0; i < dev->mc.count; i++) {
crc = ether_crc_le(6, dmi->dmi_addr);
j = crc >> 26; /* bit number in multicast_filter */
multicast_filter[j >> 3] |= 1 << (j & 7);
--- wireless-testing.orig/drivers/net/mlx4/en_netdev.c 2009-04-30 23:07:18.000000000 +0200
+++ wireless-testing/drivers/net/mlx4/en_netdev.c 2009-06-13 12:29:40.000000000 +0200
@@ -179,7 +179,7 @@ static void mlx4_en_cache_mclist(struct
struct dev_mc_list *tmp;
struct dev_mc_list *plist = NULL;
- for (mclist = dev->mc_list; mclist; mclist = mclist->next) {
+ for (mclist = dev->mc.list; mclist; mclist = mclist->next) {
tmp = kmalloc(sizeof(struct dev_mc_list), GFP_ATOMIC);
if (!tmp) {
mlx4_err(mdev, "failed to allocate multicast list\n");
--- wireless-testing.orig/drivers/net/mv643xx_eth.c 2009-05-30 01:38:26.000000000 +0200
+++ wireless-testing/drivers/net/mv643xx_eth.c 2009-06-13 12:29:40.000000000 +0200
@@ -1730,7 +1730,7 @@ static u32 uc_addr_filter_mask(struct ne
return 0;
nibbles = 1 << (dev->dev_addr[5] & 0x0f);
- for (uc_ptr = dev->uc_list; uc_ptr != NULL; uc_ptr = uc_ptr->next) {
+ for (uc_ptr = dev->uc.list; uc_ptr != NULL; uc_ptr = uc_ptr->next) {
if (memcmp(dev->dev_addr, uc_ptr->da_addr, 5))
return 0;
if ((dev->dev_addr[5] ^ uc_ptr->da_addr[5]) & 0xf0)
@@ -1830,7 +1830,7 @@ oom:
memset(mc_spec, 0, 0x100);
memset(mc_other, 0, 0x100);
- for (addr = dev->mc_list; addr != NULL; addr = addr->next) {
+ for (addr = dev->mc.list; addr != NULL; addr = addr->next) {
u8 *a = addr->da_addr;
u32 *table;
int entry;
--- wireless-testing.orig/drivers/net/myri10ge/myri10ge.c 2009-04-23 00:20:41.000000000 +0200
+++ wireless-testing/drivers/net/myri10ge/myri10ge.c 2009-06-13 12:29:40.000000000 +0200
@@ -3024,7 +3024,7 @@ static void myri10ge_set_multicast_list(
}
/* Walk the multicast list, and add each address */
- for (mc_list = dev->mc_list; mc_list != NULL; mc_list = mc_list->next) {
+ for (mc_list = dev->mc.list; mc_list != NULL; mc_list = mc_list->next) {
memcpy(data, &mc_list->dmi_addr, 6);
cmd.data0 = ntohl(data[0]);
cmd.data1 = ntohl(data[1]);
--- wireless-testing.orig/drivers/net/natsemi.c 2009-04-09 10:00:16.000000000 +0200
+++ wireless-testing/drivers/net/natsemi.c 2009-06-13 12:29:40.000000000 +0200
@@ -2488,7 +2488,7 @@ static void __set_rx_mode(struct net_dev
if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */
rx_mode = RxFilterEnable | AcceptBroadcast
| AcceptAllMulticast | AcceptAllPhys | AcceptMyPhys;
- } else if ((dev->mc_count > multicast_filter_limit)
+ } else if ((dev->mc.count > multicast_filter_limit)
|| (dev->flags & IFF_ALLMULTI)) {
rx_mode = RxFilterEnable | AcceptBroadcast
| AcceptAllMulticast | AcceptMyPhys;
@@ -2496,7 +2496,7 @@ static void __set_rx_mode(struct net_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;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
int b = (ether_crc(ETH_ALEN, mclist->dmi_addr) >> 23) & 0x1ff;
mc_filter[b/8] |= (1 << (b & 0x07));
--- wireless-testing.orig/drivers/net/netxen/netxen_nic_hw.c 2009-04-09 10:00:16.000000000 +0200
+++ wireless-testing/drivers/net/netxen/netxen_nic_hw.c 2009-06-13 12:29:41.000000000 +0200
@@ -417,7 +417,7 @@ void netxen_p2_nic_set_multi(struct net_
return;
}
- if (netdev->mc_count == 0) {
+ if (netdev->mc.count == 0) {
adapter->set_promisc(adapter,
NETXEN_NIU_NON_PROMISC_MODE);
netxen_nic_disable_mcast_filter(adapter);
@@ -426,17 +426,17 @@ void netxen_p2_nic_set_multi(struct net_
adapter->set_promisc(adapter, NETXEN_NIU_ALLMULTI_MODE);
if (netdev->flags & IFF_ALLMULTI ||
- netdev->mc_count > adapter->max_mc_count) {
+ netdev->mc.count > adapter->max_mc_count) {
netxen_nic_disable_mcast_filter(adapter);
return;
}
netxen_nic_enable_mcast_filter(adapter);
- for (mc_ptr = netdev->mc_list; mc_ptr; mc_ptr = mc_ptr->next, index++)
+ for (mc_ptr = netdev->mc.list; mc_ptr; mc_ptr = mc_ptr->next, index++)
netxen_nic_set_mcast_addr(adapter, index, mc_ptr->dmi_addr);
- if (index != netdev->mc_count)
+ if (index != netdev->mc.count)
printk(KERN_WARNING "%s: %s multicast address count mismatch\n",
netxen_nic_driver_name, netdev->name);
@@ -579,13 +579,13 @@ void netxen_p3_nic_set_multi(struct net_
}
if ((netdev->flags & IFF_ALLMULTI) ||
- (netdev->mc_count > adapter->max_mc_count)) {
+ (netdev->mc.count > adapter->max_mc_count)) {
mode = VPORT_MISS_MODE_ACCEPT_MULTI;
goto send_fw_cmd;
}
- if (netdev->mc_count > 0) {
- for (mc_ptr = netdev->mc_list; mc_ptr;
+ if (netdev->mc.count > 0) {
+ for (mc_ptr = netdev->mc.list; mc_ptr;
mc_ptr = mc_ptr->next) {
nx_p3_nic_add_mac(adapter, mc_ptr->dmi_addr,
&add_list, &del_list);
--- wireless-testing.orig/drivers/net/ni5010.c 2009-04-09 10:00:16.000000000 +0200
+++ wireless-testing/drivers/net/ni5010.c 2009-06-13 12:29:41.000000000 +0200
@@ -651,7 +651,7 @@ static void ni5010_set_multicast_list(st
PRINTK2((KERN_DEBUG "%s: entering set_multicast_list\n", dev->name));
- if (dev->flags&IFF_PROMISC || dev->flags&IFF_ALLMULTI || dev->mc_list) {
+ if (dev->flags&IFF_PROMISC || dev->flags&IFF_ALLMULTI || dev->mc.list) {
outb(RMD_PROMISC, EDLC_RMODE); /* Enable promiscuous mode */
PRINTK((KERN_DEBUG "%s: Entering promiscuous mode\n", dev->name));
} else {
--- wireless-testing.orig/drivers/net/ni52.c 2009-04-09 10:00:16.000000000 +0200
+++ wireless-testing/drivers/net/ni52.c 2009-06-13 12:29:41.000000000 +0200
@@ -596,8 +596,8 @@ static int init586(struct net_device *de
struct iasetup_cmd_struct __iomem *ias_cmd;
struct tdr_cmd_struct __iomem *tdr_cmd;
struct mcsetup_cmd_struct __iomem *mc_cmd;
- struct dev_mc_list *dmi = dev->mc_list;
- int num_addrs = dev->mc_count;
+ struct dev_mc_list *dmi = dev->mc.list;
+ int num_addrs = dev->mc.count;
ptr = p->scb + 1;
--- wireless-testing.orig/drivers/net/ni65.c 2009-04-09 10:00:16.000000000 +0200
+++ wireless-testing/drivers/net/ni65.c 2009-06-13 12:29:41.000000000 +0200
@@ -848,7 +848,7 @@ static int ni65_lance_reinit(struct net_
if(dev->flags & IFF_PROMISC)
ni65_init_lance(p,dev->dev_addr,0x00,M_PROM);
- else if(dev->mc_count || dev->flags & IFF_ALLMULTI)
+ else if(dev->mc.count || dev->flags & IFF_ALLMULTI)
ni65_init_lance(p,dev->dev_addr,0xff,0x0);
else
ni65_init_lance(p,dev->dev_addr,0x00,0x00);
--- wireless-testing.orig/drivers/net/niu.c 2009-04-16 02:16:35.000000000 +0200
+++ wireless-testing/drivers/net/niu.c 2009-06-13 12:29:41.000000000 +0200
@@ -6339,10 +6339,10 @@ static void niu_set_rx_mode(struct net_d
np->flags &= ~(NIU_FLAGS_MCAST | NIU_FLAGS_PROMISC);
if (dev->flags & IFF_PROMISC)
np->flags |= NIU_FLAGS_PROMISC;
- if ((dev->flags & IFF_ALLMULTI) || (dev->mc_count > 0))
+ if ((dev->flags & IFF_ALLMULTI) || (dev->mc.count > 0))
np->flags |= NIU_FLAGS_MCAST;
- alt_cnt = dev->uc_count;
+ alt_cnt = dev->uc.count;
if (alt_cnt > niu_num_alt_addr(np)) {
alt_cnt = 0;
np->flags |= NIU_FLAGS_PROMISC;
@@ -6351,7 +6351,7 @@ static void niu_set_rx_mode(struct net_d
if (alt_cnt) {
int index = 0;
- for (addr = dev->uc_list; addr; addr = addr->next) {
+ for (addr = dev->uc.list; addr; addr = addr->next) {
err = niu_set_alt_mac(np, index,
addr->da_addr);
if (err)
@@ -6383,8 +6383,8 @@ static void niu_set_rx_mode(struct net_d
if (dev->flags & IFF_ALLMULTI) {
for (i = 0; i < 16; i++)
hash[i] = 0xffff;
- } else if (dev->mc_count > 0) {
- for (addr = dev->mc_list; addr; addr = addr->next) {
+ } else if (dev->mc.count > 0) {
+ for (addr = dev->mc.list; addr; addr = addr->next) {
u32 crc = ether_crc_le(ETH_ALEN, addr->da_addr);
crc >>= 24;
--- wireless-testing.orig/drivers/net/ns83820.c 2009-04-09 10:00:16.000000000 +0200
+++ wireless-testing/drivers/net/ns83820.c 2009-06-13 12:29:41.000000000 +0200
@@ -1719,7 +1719,7 @@ static void ns83820_set_multicast(struct
else
and_mask &= ~(RFCR_AAU | RFCR_AAM);
- if (ndev->flags & IFF_ALLMULTI || ndev->mc_count)
+ if (ndev->flags & IFF_ALLMULTI || ndev->mc.count)
or_mask |= RFCR_AAM;
else
and_mask &= ~RFCR_AAM;
--- wireless-testing.orig/drivers/net/pci-skeleton.c 2009-01-13 15:05:06.000000000 +0100
+++ wireless-testing/drivers/net/pci-skeleton.c 2009-06-13 12:29:41.000000000 +0200
@@ -1820,7 +1820,7 @@ static void netdrv_set_rx_mode (struct n
AcceptBroadcast | AcceptMulticast | AcceptMyPhys |
AcceptAllPhys;
mc_filter[1] = mc_filter[0] = 0xffffffff;
- } else if ((dev->mc_count > multicast_filter_limit)
+ } else if ((dev->mc.count > multicast_filter_limit)
|| (dev->flags & IFF_ALLMULTI)) {
/* Too many to filter perfectly -- accept all multicasts. */
rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys;
@@ -1829,7 +1829,7 @@ static void netdrv_set_rx_mode (struct n
struct dev_mc_list *mclist;
rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys;
mc_filter[1] = mc_filter[0] = 0;
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
int bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26;
--- wireless-testing.orig/drivers/net/pcmcia/3c574_cs.c 2009-04-09 10:00:17.000000000 +0200
+++ wireless-testing/drivers/net/pcmcia/3c574_cs.c 2009-06-13 12:29:41.000000000 +0200
@@ -1152,7 +1152,7 @@ static void set_rx_mode(struct net_devic
if (dev->flags & IFF_PROMISC)
outw(SetRxFilter | RxStation | RxMulticast | RxBroadcast | RxProm,
ioaddr + EL3_CMD);
- else if (dev->mc_count || (dev->flags & IFF_ALLMULTI))
+ else if (dev->mc.count || (dev->flags & IFF_ALLMULTI))
outw(SetRxFilter|RxStation|RxMulticast|RxBroadcast, ioaddr + EL3_CMD);
else
outw(SetRxFilter | RxStation | RxBroadcast, ioaddr + EL3_CMD);
--- wireless-testing.orig/drivers/net/pcmcia/3c589_cs.c 2009-04-09 10:00:17.000000000 +0200
+++ wireless-testing/drivers/net/pcmcia/3c589_cs.c 2009-06-13 12:29:41.000000000 +0200
@@ -915,7 +915,7 @@ static void set_multicast_list(struct ne
if (!pcmcia_dev_present(link)) return;
if (dev->flags & IFF_PROMISC)
opts |= RxMulticast | RxProm;
- else if (dev->mc_count || (dev->flags & IFF_ALLMULTI))
+ else if (dev->mc.count || (dev->flags & IFF_ALLMULTI))
opts |= RxMulticast;
outw(opts, ioaddr + EL3_CMD);
}
--- wireless-testing.orig/drivers/net/pcmcia/axnet_cs.c 2009-04-09 10:00:17.000000000 +0200
+++ wireless-testing/drivers/net/pcmcia/axnet_cs.c 2009-06-13 12:29:41.000000000 +0200
@@ -1647,7 +1647,7 @@ static inline void make_mc_bits(u8 *bits
struct dev_mc_list *dmi;
u32 crc;
- for (dmi=dev->mc_list; dmi; dmi=dmi->next) {
+ for (dmi=dev->mc.list; dmi; dmi=dmi->next) {
crc = ether_crc(ETH_ALEN, dmi->dmi_addr);
/*
@@ -1674,7 +1674,7 @@ static void do_set_multicast_list(struct
if (!(dev->flags&(IFF_PROMISC|IFF_ALLMULTI))) {
memset(ei_local->mcfilter, 0, 8);
- if (dev->mc_list)
+ if (dev->mc.list)
make_mc_bits(ei_local->mcfilter, dev);
} else {
/* set to accept-all */
@@ -1690,7 +1690,7 @@ static void do_set_multicast_list(struct
if(dev->flags&IFF_PROMISC)
outb_p(E8390_RXCONFIG | 0x58, e8390_base + EN0_RXCR);
- else if(dev->flags&IFF_ALLMULTI || dev->mc_list)
+ else if(dev->flags&IFF_ALLMULTI || dev->mc.list)
outb_p(E8390_RXCONFIG | 0x48, e8390_base + EN0_RXCR);
else
outb_p(E8390_RXCONFIG | 0x40, e8390_base + EN0_RXCR);
--- wireless-testing.orig/drivers/net/pcmcia/fmvj18x_cs.c 2009-04-09 10:00:17.000000000 +0200
+++ wireless-testing/drivers/net/pcmcia/fmvj18x_cs.c 2009-06-13 12:29:41.000000000 +0200
@@ -1217,19 +1217,19 @@ static void set_rx_mode(struct net_devic
if (dev->flags & IFF_PROMISC) {
memset(mc_filter, 0xff, sizeof(mc_filter));
outb(3, ioaddr + RX_MODE); /* Enable promiscuous mode */
- } else if (dev->mc_count > MC_FILTERBREAK
+ } else if (dev->mc.count > MC_FILTERBREAK
|| (dev->flags & IFF_ALLMULTI)) {
/* Too many to filter perfectly -- accept all multicasts. */
memset(mc_filter, 0xff, sizeof(mc_filter));
outb(2, ioaddr + RX_MODE); /* Use normal mode. */
- } else if (dev->mc_count == 0) {
+ } else if (dev->mc.count == 0) {
memset(mc_filter, 0x00, sizeof(mc_filter));
outb(1, ioaddr + RX_MODE); /* Ignore almost all multicasts. */
} else {
struct dev_mc_list *mclist;
memset(mc_filter, 0, sizeof(mc_filter));
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
unsigned int bit =
ether_crc_le(ETH_ALEN, mclist->dmi_addr) >> 26;
--- wireless-testing.orig/drivers/net/pcmcia/nmclan_cs.c 2009-04-09 10:00:17.000000000 +0200
+++ wireless-testing/drivers/net/pcmcia/nmclan_cs.c 2009-06-13 12:29:41.000000000 +0200
@@ -1509,13 +1509,13 @@ static void set_multicast_list(struct ne
mace_private *lp = netdev_priv(dev);
int adr[ETHER_ADDR_LEN] = {0}; /* Ethernet address */
int i;
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
#ifdef PCMCIA_DEBUG
if (pc_debug > 1) {
static int old;
- if (dev->mc_count != old) {
- old = dev->mc_count;
+ if (dev->mc.count != old) {
+ old = dev->mc.count;
DEBUG(0, "%s: setting Rx mode to %d addresses.\n",
dev->name, old);
}
@@ -1523,13 +1523,13 @@ static void set_multicast_list(struct ne
#endif
/* Set multicast_num_addrs. */
- lp->multicast_num_addrs = dev->mc_count;
+ lp->multicast_num_addrs = dev->mc.count;
/* Set multicast_ladrf. */
if (num_addrs > 0) {
/* Calculate multicast logical address filter */
memset(lp->multicast_ladrf, 0, MACE_LADRF_LEN);
- for (i = 0; i < dev->mc_count; i++) {
+ for (i = 0; i < dev->mc.count; i++) {
memcpy(adr, dmi->dmi_addr, ETHER_ADDR_LEN);
dmi = dmi->next;
BuildLAF(lp->multicast_ladrf, adr);
@@ -1570,15 +1570,15 @@ static void set_multicast_list(struct ne
#ifdef PCMCIA_DEBUG
if (pc_debug > 1) {
static int old;
- if (dev->mc_count != old) {
- old = dev->mc_count;
+ if (dev->mc.count != old) {
+ old = dev->mc.count;
DEBUG(0, "%s: setting Rx mode to %d addresses.\n",
dev->name, old);
}
}
#endif
- lp->multicast_num_addrs = dev->mc_count;
+ lp->multicast_num_addrs = dev->mc.count;
restore_multicast_list(dev);
} /* set_multicast_list */
--- wireless-testing.orig/drivers/net/pcmcia/smc91c92_cs.c 2009-04-09 10:00:17.000000000 +0200
+++ wireless-testing/drivers/net/pcmcia/smc91c92_cs.c 2009-06-13 12:29:41.000000000 +0200
@@ -1748,8 +1748,8 @@ static void set_rx_mode(struct net_devic
} else if (dev->flags & IFF_ALLMULTI)
rx_cfg_setting = RxStripCRC | RxEnable | RxAllMulti;
else {
- if (dev->mc_count) {
- fill_multicast_tbl(dev->mc_count, dev->mc_list,
+ if (dev->mc.count) {
+ fill_multicast_tbl(dev->mc.count, dev->mc.list,
(u_char *)multicast_table);
}
rx_cfg_setting = RxStripCRC | RxEnable;
--- wireless-testing.orig/drivers/net/pcmcia/xirc2ps_cs.c 2009-04-09 10:00:17.000000000 +0200
+++ wireless-testing/drivers/net/pcmcia/xirc2ps_cs.c 2009-06-13 12:29:41.000000000 +0200
@@ -1427,7 +1427,7 @@ set_addresses(struct net_device *dev)
{
unsigned int ioaddr = dev->base_addr;
local_info_t *lp = netdev_priv(dev);
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
unsigned char *addr;
int i,j,k,n;
@@ -1437,7 +1437,7 @@ set_addresses(struct net_device *dev)
if (++n > 9)
break;
i = 0;
- if (n > 1 && n <= dev->mc_count && dmi) {
+ if (n > 1 && n <= dev->mc.count && dmi) {
dmi = dmi->next;
}
}
@@ -1447,7 +1447,7 @@ set_addresses(struct net_device *dev)
SelectPage(k);
}
- if (n && n <= dev->mc_count && dmi)
+ if (n && n <= dev->mc.count && dmi)
addr = dmi->dmi_addr;
else
addr = dev->dev_addr;
@@ -1477,9 +1477,9 @@ set_multicast_list(struct net_device *de
if (dev->flags & IFF_PROMISC) { /* snoop */
PutByte(XIRCREG42_SWC1, value | 0x06); /* set MPE and PME */
- } else if (dev->mc_count > 9 || (dev->flags & IFF_ALLMULTI)) {
+ } else if (dev->mc.count > 9 || (dev->flags & IFF_ALLMULTI)) {
PutByte(XIRCREG42_SWC1, value | 0x02); /* set MPE */
- } else if (dev->mc_count) {
+ } else if (dev->mc.count) {
/* the chip can filter 9 addresses perfectly */
PutByte(XIRCREG42_SWC1, value | 0x01);
SelectPage(0x40);
--- wireless-testing.orig/drivers/net/pcnet32.c 2009-04-09 10:00:17.000000000 +0200
+++ wireless-testing/drivers/net/pcnet32.c 2009-06-13 12:29:41.000000000 +0200
@@ -2676,7 +2676,7 @@ static void pcnet32_load_multicast(struc
struct pcnet32_private *lp = netdev_priv(dev);
volatile struct pcnet32_init_block *ib = lp->init_block;
volatile __le16 *mcast_table = (__le16 *)ib->filter;
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
unsigned long ioaddr = dev->base_addr;
char *addrs;
int i;
@@ -2697,7 +2697,7 @@ static void pcnet32_load_multicast(struc
ib->filter[1] = 0;
/* Add addresses */
- for (i = 0; i < dev->mc_count; i++) {
+ for (i = 0; i < dev->mc.count; i++) {
addrs = dmi->dmi_addr;
dmi = dmi->next;
--- wireless-testing.orig/drivers/net/ps3_gelic_net.c 2009-04-09 10:00:17.000000000 +0200
+++ wireless-testing/drivers/net/ps3_gelic_net.c 2009-06-13 12:29:41.000000000 +0200
@@ -549,7 +549,7 @@ void gelic_net_set_multi(struct net_devi
status);
if ((netdev->flags & IFF_ALLMULTI) ||
- (netdev->mc_count > GELIC_NET_MC_COUNT_MAX)) {
+ (netdev->mc.count > GELIC_NET_MC_COUNT_MAX)) {
status = lv1_net_add_multicast_address(bus_id(card),
dev_id(card),
0, 1);
@@ -561,7 +561,7 @@ void gelic_net_set_multi(struct net_devi
}
/* set multicast addresses */
- for (mc = netdev->mc_list; mc; mc = mc->next) {
+ for (mc = netdev->mc.list; mc; mc = mc->next) {
addr = 0;
p = mc->dmi_addr;
for (i = 0; i < ETH_ALEN; i++) {
--- wireless-testing.orig/drivers/net/qlge/qlge_main.c 2009-04-09 10:00:17.000000000 +0200
+++ wireless-testing/drivers/net/qlge/qlge_main.c 2009-06-13 12:29:41.000000000 +0200
@@ -3529,7 +3529,7 @@ static void qlge_set_multicast_list(stru
* transition is taking place.
*/
if ((ndev->flags & IFF_ALLMULTI) ||
- (ndev->mc_count > MAX_MULTICAST_ENTRIES)) {
+ (ndev->mc.count > MAX_MULTICAST_ENTRIES)) {
if (!test_bit(QL_ALLMULTI, &qdev->flags)) {
if (ql_set_routing_reg
(qdev, RT_IDX_ALLMULTI_SLOT, RT_IDX_MCAST, 1)) {
@@ -3551,11 +3551,11 @@ static void qlge_set_multicast_list(stru
}
}
- if (ndev->mc_count) {
+ if (ndev->mc.count) {
status = ql_sem_spinlock(qdev, SEM_MAC_ADDR_MASK);
if (status)
goto exit;
- for (i = 0, mc_ptr = ndev->mc_list; mc_ptr;
+ for (i = 0, mc_ptr = ndev->mc.list; mc_ptr;
i++, mc_ptr = mc_ptr->next)
if (ql_set_mac_addr_reg(qdev, (u8 *) mc_ptr->dmi_addr,
MAC_ADDR_TYPE_MULTI_MAC, i)) {
--- wireless-testing.orig/drivers/net/r6040.c 2009-04-16 02:16:35.000000000 +0200
+++ wireless-testing/drivers/net/r6040.c 2009-06-13 12:29:41.000000000 +0200
@@ -931,7 +931,7 @@ static void r6040_multicast_list(struct
u16 *adrp;
u16 reg;
unsigned long flags;
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
int i;
/* MAC Address */
@@ -951,7 +951,7 @@ static void r6040_multicast_list(struct
}
/* Too many multicast addresses
* accept all traffic */
- else if ((dev->mc_count > MCAST_MAX)
+ else if ((dev->mc.count > MCAST_MAX)
|| (dev->flags & IFF_ALLMULTI))
reg |= 0x0020;
@@ -959,14 +959,14 @@ static void r6040_multicast_list(struct
spin_unlock_irqrestore(&lp->lock, flags);
/* Build the hash table */
- if (dev->mc_count > MCAST_MAX) {
+ if (dev->mc.count > MCAST_MAX) {
u16 hash_table[4];
u32 crc;
for (i = 0; i < 4; i++)
hash_table[i] = 0;
- for (i = 0; i < dev->mc_count; i++) {
+ for (i = 0; i < dev->mc.count; i++) {
char *addrs = dmi->dmi_addr;
dmi = dmi->next;
@@ -988,14 +988,14 @@ static void r6040_multicast_list(struct
iowrite16(hash_table[3], ioaddr + MAR3);
}
/* Multicast Address 1~4 case */
- for (i = 0, dmi; (i < dev->mc_count) && (i < MCAST_MAX); i++) {
+ for (i = 0, dmi; (i < dev->mc.count) && (i < MCAST_MAX); i++) {
adrp = (u16 *)dmi->dmi_addr;
iowrite16(adrp[0], ioaddr + MID_1L + 8*i);
iowrite16(adrp[1], ioaddr + MID_1M + 8*i);
iowrite16(adrp[2], ioaddr + MID_1H + 8*i);
dmi = dmi->next;
}
- for (i = dev->mc_count; i < MCAST_MAX; i++) {
+ for (i = dev->mc.count; i < MCAST_MAX; i++) {
iowrite16(0xffff, ioaddr + MID_0L + 8*i);
iowrite16(0xffff, ioaddr + MID_0M + 8*i);
iowrite16(0xffff, ioaddr + MID_0H + 8*i);
--- wireless-testing.orig/drivers/net/r8169.c 2009-06-11 11:04:46.000000000 +0200
+++ wireless-testing/drivers/net/r8169.c 2009-06-13 12:29:41.000000000 +0200
@@ -3742,7 +3742,7 @@ static void rtl_set_rx_mode(struct net_d
AcceptBroadcast | AcceptMulticast | AcceptMyPhys |
AcceptAllPhys;
mc_filter[1] = mc_filter[0] = 0xffffffff;
- } else if ((dev->mc_count > multicast_filter_limit)
+ } else if ((dev->mc.count > multicast_filter_limit)
|| (dev->flags & IFF_ALLMULTI)) {
/* Too many to filter perfectly -- accept all multicasts. */
rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys;
@@ -3753,7 +3753,7 @@ static void rtl_set_rx_mode(struct net_d
rx_mode = AcceptBroadcast | AcceptMyPhys;
mc_filter[1] = mc_filter[0] = 0;
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
int bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26;
mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31);
--- wireless-testing.orig/drivers/net/s2io.c 2009-04-09 10:00:17.000000000 +0200
+++ wireless-testing/drivers/net/s2io.c 2009-06-13 12:29:41.000000000 +0200
@@ -5038,8 +5038,8 @@ static void s2io_set_multicast(struct ne
}
/* Update individual M_CAST address list */
- if ((!sp->m_cast_flg) && dev->mc_count) {
- if (dev->mc_count >
+ if ((!sp->m_cast_flg) && dev->mc.count) {
+ if (dev->mc.count >
(config->max_mc_addr - config->max_mac_addr)) {
DBG_PRINT(ERR_DBG, "%s: No more Rx filters ",
dev->name);
@@ -5049,7 +5049,7 @@ static void s2io_set_multicast(struct ne
}
prev_cnt = sp->mc_addr_count;
- sp->mc_addr_count = dev->mc_count;
+ sp->mc_addr_count = dev->mc.count;
/* Clear out the previous list of Mc in the H/W. */
for (i = 0; i < prev_cnt; i++) {
@@ -5075,7 +5075,7 @@ static void s2io_set_multicast(struct ne
}
/* Create the new Rx filter list and update the same in H/W. */
- for (i = 0, mclist = dev->mc_list; i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; i < dev->mc.count;
i++, mclist = mclist->next) {
memcpy(sp->usr_addrs[i].addr, mclist->dmi_addr,
ETH_ALEN);
--- wireless-testing.orig/drivers/net/sb1250-mac.c 2009-04-09 10:00:17.000000000 +0200
+++ wireless-testing/drivers/net/sb1250-mac.c 2009-06-13 12:29:41.000000000 +0200
@@ -2162,7 +2162,7 @@ static void sbmac_setmulti(struct sbmac_
* XXX if the table overflows */
idx = 1; /* skip station address */
- mclist = dev->mc_list;
+ mclist = dev->mc.list;
while (mclist && (idx < MAC_ADDR_COUNT)) {
reg = sbmac_addr2reg(mclist->dmi_addr);
port = sc->sbm_base + R_MAC_ADDR_BASE+(idx * sizeof(uint64_t));
--- wireless-testing.orig/drivers/net/sc92031.c 2009-04-09 10:00:17.000000000 +0200
+++ wireless-testing/drivers/net/sc92031.c 2009-06-13 12:29:41.000000000 +0200
@@ -429,13 +429,13 @@ static void _sc92031_set_mar(struct net_
u32 mar0 = 0, mar1 = 0;
if ((dev->flags & IFF_PROMISC)
- || dev->mc_count > multicast_filter_limit
+ || dev->mc.count > multicast_filter_limit
|| (dev->flags & IFF_ALLMULTI))
mar0 = mar1 = 0xffffffff;
else if (dev->flags & IFF_MULTICAST) {
struct dev_mc_list *mc_list;
- for (mc_list = dev->mc_list; mc_list; mc_list = mc_list->next) {
+ for (mc_list = dev->mc.list; mc_list; mc_list = mc_list->next) {
u32 crc;
unsigned bit = 0;
--- wireless-testing.orig/drivers/net/sfc/efx.c 2009-04-23 00:20:41.000000000 +0200
+++ wireless-testing/drivers/net/sfc/efx.c 2009-06-13 12:29:41.000000000 +0200
@@ -1526,7 +1526,7 @@ static int efx_set_mac_address(struct ne
static void efx_set_multicast_list(struct net_device *net_dev)
{
struct efx_nic *efx = netdev_priv(net_dev);
- struct dev_mc_list *mc_list = net_dev->mc_list;
+ struct dev_mc_list *mc_list = net_dev->mc.list;
union efx_multicast_hash *mc_hash = &efx->multicast_hash;
bool promiscuous = !!(net_dev->flags & IFF_PROMISC);
bool changed = (efx->promiscuous != promiscuous);
@@ -1541,7 +1541,7 @@ static void efx_set_multicast_list(struc
memset(mc_hash, 0xff, sizeof(*mc_hash));
} else {
memset(mc_hash, 0x00, sizeof(*mc_hash));
- for (i = 0; i < net_dev->mc_count; i++) {
+ for (i = 0; i < net_dev->mc.count; i++) {
crc = ether_crc_le(ETH_ALEN, mc_list->dmi_addr);
bit = crc & (EFX_MCAST_HASH_ENTRIES - 1);
set_bit_le(bit, mc_hash->byte);
--- wireless-testing.orig/drivers/net/sgiseeq.c 2009-01-13 15:05:06.000000000 +0100
+++ wireless-testing/drivers/net/sgiseeq.c 2009-06-13 12:29:41.000000000 +0200
@@ -661,7 +661,7 @@ static void sgiseeq_set_multicast(struct
if(dev->flags & IFF_PROMISC)
sp->mode = SEEQ_RCMD_RANY;
- else if ((dev->flags & IFF_ALLMULTI) || dev->mc_count)
+ else if ((dev->flags & IFF_ALLMULTI) || dev->mc.count)
sp->mode = SEEQ_RCMD_RBMCAST;
else
sp->mode = SEEQ_RCMD_RBCAST;
--- wireless-testing.orig/drivers/net/sis190.c 2009-04-09 10:00:17.000000000 +0200
+++ wireless-testing/drivers/net/sis190.c 2009-06-13 12:29:41.000000000 +0200
@@ -841,7 +841,7 @@ static void sis190_set_rx_mode(struct ne
AcceptBroadcast | AcceptMulticast | AcceptMyPhys |
AcceptAllPhys;
mc_filter[1] = mc_filter[0] = 0xffffffff;
- } else if ((dev->mc_count > multicast_filter_limit) ||
+ } else if ((dev->mc.count > multicast_filter_limit) ||
(dev->flags & IFF_ALLMULTI)) {
/* Too many to filter perfectly -- accept all multicasts. */
rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys;
@@ -852,7 +852,7 @@ static void sis190_set_rx_mode(struct ne
rx_mode = AcceptBroadcast | AcceptMyPhys;
mc_filter[1] = mc_filter[0] = 0;
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
int bit_nr =
ether_crc(ETH_ALEN, mclist->dmi_addr) & 0x3f;
--- wireless-testing.orig/drivers/net/sis900.c 2009-04-09 10:00:17.000000000 +0200
+++ wireless-testing/drivers/net/sis900.c 2009-06-13 12:29:41.000000000 +0200
@@ -2288,7 +2288,7 @@ static void set_rx_mode(struct net_devic
rx_mode = RFPromiscuous;
for (i = 0; i < table_entries; i++)
mc_filter[i] = 0xffff;
- } else if ((net_dev->mc_count > multicast_filter_limit) ||
+ } else if ((net_dev->mc.count > multicast_filter_limit) ||
(net_dev->flags & IFF_ALLMULTI)) {
/* too many multicast addresses or accept all multicast packet */
rx_mode = RFAAB | RFAAM;
@@ -2300,8 +2300,8 @@ static void set_rx_mode(struct net_devic
* packets */
struct dev_mc_list *mclist;
rx_mode = RFAAB;
- for (i = 0, mclist = net_dev->mc_list;
- mclist && i < net_dev->mc_count;
+ for (i = 0, mclist = net_dev->mc.list;
+ mclist && i < net_dev->mc.count;
i++, mclist = mclist->next) {
unsigned int bit_nr =
sis900_mcast_bitnr(mclist->dmi_addr, sis_priv->chipset_rev);
--- wireless-testing.orig/drivers/net/skfp/skfddi.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/skfp/skfddi.c 2009-06-13 12:29:41.000000000 +0200
@@ -882,14 +882,14 @@ static void skfp_ctl_set_multicast_list_
if (dev->flags & IFF_ALLMULTI) {
mac_drv_rx_mode(smc, RX_ENABLE_ALLMULTI);
PRINTK(KERN_INFO "ENABLE ALL MC ADDRESSES\n");
- } else if (dev->mc_count > 0) {
- if (dev->mc_count <= FPMAX_MULTICAST) {
+ } else if (dev->mc.count > 0) {
+ if (dev->mc.count <= FPMAX_MULTICAST) {
/* use exact filtering */
// point to first multicast addr
- dmi = dev->mc_list;
+ dmi = dev->mc.list;
- for (i = 0; i < dev->mc_count; i++) {
+ for (i = 0; i < dev->mc.count; i++) {
mac_add_multicast(smc,
(struct fddi_addr *)dmi->dmi_addr,
1);
--- wireless-testing.orig/drivers/net/skge.c 2009-04-23 00:20:41.000000000 +0200
+++ wireless-testing/drivers/net/skge.c 2009-06-13 12:29:42.000000000 +0200
@@ -2934,8 +2934,8 @@ static void genesis_set_multicast(struct
struct skge_port *skge = netdev_priv(dev);
struct skge_hw *hw = skge->hw;
int port = skge->port;
- int i, count = dev->mc_count;
- struct dev_mc_list *list = dev->mc_list;
+ int i, count = dev->mc.count;
+ struct dev_mc_list *list = dev->mc.list;
u32 mode;
u8 filter[8];
@@ -2974,7 +2974,7 @@ static void yukon_set_multicast(struct n
struct skge_port *skge = netdev_priv(dev);
struct skge_hw *hw = skge->hw;
int port = skge->port;
- struct dev_mc_list *list = dev->mc_list;
+ struct dev_mc_list *list = dev->mc.list;
int rx_pause = (skge->flow_status == FLOW_STAT_REM_SEND
|| skge->flow_status == FLOW_STAT_SYMMETRIC);
u16 reg;
@@ -2989,7 +2989,7 @@ static void yukon_set_multicast(struct n
reg &= ~(GM_RXCR_UCF_ENA | GM_RXCR_MCF_ENA);
else if (dev->flags & IFF_ALLMULTI) /* all multicast */
memset(filter, 0xff, sizeof(filter));
- else if (dev->mc_count == 0 && !rx_pause)/* no multicast */
+ else if (dev->mc.count == 0 && !rx_pause)/* no multicast */
reg &= ~GM_RXCR_MCF_ENA;
else {
int i;
@@ -2998,7 +2998,7 @@ static void yukon_set_multicast(struct n
if (rx_pause)
yukon_add_filter(filter, pause_mc_addr);
- for (i = 0; list && i < dev->mc_count; i++, list = list->next)
+ for (i = 0; list && i < dev->mc.count; i++, list = list->next)
yukon_add_filter(filter, list->dmi_addr);
}
--- wireless-testing.orig/drivers/net/sky2.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/sky2.c 2009-06-13 12:29:43.000000000 +0200
@@ -3380,7 +3380,7 @@ static void sky2_set_multicast(struct ne
struct sky2_port *sky2 = netdev_priv(dev);
struct sky2_hw *hw = sky2->hw;
unsigned port = sky2->port;
- struct dev_mc_list *list = dev->mc_list;
+ struct dev_mc_list *list = dev->mc.list;
u16 reg;
u8 filter[8];
int rx_pause;
@@ -3396,7 +3396,7 @@ static void sky2_set_multicast(struct ne
reg &= ~(GM_RXCR_UCF_ENA | GM_RXCR_MCF_ENA);
else if (dev->flags & IFF_ALLMULTI)
memset(filter, 0xff, sizeof(filter));
- else if (dev->mc_count == 0 && !rx_pause)
+ else if (dev->mc.count == 0 && !rx_pause)
reg &= ~GM_RXCR_MCF_ENA;
else {
int i;
@@ -3405,7 +3405,7 @@ static void sky2_set_multicast(struct ne
if (rx_pause)
sky2_add_filter(filter, pause_mc_addr);
- for (i = 0; list && i < dev->mc_count; i++, list = list->next)
+ for (i = 0; list && i < dev->mc.count; i++, list = list->next)
sky2_add_filter(filter, list->dmi_addr);
}
--- wireless-testing.orig/drivers/net/smc911x.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/smc911x.c 2009-06-13 12:29:43.000000000 +0200
@@ -1323,7 +1323,7 @@ static void smc911x_set_multicast_list(s
* I don't need to zero the multicast table, because the flag is
* checked before the table is
*/
- else if (dev->flags & IFF_ALLMULTI || dev->mc_count > 16) {
+ else if (dev->flags & IFF_ALLMULTI || dev->mc.count > 16) {
DBG(SMC_DEBUG_MISC, "%s: RCR_ALMUL\n", dev->name);
mcr |= MAC_CR_MCPAS_;
}
@@ -1340,7 +1340,7 @@ static void smc911x_set_multicast_list(s
* the number of the 32 bit register, while the low 5 bits are the bit
* within that register.
*/
- else if (dev->mc_count) {
+ else if (dev->mc.count) {
int i;
struct dev_mc_list *cur_addr;
@@ -1350,8 +1350,8 @@ static void smc911x_set_multicast_list(s
/* start with a table of all zeros: reject all */
memset(multicast_table, 0, sizeof(multicast_table));
- cur_addr = dev->mc_list;
- for (i = 0; i < dev->mc_count; i++, cur_addr = cur_addr->next) {
+ cur_addr = dev->mc.list;
+ for (i = 0; i < dev->mc.count; i++, cur_addr = cur_addr->next) {
u32 position;
/* do we have a pointer here? */
--- wireless-testing.orig/drivers/net/smc9194.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/smc9194.c 2009-06-13 12:29:43.000000000 +0200
@@ -1540,7 +1540,7 @@ static void smc_set_multicast_list(struc
/* We just get all multicast packets even if we only want them
. from one source. This will be changed at some future
. point. */
- else if (dev->mc_count ) {
+ else if (dev->mc.count) {
/* support hardware multicasting */
/* be sure I get rid of flags I might have set */
@@ -1548,7 +1548,7 @@ static void smc_set_multicast_list(struc
ioaddr + RCR );
/* NOTE: this has to set the bank, so make sure it is the
last thing called. The bank is set to zero at the top */
- smc_setmulticast( ioaddr, dev->mc_count, dev->mc_list );
+ smc_setmulticast( ioaddr, dev->mc.count, dev->mc.list);
}
else {
outw( inw( ioaddr + RCR ) & ~(RCR_PROMISC | RCR_ALMUL),
--- wireless-testing.orig/drivers/net/smc91x.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/smc91x.c 2009-06-13 12:29:43.000000000 +0200
@@ -1391,7 +1391,7 @@ static void smc_set_multicast_list(struc
* I don't need to zero the multicast table, because the flag is
* checked before the table is
*/
- else if (dev->flags & IFF_ALLMULTI || dev->mc_count > 16) {
+ else if (dev->flags & IFF_ALLMULTI || dev->mc.count > 16) {
DBG(2, "%s: RCR_ALMUL\n", dev->name);
lp->rcr_cur_mode |= RCR_ALMUL;
}
@@ -1408,7 +1408,7 @@ static void smc_set_multicast_list(struc
* the number of the 8 bit register, while the low 3 bits are the bit
* within that register.
*/
- else if (dev->mc_count) {
+ else if (dev->mc.count) {
int i;
struct dev_mc_list *cur_addr;
@@ -1418,8 +1418,8 @@ static void smc_set_multicast_list(struc
/* start with a table of all zeros: reject all */
memset(multicast_table, 0, sizeof(multicast_table));
- cur_addr = dev->mc_list;
- for (i = 0; i < dev->mc_count; i++, cur_addr = cur_addr->next) {
+ cur_addr = dev->mc.list;
+ for (i = 0; i < dev->mc.count; i++, cur_addr = cur_addr->next) {
int position;
/* do we have a pointer here? */
--- wireless-testing.orig/drivers/net/smsc911x.c 2009-04-16 02:16:35.000000000 +0200
+++ wireless-testing/drivers/net/smsc911x.c 2009-06-13 12:29:43.000000000 +0200
@@ -1370,12 +1370,12 @@ static void smsc911x_set_multicast_list(
pdata->clear_bits_mask = (MAC_CR_PRMS_ | MAC_CR_HPFILT_);
pdata->hashhi = 0;
pdata->hashlo = 0;
- } else if (dev->mc_count > 0) {
+ } else if (dev->mc.count > 0) {
/* Enabling specific multicast addresses */
unsigned int hash_high = 0;
unsigned int hash_low = 0;
unsigned int count = 0;
- struct dev_mc_list *mc_list = dev->mc_list;
+ struct dev_mc_list *mc_list = dev->mc.list;
pdata->set_bits_mask = MAC_CR_HPFILT_;
pdata->clear_bits_mask = (MAC_CR_PRMS_ | MAC_CR_MCPAS_);
@@ -1395,8 +1395,8 @@ static void smsc911x_set_multicast_list(
}
mc_list = mc_list->next;
}
- if (count != (unsigned int)dev->mc_count)
- SMSC_WARNING(DRV, "mc_count != dev->mc_count");
+ if (count != (unsigned int)dev->mc.count)
+ SMSC_WARNING(DRV, "mc_count != dev->mc.count");
pdata->hashhi = hash_high;
pdata->hashlo = hash_low;
--- wireless-testing.orig/drivers/net/smsc9420.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/smsc9420.c 2009-06-13 12:29:43.000000000 +0200
@@ -1048,8 +1048,8 @@ static void smsc9420_set_multicast_list(
mac_cr &= (~MAC_CR_PRMS_);
mac_cr |= MAC_CR_MCPAS_;
mac_cr &= (~MAC_CR_HPFILT_);
- } else if (dev->mc_count > 0) {
- struct dev_mc_list *mc_list = dev->mc_list;
+ } else if (dev->mc.count > 0) {
+ struct dev_mc_list *mc_list = dev->mc.list;
u32 hash_lo = 0, hash_hi = 0;
smsc_dbg(HW, "Multicast filter enabled");
--- wireless-testing.orig/drivers/net/sonic.c 2009-01-13 15:05:07.000000000 +0100
+++ wireless-testing/drivers/net/sonic.c 2009-06-13 12:29:43.000000000 +0200
@@ -531,7 +531,7 @@ static void sonic_multicast_list(struct
{
struct sonic_local *lp = netdev_priv(dev);
unsigned int rcr;
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
unsigned char *addr;
int i;
@@ -541,13 +541,13 @@ static void sonic_multicast_list(struct
if (dev->flags & IFF_PROMISC) { /* set promiscuous mode */
rcr |= SONIC_RCR_PRO;
} else {
- if ((dev->flags & IFF_ALLMULTI) || (dev->mc_count > 15)) {
+ if ((dev->flags & IFF_ALLMULTI) || (dev->mc.count > 15)) {
rcr |= SONIC_RCR_AMC;
} else {
if (sonic_debug > 2)
- printk("sonic_multicast_list: mc_count %d\n", dev->mc_count);
+ printk("sonic_multicast_list: mc_count %d\n", dev->mc.count);
sonic_set_cam_enable(dev, 1); /* always enable our own address */
- for (i = 1; i <= dev->mc_count; i++) {
+ for (i = 1; i <= dev->mc.count; i++) {
addr = dmi->dmi_addr;
dmi = dmi->next;
sonic_cda_put(dev, i, SONIC_CD_CAP0, addr[1] << 8 | addr[0]);
--- wireless-testing.orig/drivers/net/spider_net.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/spider_net.c 2009-06-13 12:29:44.000000000 +0200
@@ -645,7 +645,7 @@ spider_net_set_multi(struct net_device *
hash = spider_net_get_multicast_hash(netdev, netdev->broadcast); */
set_bit(0xfd, bitmask);
- for (mc = netdev->mc_list; mc; mc = mc->next) {
+ for (mc = netdev->mc.list; mc; mc = mc->next) {
hash = spider_net_get_multicast_hash(netdev, mc->dmi_addr);
set_bit(hash, bitmask);
}
--- wireless-testing.orig/drivers/net/starfire.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/starfire.c 2009-06-13 12:29:44.000000000 +0200
@@ -1793,15 +1793,15 @@ static void set_rx_mode(struct net_devic
if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */
rx_mode |= AcceptAll;
- } else if ((dev->mc_count > multicast_filter_limit)
+ } else if ((dev->mc.count > multicast_filter_limit)
|| (dev->flags & IFF_ALLMULTI)) {
/* Too many to match, or accept all multicasts. */
rx_mode |= AcceptBroadcast|AcceptAllMulticast|PerfectFilter;
- } else if (dev->mc_count <= 14) {
+ } else if (dev->mc.count <= 14) {
/* Use the 16 element perfect filter, skip first two entries. */
void __iomem *filter_addr = ioaddr + PerfFilterTable + 2 * 16;
__be16 *eaddrs;
- for (i = 2, mclist = dev->mc_list; mclist && i < dev->mc_count + 2;
+ for (i = 2, mclist = dev->mc.list; mclist && i < dev->mc.count + 2;
i++, mclist = mclist->next) {
eaddrs = (__be16 *)mclist->dmi_addr;
writew(be16_to_cpu(eaddrs[2]), filter_addr); filter_addr += 4;
@@ -1822,7 +1822,7 @@ static void set_rx_mode(struct net_devic
__le16 mc_filter[32] __attribute__ ((aligned(sizeof(long)))); /* Multicast hash filter */
memset(mc_filter, 0, sizeof(mc_filter));
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
/* The chip uses the upper 9 CRC bits
as index into the hash table */
--- wireless-testing.orig/drivers/net/sun3_82586.c 2009-04-23 00:20:41.000000000 +0200
+++ wireless-testing/drivers/net/sun3_82586.c 2009-06-13 12:29:44.000000000 +0200
@@ -413,8 +413,8 @@ static int init586(struct net_device *de
volatile struct iasetup_cmd_struct *ias_cmd;
volatile struct tdr_cmd_struct *tdr_cmd;
volatile struct mcsetup_cmd_struct *mc_cmd;
- struct dev_mc_list *dmi=dev->mc_list;
- int num_addrs=dev->mc_count;
+ struct dev_mc_list *dmi=dev->mc.list;
+ int num_addrs=dev->mc.count;
ptr = (void *) ((char *)p->scb + sizeof(struct scb_struct));
--- wireless-testing.orig/drivers/net/sun3lance.c 2009-02-17 22:07:37.000000000 +0100
+++ wireless-testing/drivers/net/sun3lance.c 2009-06-13 12:29:44.000000000 +0200
@@ -912,7 +912,7 @@ static void set_multicast_list( struct n
REGA( CSR15 ) = 0x8000; /* Set promiscuous mode */
} else {
short multicast_table[4];
- int num_addrs = dev->mc_count;
+ int num_addrs = dev->mc.count;
int i;
/* We don't use the multicast table, but rely on upper-layer
* filtering. */
--- wireless-testing.orig/drivers/net/sunbmac.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/sunbmac.c 2009-06-13 12:29:44.000000000 +0200
@@ -999,7 +999,7 @@ static void bigmac_set_multicast(struct
{
struct bigmac *bp = netdev_priv(dev);
void __iomem *bregs = bp->bregs;
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
char *addrs;
int i;
u32 tmp, crc;
@@ -1013,7 +1013,7 @@ static void bigmac_set_multicast(struct
while ((sbus_readl(bregs + BMAC_RXCFG) & BIGMAC_RXCFG_ENABLE) != 0)
udelay(20);
- if ((dev->flags & IFF_ALLMULTI) || (dev->mc_count > 64)) {
+ if ((dev->flags & IFF_ALLMULTI) || (dev->mc.count > 64)) {
sbus_writel(0xffff, bregs + BMAC_HTABLE0);
sbus_writel(0xffff, bregs + BMAC_HTABLE1);
sbus_writel(0xffff, bregs + BMAC_HTABLE2);
@@ -1028,7 +1028,7 @@ static void bigmac_set_multicast(struct
for (i = 0; i < 4; i++)
hash_table[i] = 0;
- for (i = 0; i < dev->mc_count; i++) {
+ for (i = 0; i < dev->mc.count; i++) {
addrs = dmi->dmi_addr;
dmi = dmi->next;
--- wireless-testing.orig/drivers/net/sundance.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/sundance.c 2009-06-13 12:29:44.000000000 +0200
@@ -1514,18 +1514,18 @@ static void set_rx_mode(struct net_devic
if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */
memset(mc_filter, 0xff, sizeof(mc_filter));
rx_mode = AcceptBroadcast | AcceptMulticast | AcceptAll | AcceptMyPhys;
- } else if ((dev->mc_count > multicast_filter_limit)
+ } else if ((dev->mc.count > multicast_filter_limit)
|| (dev->flags & IFF_ALLMULTI)) {
/* Too many to match, or accept all multicasts. */
memset(mc_filter, 0xff, sizeof(mc_filter));
rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys;
- } else if (dev->mc_count) {
+ } else if (dev->mc.count) {
struct dev_mc_list *mclist;
int bit;
int index;
int crc;
memset (mc_filter, 0, sizeof (mc_filter));
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
crc = ether_crc_le (ETH_ALEN, mclist->dmi_addr);
for (index=0, bit=0; bit < 6; bit++, crc <<= 1)
--- wireless-testing.orig/drivers/net/sungem.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/sungem.c 2009-06-13 12:29:45.000000000 +0200
@@ -1837,7 +1837,7 @@ static u32 gem_setup_multicast(struct ge
int i;
if ((gp->dev->flags & IFF_ALLMULTI) ||
- (gp->dev->mc_count > 256)) {
+ (gp->dev->mc.count > 256)) {
for (i=0; i<16; i++)
writel(0xffff, gp->regs + MAC_HASH0 + (i << 2));
rxcfg |= MAC_RXCFG_HFE;
@@ -1846,13 +1846,13 @@ static u32 gem_setup_multicast(struct ge
} else {
u16 hash_table[16];
u32 crc;
- struct dev_mc_list *dmi = gp->dev->mc_list;
+ struct dev_mc_list *dmi = gp->dev->mc.list;
int i;
for (i = 0; i < 16; i++)
hash_table[i] = 0;
- for (i = 0; i < gp->dev->mc_count; i++) {
+ for (i = 0; i < gp->dev->mc.count; i++) {
char *addrs = dmi->dmi_addr;
dmi = dmi->next;
--- wireless-testing.orig/drivers/net/sunhme.c 2009-04-01 23:46:22.000000000 +0200
+++ wireless-testing/drivers/net/sunhme.c 2009-06-13 12:29:45.000000000 +0200
@@ -1510,14 +1510,14 @@ static int happy_meal_init(struct happy_
HMD(("htable, "));
if ((hp->dev->flags & IFF_ALLMULTI) ||
- (hp->dev->mc_count > 64)) {
+ (hp->dev->mc.count > 64)) {
hme_write32(hp, bregs + BMAC_HTABLE0, 0xffff);
hme_write32(hp, bregs + BMAC_HTABLE1, 0xffff);
hme_write32(hp, bregs + BMAC_HTABLE2, 0xffff);
hme_write32(hp, bregs + BMAC_HTABLE3, 0xffff);
} else if ((hp->dev->flags & IFF_PROMISC) == 0) {
u16 hash_table[4];
- struct dev_mc_list *dmi = hp->dev->mc_list;
+ struct dev_mc_list *dmi = hp->dev->mc.list;
char *addrs;
int i;
u32 crc;
@@ -1525,7 +1525,7 @@ static int happy_meal_init(struct happy_
for (i = 0; i < 4; i++)
hash_table[i] = 0;
- for (i = 0; i < hp->dev->mc_count; i++) {
+ for (i = 0; i < hp->dev->mc.count; i++) {
addrs = dmi->dmi_addr;
dmi = dmi->next;
@@ -2356,14 +2356,14 @@ static void happy_meal_set_multicast(str
{
struct happy_meal *hp = netdev_priv(dev);
void __iomem *bregs = hp->bigmacregs;
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
char *addrs;
int i;
u32 crc;
spin_lock_irq(&hp->happy_lock);
- if ((dev->flags & IFF_ALLMULTI) || (dev->mc_count > 64)) {
+ if ((dev->flags & IFF_ALLMULTI) || (dev->mc.count > 64)) {
hme_write32(hp, bregs + BMAC_HTABLE0, 0xffff);
hme_write32(hp, bregs + BMAC_HTABLE1, 0xffff);
hme_write32(hp, bregs + BMAC_HTABLE2, 0xffff);
@@ -2377,7 +2377,7 @@ static void happy_meal_set_multicast(str
for (i = 0; i < 4; i++)
hash_table[i] = 0;
- for (i = 0; i < dev->mc_count; i++) {
+ for (i = 0; i < dev->mc.count; i++) {
addrs = dmi->dmi_addr;
dmi = dmi->next;
--- wireless-testing.orig/drivers/net/sunlance.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/sunlance.c 2009-06-13 12:29:45.000000000 +0200
@@ -1170,7 +1170,7 @@ static int lance_start_xmit(struct sk_bu
static void lance_load_multicast(struct net_device *dev)
{
struct lance_private *lp = netdev_priv(dev);
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
char *addrs;
int i;
u32 crc;
@@ -1196,7 +1196,7 @@ static void lance_load_multicast(struct
return;
/* Add addresses */
- for (i = 0; i < dev->mc_count; i++) {
+ for (i = 0; i < dev->mc.count; i++) {
addrs = dmi->dmi_addr;
dmi = dmi->next;
--- wireless-testing.orig/drivers/net/sunqe.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/sunqe.c 2009-06-13 12:29:45.000000000 +0200
@@ -627,7 +627,7 @@ static int qe_start_xmit(struct sk_buff
static void qe_set_multicast(struct net_device *dev)
{
struct sunqe *qep = netdev_priv(dev);
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
u8 new_mconfig = qep->mconfig;
char *addrs;
int i;
@@ -636,7 +636,7 @@ static void qe_set_multicast(struct net_
/* Lock out others. */
netif_stop_queue(dev);
- if ((dev->flags & IFF_ALLMULTI) || (dev->mc_count > 64)) {
+ if ((dev->flags & IFF_ALLMULTI) || (dev->mc.count > 64)) {
sbus_writeb(MREGS_IACONFIG_ACHNGE | MREGS_IACONFIG_LARESET,
qep->mregs + MREGS_IACONFIG);
while ((sbus_readb(qep->mregs + MREGS_IACONFIG) & MREGS_IACONFIG_ACHNGE) != 0)
@@ -653,7 +653,7 @@ static void qe_set_multicast(struct net_
for (i = 0; i < 4; i++)
hash_table[i] = 0;
- for (i = 0; i < dev->mc_count; i++) {
+ for (i = 0; i < dev->mc.count; i++) {
addrs = dmi->dmi_addr;
dmi = dmi->next;
--- wireless-testing.orig/drivers/net/sunvnet.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/sunvnet.c 2009-06-13 12:29:45.000000000 +0200
@@ -765,7 +765,7 @@ static void __update_mc_list(struct vnet
{
struct dev_addr_list *p;
- for (p = dev->mc_list; p; p = p->next) {
+ for (p = dev->mc.list; p; p = p->next) {
struct vnet_mcast_entry *m;
m = __vnet_mc_find(vp, p->dmi_addr);
--- wireless-testing.orig/drivers/net/tc35815.c 2009-04-23 00:20:41.000000000 +0200
+++ wireless-testing/drivers/net/tc35815.c 2009-06-13 12:29:45.000000000 +0200
@@ -2217,18 +2217,18 @@ tc35815_set_multicast_list(struct net_de
/* Enable promiscuous mode */
tc_writel(CAM_CompEn | CAM_BroadAcc | CAM_GroupAcc | CAM_StationAcc, &tr->CAM_Ctl);
} else if ((dev->flags & IFF_ALLMULTI) ||
- dev->mc_count > CAM_ENTRY_MAX - 3) {
+ dev->mc.count > CAM_ENTRY_MAX - 3) {
/* CAM 0, 1, 20 are reserved. */
/* Disable promiscuous mode, use normal mode. */
tc_writel(CAM_CompEn | CAM_BroadAcc | CAM_GroupAcc, &tr->CAM_Ctl);
- } else if (dev->mc_count) {
- struct dev_mc_list *cur_addr = dev->mc_list;
+ } else if (dev->mc.count) {
+ struct dev_mc_list *cur_addr = dev->mc.list;
int i;
int ena_bits = CAM_Ena_Bit(CAM_ENTRY_SOURCE);
tc_writel(0, &tr->CAM_Ctl);
/* Walk the address list, and load the filter */
- for (i = 0; i < dev->mc_count; i++, cur_addr = cur_addr->next) {
+ for (i = 0; i < dev->mc.count; i++, cur_addr = cur_addr->next) {
if (!cur_addr)
break;
/* entry 0,1 is reserved. */
--- wireless-testing.orig/drivers/net/tehuti.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/tehuti.c 2009-06-13 12:29:45.000000000 +0200
@@ -808,7 +808,7 @@ static void bdx_setmulti(struct net_devi
/* set IMF to accept all multicast frmaes */
for (i = 0; i < MAC_MCST_HASH_NUM; i++)
WRITE_REG(priv, regRX_MCST_HASH0 + i * 4, ~0);
- } else if (ndev->mc_count) {
+ } else if (ndev->mc.count) {
u8 hash;
struct dev_mc_list *mclist;
u32 reg, val;
@@ -826,7 +826,7 @@ static void bdx_setmulti(struct net_devi
/* TBD: sort addreses and write them in ascending order
* into RX_MAC_MCST regs. we skip this phase now and accept ALL
* multicast frames throu IMF */
- mclist = ndev->mc_list;
+ mclist = ndev->mc.list;
/* accept the rest of addresses throu IMF */
for (; mclist; mclist = mclist->next) {
@@ -840,7 +840,7 @@ static void bdx_setmulti(struct net_devi
}
} else {
- DBG("only own mac %d\n", ndev->mc_count);
+ DBG("only own mac %d\n", ndev->mc.count);
rxf_val |= GMAC_RX_FILTER_AB;
}
WRITE_REG(priv, regGMAC_RXF_A, rxf_val);
--- wireless-testing.orig/drivers/net/tg3.c 2009-04-30 23:07:18.000000000 +0200
+++ wireless-testing/drivers/net/tg3.c 2009-06-13 12:29:45.000000000 +0200
@@ -8397,7 +8397,7 @@ static void __tg3_set_rx_mode(struct net
} else if (dev->flags & IFF_ALLMULTI) {
/* Accept all multicast. */
tg3_set_multi (tp, 1);
- } else if (dev->mc_count < 1) {
+ } else if (dev->mc.count < 1) {
/* Reject all multicast. */
tg3_set_multi (tp, 0);
} else {
@@ -8409,7 +8409,7 @@ static void __tg3_set_rx_mode(struct net
u32 bit;
u32 crc;
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
crc = calc_crc (mclist->dmi_addr, ETH_ALEN);
--- wireless-testing.orig/drivers/net/tlan.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/tlan.c 2009-06-13 12:29:45.000000000 +0200
@@ -1316,7 +1316,7 @@ static struct net_device_stats *TLan_Get
static void TLan_SetMulticastList( struct net_device *dev )
{
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
u32 hash1 = 0;
u32 hash2 = 0;
int i;
@@ -1337,7 +1337,7 @@ static void TLan_SetMulticastList( struc
TLan_DioWrite32( dev->base_addr, TLAN_HASH_1, 0xFFFFFFFF );
TLan_DioWrite32( dev->base_addr, TLAN_HASH_2, 0xFFFFFFFF );
} else {
- for ( i = 0; i < dev->mc_count; i++ ) {
+ for ( i = 0; i < dev->mc.count; i++ ) {
if ( i < 3 ) {
TLan_SetMac( dev, i + 1,
(char *) &dmi->dmi_addr );
--- wireless-testing.orig/drivers/net/tokenring/3c359.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/tokenring/3c359.c 2009-06-13 12:29:46.000000000 +0200
@@ -1409,7 +1409,7 @@ static void xl_set_rx_mode(struct net_de
dev_mc_address[0] = dev_mc_address[1] = dev_mc_address[2] = dev_mc_address[3] = 0 ;
- for (i=0,dmi=dev->mc_list;i < dev->mc_count; i++,dmi = dmi->next) {
+ for (i=0,dmi=dev->mc.list;i < dev->mc.count; i++,dmi = dmi->next) {
dev_mc_address[0] |= dmi->dmi_addr[2] ;
dev_mc_address[1] |= dmi->dmi_addr[3] ;
dev_mc_address[2] |= dmi->dmi_addr[4] ;
--- wireless-testing.orig/drivers/net/tokenring/ibmtr.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/tokenring/ibmtr.c 2009-06-13 12:29:46.000000000 +0200
@@ -993,8 +993,8 @@ static void tok_set_multicast_list(struc
/*BMS ifconfig tr down or hot unplug a PCMCIA card ??hownowbrowncow*/
if (/*BMSHELPdev->start == 0 ||*/ ti->open_status != OPEN) return;
address[0] = address[1] = address[2] = address[3] = 0;
- mclist = dev->mc_list;
- for (i = 0; i < dev->mc_count; i++) {
+ mclist = dev->mc.list;
+ for (i = 0; i < dev->mc.count; i++) {
address[0] |= mclist->dmi_addr[2];
address[1] |= mclist->dmi_addr[3];
address[2] |= mclist->dmi_addr[4];
--- wireless-testing.orig/drivers/net/tokenring/lanstreamer.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/tokenring/lanstreamer.c 2009-06-13 12:30:14.000000000 +0200
@@ -1301,7 +1301,7 @@ static void streamer_set_rx_mode(struct
writel(streamer_priv->srb,streamer_mmio+LAPA);
dev_mc_address[0] = dev_mc_address[1] = dev_mc_address[2] = dev_mc_address[3] = 0 ;
- for (i=0,dmi=dev->mc_list;i < dev->mc_count; i++,dmi = dmi->next)
+ for (i=0,dmi=dev->mc.list;i < dev->mc.count; i++,dmi = dmi->next)
{
dev_mc_address[0] |= dmi->dmi_addr[2] ;
dev_mc_address[1] |= dmi->dmi_addr[3] ;
--- wireless-testing.orig/drivers/net/tokenring/olympic.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/tokenring/olympic.c 2009-06-13 12:30:10.000000000 +0200
@@ -1176,7 +1176,7 @@ static void olympic_set_rx_mode(struct n
dev_mc_address[0] = dev_mc_address[1] = dev_mc_address[2] = dev_mc_address[3] = 0 ;
- for (i=0,dmi=dev->mc_list;i < dev->mc_count; i++,dmi = dmi->next) {
+ for (i=0,dmi=dev->mc.list;i < dev->mc.count; i++,dmi = dmi->next) {
dev_mc_address[0] |= dmi->dmi_addr[2] ;
dev_mc_address[1] |= dmi->dmi_addr[3] ;
dev_mc_address[2] |= dmi->dmi_addr[4] ;
--- wireless-testing.orig/drivers/net/tokenring/tms380tr.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/tokenring/tms380tr.c 2009-06-13 12:29:46.000000000 +0200
@@ -1210,8 +1210,8 @@ static void tms380tr_set_multicast_list(
else
{
int i;
- struct dev_mc_list *mclist = dev->mc_list;
- for (i=0; i< dev->mc_count; i++)
+ struct dev_mc_list *mclist = dev->mc.list;
+ for (i=0; i< dev->mc.count; i++)
{
((char *)(&tp->ocpl.FunctAddr))[0] |=
mclist->dmi_addr[2];
--- wireless-testing.orig/drivers/net/tsi108_eth.c 2009-04-23 00:20:42.000000000 +0200
+++ wireless-testing/drivers/net/tsi108_eth.c 2009-06-13 12:29:46.000000000 +0200
@@ -1184,9 +1184,9 @@ static void tsi108_set_rx_mode(struct ne
rxcfg &= ~(TSI108_EC_RXCFG_UFE | TSI108_EC_RXCFG_MFE);
- if (dev->flags & IFF_ALLMULTI || dev->mc_count) {
+ if (dev->flags & IFF_ALLMULTI || dev->mc.count) {
int i;
- struct dev_mc_list *mc = dev->mc_list;
+ struct dev_mc_list *mc = dev->mc.list;
rxcfg |= TSI108_EC_RXCFG_MFE | TSI108_EC_RXCFG_MC_HASH;
memset(data->mc_hash, 0, sizeof(data->mc_hash));
--- wireless-testing.orig/drivers/net/tulip/de2104x.c 2009-02-17 22:07:37.000000000 +0100
+++ wireless-testing/drivers/net/tulip/de2104x.c 2009-06-13 12:29:46.000000000 +0200
@@ -662,7 +662,7 @@ static void build_setup_frame_hash(u16 *
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 < dev->mc.count;
i++, mclist = mclist->next) {
int index = ether_crc_le(ETH_ALEN, mclist->dmi_addr) & 0x1ff;
@@ -691,7 +691,7 @@ static void build_setup_frame_perfect(u1
/* 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 < dev->mc.count;
i++, mclist = mclist->next) {
eaddrs = (u16 *)mclist->dmi_addr;
*setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++;
@@ -726,7 +726,7 @@ static void __de_set_rx_mode (struct net
goto out;
}
- if ((dev->mc_count > 1000) || (dev->flags & IFF_ALLMULTI)) {
+ if ((dev->mc.count > 1000) || (dev->flags & IFF_ALLMULTI)) {
/* Too many to filter well -- accept all multicasts. */
macmode |= AcceptAllMulticast;
goto out;
@@ -734,7 +734,7 @@ static void __de_set_rx_mode (struct net
/* 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 (dev->mc.count > 14) /* Must use a multicast hash table. */
build_setup_frame_hash (de->setup_frame, dev);
else
build_setup_frame_perfect (de->setup_frame, dev);
--- wireless-testing.orig/drivers/net/tulip/de4x5.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/tulip/de4x5.c 2009-06-13 12:29:46.000000000 +0200
@@ -1952,7 +1952,7 @@ static void
SetMulticastFilter(struct net_device *dev)
{
struct de4x5_private *lp = netdev_priv(dev);
- struct dev_mc_list *dmi=dev->mc_list;
+ struct dev_mc_list *dmi=dev->mc.list;
u_long iobase = dev->base_addr;
int i, j, bit, byte;
u16 hashcode;
@@ -1964,10 +1964,10 @@ SetMulticastFilter(struct net_device *de
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) || (dev->mc.count > 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<dev->mc.count;i++) { /* for each address in the list */
addrs=dmi->dmi_addr;
dmi=dmi->next;
if ((*addrs & 0x01) == 1) { /* multicast address? */
@@ -1985,7 +1985,7 @@ SetMulticastFilter(struct net_device *de
}
}
} else { /* Perfect filtering */
- for (j=0; j<dev->mc_count; j++) {
+ for (j=0; j<dev->mc.count; j++) {
addrs=dmi->dmi_addr;
dmi=dmi->next;
for (i=0; i<ETH_ALEN; i++) {
--- wireless-testing.orig/drivers/net/tulip/dmfe.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/tulip/dmfe.c 2009-06-13 12:29:46.000000000 +0200
@@ -639,9 +639,9 @@ static void dmfe_init_dm910x(struct DEVI
/* Send setup frame */
if (db->chip_id == PCI_DM9132_ID)
- dm9132_id_table(dev, dev->mc_count); /* DM9132 */
+ dm9132_id_table(dev, dev->mc.count); /* DM9132 */
else
- send_filter_frame(dev, dev->mc_count); /* DM9102/DM9102A */
+ send_filter_frame(dev, dev->mc.count); /* DM9102/DM9102A */
/* Init CR7, interrupt active bit */
db->cr7_data = CR7_DEFAULT;
@@ -1046,19 +1046,19 @@ static void dmfe_set_filter_mode(struct
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 || dev->mc.count > DMFE_MAX_MULTICAST) {
+ DMFE_DBUG(0, "Pass all multicast address", dev->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", dev->mc.count);
if (db->chip_id == PCI_DM9132_ID)
- dm9132_id_table(dev, dev->mc_count); /* DM9132 */
+ dm9132_id_table(dev, dev->mc.count); /* DM9132 */
else
- send_filter_frame(dev, dev->mc_count); /* DM9102/DM9102A */
+ send_filter_frame(dev, dev->mc.count); /* DM9102/DM9102A */
spin_unlock_irqrestore(&db->lock, flags);
}
@@ -1461,7 +1461,7 @@ static void dm9132_id_table(struct DEVIC
hash_table[3] = 0x8000;
/* the multicast address in Hash Table : 64 bits */
- for (mcptr = dev->mc_list, i = 0; i < mc_cnt; i++, mcptr = mcptr->next) {
+ for (mcptr = dev->mc.list, i = 0; i < mc_cnt; i++, mcptr = mcptr->next) {
hash_val = cal_CRC( (char *) mcptr->dmi_addr, 6, 0) & 0x3f;
hash_table[hash_val / 16] |= (u16) 1 << (hash_val % 16);
}
@@ -1503,7 +1503,7 @@ static void send_filter_frame(struct DEV
*suptr++ = 0xffff;
/* fit the multicast address */
- for (mcptr = dev->mc_list, i = 0; i < mc_cnt; i++, mcptr = mcptr->next) {
+ for (mcptr = dev->mc.list, i = 0; i < mc_cnt; i++, mcptr = mcptr->next) {
addrptr = (u16 *) mcptr->dmi_addr;
*suptr++ = addrptr[0];
*suptr++ = addrptr[1];
--- wireless-testing.orig/drivers/net/tulip/tulip_core.c 2009-04-02 03:29:39.000000000 +0200
+++ wireless-testing/drivers/net/tulip/tulip_core.c 2009-06-13 12:29:46.000000000 +0200
@@ -980,7 +980,7 @@ static void build_setup_frame_hash(u16 *
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 < dev->mc.count;
i++, mclist = mclist->next) {
int index = ether_crc_le(ETH_ALEN, mclist->dmi_addr) & 0x1ff;
@@ -1009,7 +1009,7 @@ static void build_setup_frame_perfect(u1
/* 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 < dev->mc.count;
i++, mclist = mclist->next) {
eaddrs = (u16 *)mclist->dmi_addr;
*setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++;
@@ -1040,7 +1040,7 @@ static void set_rx_mode(struct net_devic
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 ((dev->mc.count > 1000) || (dev->flags & IFF_ALLMULTI)) {
/* Too many to filter well -- accept all multicasts. */
tp->csr6 |= AcceptAllMulticast;
csr6 |= AcceptAllMulticast;
@@ -1049,13 +1049,13 @@ static void set_rx_mode(struct net_devic
/* Should verify correctness on big-endian/__powerpc__ */
struct dev_mc_list *mclist;
int i;
- if (dev->mc_count > 64) { /* Arbitrary non-effective limit. */
+ if (dev->mc.count > 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;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
if (tp->flags & COMET_MAC_ADDR)
filterbit = ether_crc_le(ETH_ALEN, mclist->dmi_addr);
@@ -1090,7 +1090,7 @@ static void set_rx_mode(struct net_devic
/* 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 (dev->mc.count > 14) { /* Must use a multicast hash table. */
build_setup_frame_hash(tp->setup_frame, dev);
tx_flags = 0x08400000 | 192;
} else {
--- wireless-testing.orig/drivers/net/tulip/uli526x.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/tulip/uli526x.c 2009-06-13 12:29:46.000000000 +0200
@@ -547,7 +547,7 @@ static void uli526x_init(struct net_devi
update_cr6(db->cr6_data, ioaddr);
/* Send setup frame */
- send_filter_frame(dev, dev->mc_count); /* M5261/M5263 */
+ send_filter_frame(dev, dev->mc.count); /* M5261/M5263 */
/* Init CR7, interrupt active bit */
db->cr7_data = CR7_DEFAULT;
@@ -895,16 +895,16 @@ static void uli526x_set_filter_mode(stru
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 || dev->mc.count > ULI5261_MAX_MULTICAST) {
+ ULI526X_DBUG(0, "Pass all multicast address", dev->mc.count);
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", dev->mc.count);
+ send_filter_frame(dev, dev->mc.count); /* M5261/M5263 */
spin_unlock_irqrestore(&db->lock, flags);
}
@@ -1403,7 +1403,7 @@ static void send_filter_frame(struct net
*suptr++ = 0xffff << FLT_SHIFT;
/* fit the multicast address */
- for (mcptr = dev->mc_list, i = 0; i < mc_cnt; i++, mcptr = mcptr->next) {
+ for (mcptr = dev->mc.list, i = 0; i < mc_cnt; i++, mcptr = mcptr->next) {
addrptr = (u16 *) mcptr->dmi_addr;
*suptr++ = addrptr[0] << FLT_SHIFT;
*suptr++ = addrptr[1] << FLT_SHIFT;
--- wireless-testing.orig/drivers/net/tulip/winbond-840.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/tulip/winbond-840.c 2009-06-13 12:29:46.000000000 +0200
@@ -1357,7 +1357,7 @@ static u32 __set_rx_mode(struct net_devi
memset(mc_filter, 0xff, sizeof(mc_filter));
rx_mode = RxAcceptBroadcast | AcceptMulticast | RxAcceptAllPhys
| AcceptMyPhys;
- } else if ((dev->mc_count > multicast_filter_limit)
+ } else if ((dev->mc.count > multicast_filter_limit)
|| (dev->flags & IFF_ALLMULTI)) {
/* Too many to match, or accept all multicasts. */
memset(mc_filter, 0xff, sizeof(mc_filter));
@@ -1366,7 +1366,7 @@ static u32 __set_rx_mode(struct net_devi
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;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
int filterbit = (ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26) ^ 0x3F;
filterbit &= 0x3f;
--- wireless-testing.orig/drivers/net/typhoon.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/typhoon.c 2009-06-13 12:29:46.000000000 +0200
@@ -923,16 +923,16 @@ typhoon_set_rx_mode(struct net_device *d
filter = TYPHOON_RX_FILTER_DIRECTED | TYPHOON_RX_FILTER_BROADCAST;
if(dev->flags & IFF_PROMISC) {
filter |= TYPHOON_RX_FILTER_PROMISCOUS;
- } else if((dev->mc_count > multicast_filter_limit) ||
+ } else if((dev->mc.count > multicast_filter_limit) ||
(dev->flags & IFF_ALLMULTI)) {
/* Too many to match, or accept all multicasts. */
filter |= TYPHOON_RX_FILTER_ALL_MCAST;
- } else if(dev->mc_count) {
+ } else if(dev->mc.count) {
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;
+ for(i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
int bit = ether_crc(ETH_ALEN, mclist->dmi_addr) & 0x3f;
mc_filter[bit >> 5] |= 1 << (bit & 0x1f);
--- wireless-testing.orig/drivers/net/ucc_geth.c 2009-04-30 23:07:18.000000000 +0200
+++ wireless-testing/drivers/net/ucc_geth.c 2009-06-13 12:29:46.000000000 +0200
@@ -1969,9 +1969,9 @@ static void ucc_geth_set_multi(struct ne
out_be32(&p_82xx_addr_filt->gaddr_h, 0x0);
out_be32(&p_82xx_addr_filt->gaddr_l, 0x0);
- dmi = dev->mc_list;
+ dmi = dev->mc.list;
- for (i = 0; i < dev->mc_count; i++, dmi = dmi->next) {
+ for (i = 0; i < dev->mc.count; i++, dmi = dmi->next) {
/* Only support group multicast for now.
*/
--- wireless-testing.orig/drivers/net/usb/asix.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/usb/asix.c 2009-06-13 12:29:46.000000000 +0200
@@ -542,23 +542,23 @@ static void asix_set_multicast(struct ne
if (net->flags & IFF_PROMISC) {
rx_ctl |= AX_RX_CTL_PRO;
} else if (net->flags & IFF_ALLMULTI
- || net->mc_count > AX_MAX_MCAST) {
+ || net->mc.count > AX_MAX_MCAST) {
rx_ctl |= AX_RX_CTL_AMALL;
- } else if (net->mc_count == 0) {
+ } else if (net->mc.count == 0) {
/* just broadcast and directed */
} else {
/* We use the 20 byte dev->data
* for our 8 byte filter buffer
* to avoid allocating memory that
* is tricky to free later */
- struct dev_mc_list *mc_list = net->mc_list;
+ struct dev_mc_list *mc_list = net->mc.list;
u32 crc_bits;
int i;
memset(data->multi_filter, 0, AX_MCAST_FILTER_SIZE);
/* Build the multicast hash filter. */
- for (i = 0; i < net->mc_count; i++) {
+ for (i = 0; i < net->mc.count; i++) {
crc_bits =
ether_crc(ETH_ALEN,
mc_list->dmi_addr) >> 26;
@@ -754,23 +754,23 @@ static void ax88172_set_multicast(struct
if (net->flags & IFF_PROMISC) {
rx_ctl |= 0x01;
} else if (net->flags & IFF_ALLMULTI
- || net->mc_count > AX_MAX_MCAST) {
+ || net->mc.count > AX_MAX_MCAST) {
rx_ctl |= 0x02;
- } else if (net->mc_count == 0) {
+ } else if (net->mc.count == 0) {
/* just broadcast and directed */
} else {
/* We use the 20 byte dev->data
* for our 8 byte filter buffer
* to avoid allocating memory that
* is tricky to free later */
- struct dev_mc_list *mc_list = net->mc_list;
+ struct dev_mc_list *mc_list = net->mc.list;
u32 crc_bits;
int i;
memset(data->multi_filter, 0, AX_MCAST_FILTER_SIZE);
/* Build the multicast hash filter. */
- for (i = 0; i < net->mc_count; i++) {
+ for (i = 0; i < net->mc.count; i++) {
crc_bits =
ether_crc(ETH_ALEN,
mc_list->dmi_addr) >> 26;
--- wireless-testing.orig/drivers/net/usb/catc.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/usb/catc.c 2009-06-13 12:29:46.000000000 +0200
@@ -647,7 +647,7 @@ static void catc_set_multicast_list(stru
if (netdev->flags & IFF_ALLMULTI) {
memset(catc->multicast, 0xff, 64);
} else {
- for (i = 0, mc = netdev->mc_list; mc && i < netdev->mc_count; i++, mc = mc->next) {
+ for (i = 0, mc = netdev->mc.list; mc && i < netdev->mc.count; i++, mc = mc->next) {
u32 crc = ether_crc_le(6, mc->dmi_addr);
if (!catc->is_f5u011) {
catc->multicast[(crc >> 3) & 0x3f] |= 1 << (crc & 7);
--- wireless-testing.orig/drivers/net/usb/dm9601.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/usb/dm9601.c 2009-06-13 12:29:46.000000000 +0200
@@ -381,13 +381,13 @@ static void dm9601_set_multicast(struct
if (net->flags & IFF_PROMISC) {
rx_ctl |= 0x02;
- } else if (net->flags & IFF_ALLMULTI || net->mc_count > DM_MAX_MCAST) {
+ } else if (net->flags & IFF_ALLMULTI || net->mc.count > DM_MAX_MCAST) {
rx_ctl |= 0x04;
- } else if (net->mc_count) {
- struct dev_mc_list *mc_list = net->mc_list;
+ } else if (net->mc.count) {
+ struct dev_mc_list *mc_list = net->mc.list;
int i;
- for (i = 0; i < net->mc_count; i++, mc_list = mc_list->next) {
+ for (i = 0; i < net->mc.count; i++, mc_list = mc_list->next) {
u32 crc = ether_crc(ETH_ALEN, mc_list->dmi_addr) >> 26;
hashes[crc >> 3] |= 1 << (crc & 0x7);
}
--- wireless-testing.orig/drivers/net/usb/kaweth.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/usb/kaweth.c 2009-06-13 12:29:46.000000000 +0200
@@ -870,7 +870,7 @@ static void kaweth_set_rx_mode(struct ne
if (net->flags & IFF_PROMISC) {
packet_filter_bitmap |= KAWETH_PACKET_FILTER_PROMISCUOUS;
}
- else if ((net->mc_count) || (net->flags & IFF_ALLMULTI)) {
+ else if ((net->mc.count) || (net->flags & IFF_ALLMULTI)) {
packet_filter_bitmap |= KAWETH_PACKET_FILTER_ALL_MULTICAST;
}
--- wireless-testing.orig/drivers/net/usb/mcs7830.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/usb/mcs7830.c 2009-06-13 12:29:46.000000000 +0200
@@ -392,23 +392,23 @@ static void mcs7830_set_multicast(struct
if (net->flags & IFF_PROMISC) {
data->config |= HIF_REG_CONFIG_PROMISCIOUS;
} else if (net->flags & IFF_ALLMULTI
- || net->mc_count > MCS7830_MAX_MCAST) {
+ || net->mc.count > MCS7830_MAX_MCAST) {
data->config |= HIF_REG_CONFIG_ALLMULTICAST;
- } else if (net->mc_count == 0) {
+ } else if (net->mc.count == 0) {
/* just broadcast and directed */
} else {
/* We use the 20 byte dev->data
* for our 8 byte filter buffer
* to avoid allocating memory that
* is tricky to free later */
- struct dev_mc_list *mc_list = net->mc_list;
+ struct dev_mc_list *mc_list = net->mc.list;
u32 crc_bits;
int i;
memset(data->multi_filter, 0, sizeof data->multi_filter);
/* Build the multicast hash filter. */
- for (i = 0; i < net->mc_count; i++) {
+ for (i = 0; i < net->mc.count; i++) {
crc_bits = ether_crc(ETH_ALEN, mc_list->dmi_addr) >> 26;
data->multi_filter[crc_bits >> 3] |= 1 << (crc_bits & 7);
mc_list = mc_list->next;
--- wireless-testing.orig/drivers/net/usb/pegasus.c 2009-04-30 23:07:18.000000000 +0200
+++ wireless-testing/drivers/net/usb/pegasus.c 2009-06-13 12:29:46.000000000 +0200
@@ -1214,7 +1214,7 @@ static void pegasus_set_multicast(struct
pegasus->eth_regs[EthCtrl2] |= RX_PROMISCUOUS;
if (netif_msg_link(pegasus))
pr_info("%s: Promiscuous mode enabled.\n", net->name);
- } else if (net->mc_count || (net->flags & IFF_ALLMULTI)) {
+ } else if (net->mc.count || (net->flags & IFF_ALLMULTI)) {
pegasus->eth_regs[EthCtrl0] |= RX_MULTICAST;
pegasus->eth_regs[EthCtrl2] &= ~RX_PROMISCUOUS;
if (netif_msg_link(pegasus))
--- wireless-testing.orig/drivers/net/usb/rtl8150.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/usb/rtl8150.c 2009-06-13 12:29:46.000000000 +0200
@@ -711,7 +711,7 @@ static void rtl8150_set_multicast(struct
if (netdev->flags & IFF_PROMISC) {
dev->rx_creg |= cpu_to_le16(0x0001);
dev_info(&netdev->dev, "%s: promiscuous mode\n", netdev->name);
- } else if (netdev->mc_count ||
+ } else if (netdev->mc.count ||
(netdev->flags & IFF_ALLMULTI)) {
dev->rx_creg &= cpu_to_le16(0xfffe);
dev->rx_creg |= cpu_to_le16(0x0002);
--- wireless-testing.orig/drivers/net/usb/smsc95xx.c 2009-05-11 21:32:40.000000000 +0200
+++ wireless-testing/drivers/net/usb/smsc95xx.c 2009-06-13 12:29:46.000000000 +0200
@@ -389,8 +389,8 @@ static void smsc95xx_set_multicast(struc
devdbg(dev, "receive all multicast enabled");
pdata->mac_cr |= MAC_CR_MCPAS_;
pdata->mac_cr &= ~(MAC_CR_PRMS_ | MAC_CR_HPFILT_);
- } else if (dev->net->mc_count > 0) {
- struct dev_mc_list *mc_list = dev->net->mc_list;
+ } else if (dev->net->mc.count > 0) {
+ struct dev_mc_list *mc_list = dev->net->mc.list;
int count = 0;
pdata->mac_cr |= MAC_CR_HPFILT_;
@@ -411,8 +411,8 @@ static void smsc95xx_set_multicast(struc
mc_list = mc_list->next;
}
- if (count != ((u32)dev->net->mc_count))
- devwarn(dev, "mc_count != dev->mc_count");
+ if (count != ((u32)dev->net->mc.count))
+ devwarn(dev, "mc_count != dev->mc.count");
if (netif_msg_drv(dev))
devdbg(dev, "HASHH=0x%08X, HASHL=0x%08X", hash_hi,
--- wireless-testing.orig/drivers/net/via-rhine.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/via-rhine.c 2009-06-13 12:29:46.000000000 +0200
@@ -1673,7 +1673,7 @@ static void rhine_set_rx_mode(struct net
rx_mode = 0x1C;
iowrite32(0xffffffff, ioaddr + MulticastFilter0);
iowrite32(0xffffffff, ioaddr + MulticastFilter1);
- } else if ((dev->mc_count > multicast_filter_limit)
+ } else if ((dev->mc.count > multicast_filter_limit)
|| (dev->flags & IFF_ALLMULTI)) {
/* Too many to match, or accept all multicasts. */
iowrite32(0xffffffff, ioaddr + MulticastFilter0);
@@ -1683,7 +1683,7 @@ static void rhine_set_rx_mode(struct net
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;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
int bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26;
--- wireless-testing.orig/drivers/net/via-velocity.c 2009-04-23 00:20:43.000000000 +0200
+++ wireless-testing/drivers/net/via-velocity.c 2009-06-13 12:29:46.000000000 +0200
@@ -2283,7 +2283,7 @@ static void velocity_set_multi(struct ne
writel(0xffffffff, ®s->MARCAM[0]);
writel(0xffffffff, ®s->MARCAM[4]);
rx_mode = (RCR_AM | RCR_AB | RCR_PROM);
- } else if ((dev->mc_count > vptr->multicast_limit)
+ } else if ((dev->mc.count > vptr->multicast_limit)
|| (dev->flags & IFF_ALLMULTI)) {
writel(0xffffffff, ®s->MARCAM[0]);
writel(0xffffffff, ®s->MARCAM[4]);
@@ -2292,7 +2292,7 @@ static void velocity_set_multi(struct ne
int offset = MCAM_SIZE - vptr->multicast_limit;
mac_get_cam_mask(regs, vptr->mCAMmask);
- 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 < dev->mc.count; i++, mclist = mclist->next) {
mac_set_cam(regs, i + offset, mclist->dmi_addr);
vptr->mCAMmask[(offset + i) / 8] |= 1 << ((offset + i) & 7);
}
--- wireless-testing.orig/drivers/net/virtio_net.c 2009-05-11 21:32:40.000000000 +0200
+++ wireless-testing/drivers/net/virtio_net.c 2009-06-13 12:29:46.000000000 +0200
@@ -711,7 +711,7 @@ static void virtnet_set_rx_mode(struct n
allmulti ? "en" : "dis");
/* MAC filter - use one buffer for both lists */
- mac_data = buf = kzalloc(((dev->uc_count + dev->mc_count) * ETH_ALEN) +
+ mac_data = buf = kzalloc(((dev->uc.count + dev->mc.count) * ETH_ALEN) +
(2 * sizeof(mac_data->entries)), GFP_ATOMIC);
if (!buf) {
dev_warn(&dev->dev, "No memory for MAC address buffer\n");
@@ -721,24 +721,24 @@ static void virtnet_set_rx_mode(struct n
sg_init_table(sg, 2);
/* Store the unicast list and count in the front of the buffer */
- mac_data->entries = dev->uc_count;
- addr = dev->uc_list;
- for (i = 0; i < dev->uc_count; i++, addr = addr->next)
+ mac_data->entries = dev->uc.count;
+ addr = dev->uc.list;
+ for (i = 0; i < dev->uc.count; i++, addr = addr->next)
memcpy(&mac_data->macs[i][0], addr->da_addr, ETH_ALEN);
sg_set_buf(&sg[0], mac_data,
- sizeof(mac_data->entries) + (dev->uc_count * ETH_ALEN));
+ sizeof(mac_data->entries) + (dev->uc.count * ETH_ALEN));
/* multicast list and count fill the end */
- mac_data = (void *)&mac_data->macs[dev->uc_count][0];
+ mac_data = (void *)&mac_data->macs[dev->uc.count][0];
- mac_data->entries = dev->mc_count;
- addr = dev->mc_list;
- for (i = 0; i < dev->mc_count; i++, addr = addr->next)
+ mac_data->entries = dev->mc.count;
+ addr = dev->mc.list;
+ for (i = 0; i < dev->mc.count; i++, addr = addr->next)
memcpy(&mac_data->macs[i][0], addr->da_addr, ETH_ALEN);
sg_set_buf(&sg[1], mac_data,
- sizeof(mac_data->entries) + (dev->mc_count * ETH_ALEN));
+ sizeof(mac_data->entries) + (dev->mc.count * ETH_ALEN));
if (!virtnet_send_command(vi, VIRTIO_NET_CTRL_MAC,
VIRTIO_NET_CTRL_MAC_TABLE_SET,
--- wireless-testing.orig/drivers/net/vxge/vxge-main.c 2009-04-09 10:00:18.000000000 +0200
+++ wireless-testing/drivers/net/vxge/vxge-main.c 2009-06-13 12:29:47.000000000 +0200
@@ -1167,11 +1167,11 @@ static void vxge_set_multicast(struct ne
memset(&mac_info, 0, sizeof(struct macInfo));
/* Update individual M_CAST address list */
- if ((!vdev->all_multi_flg) && dev->mc_count) {
+ if ((!vdev->all_multi_flg) && dev->mc.count) {
mcast_cnt = vdev->vpaths[0].mcast_addr_cnt;
list_head = &vdev->vpaths[0].mac_addr_list;
- if ((dev->mc_count +
+ if ((dev->mc.count +
(vdev->vpaths[0].mac_addr_cnt - mcast_cnt)) >
vdev->vpaths[0].max_mac_addr_cnt)
goto _set_all_mcast;
@@ -1206,7 +1206,7 @@ static void vxge_set_multicast(struct ne
}
/* Add new ones */
- for (i = 0, mclist = dev->mc_list; i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; i < dev->mc.count;
i++, mclist = mclist->next) {
memcpy(mac_info.macaddr, mclist->dmi_addr, ETH_ALEN);
--- wireless-testing.orig/drivers/net/wireless/airo.c 2009-05-30 01:38:26.000000000 +0200
+++ wireless-testing/drivers/net/wireless/airo.c 2009-06-13 12:29:47.000000000 +0200
@@ -2303,7 +2303,7 @@ static void airo_set_multicast_list(stru
airo_set_promisc(ai);
}
- if ((dev->flags&IFF_ALLMULTI)||dev->mc_count>0) {
+ if ((dev->flags&IFF_ALLMULTI)||dev->mc.count>0) {
/* Turn on multicast. (Should be already setup...) */
}
}
--- wireless-testing.orig/drivers/net/wireless/arlan-main.c 2009-04-09 10:00:22.000000000 +0200
+++ wireless-testing/drivers/net/wireless/arlan-main.c 2009-06-13 12:29:47.000000000 +0200
@@ -1455,10 +1455,10 @@ static void arlan_rx_interrupt(struct ne
#ifdef ARLAN_MULTICAST
if (!(dev->flags & IFF_ALLMULTI) &&
!(dev->flags & IFF_PROMISC) &&
- dev->mc_list)
+ dev->mc.list)
{
char hw_dst_addr[6];
- struct dev_mc_list *dmi = dev->mc_list;
+ struct dev_mc_list *dmi = dev->mc.list;
int i;
memcpy_fromio(hw_dst_addr, arlan->ultimateDestAddress, 6);
--- wireless-testing.orig/drivers/net/wireless/libertas/main.c 2009-06-03 08:41:49.000000000 +0200
+++ wireless-testing/drivers/net/wireless/libertas/main.c 2009-06-13 12:29:47.000000000 +0200
@@ -638,7 +638,7 @@ static int lbs_add_mcast_addrs(struct cm
return nr_addrs;
netif_addr_lock_bh(dev);
- for (mc_list = dev->mc_list; mc_list; mc_list = mc_list->next) {
+ for (mc_list = dev->mc.list; mc_list; mc_list = mc_list->next) {
if (mac_in_list(cmd->maclist, nr_addrs, mc_list->dmi_addr)) {
lbs_deb_net("mcast address %s:%pM skipped\n", dev->name,
mc_list->dmi_addr);
--- wireless-testing.orig/drivers/net/wireless/netwave_cs.c 2009-04-09 10:00:22.000000000 +0200
+++ wireless-testing/drivers/net/wireless/netwave_cs.c 2009-06-13 12:29:47.000000000 +0200
@@ -1358,15 +1358,15 @@ static void set_multicast_list(struct ne
#ifdef PCMCIA_DEBUG
if (pc_debug > 2) {
static int old;
- if (old != dev->mc_count) {
- old = dev->mc_count;
+ if (old != dev->mc.count) {
+ old = dev->mc.count;
DEBUG(0, "%s: setting Rx mode to %d addresses.\n",
- dev->name, dev->mc_count);
+ dev->name, dev->mc.count);
}
}
#endif
- if (dev->mc_count || (dev->flags & IFF_ALLMULTI)) {
+ if (dev->mc.count || (dev->flags & IFF_ALLMULTI)) {
/* Multicast Mode */
rcvMode = rxConfRxEna + rxConfAMP + rxConfBcast;
} else if (dev->flags & IFF_PROMISC) {
--- wireless-testing.orig/drivers/net/wireless/orinoco/main.c 2009-04-02 03:29:39.000000000 +0200
+++ wireless-testing/drivers/net/wireless/orinoco/main.c 2009-06-13 12:29:47.000000000 +0200
@@ -1854,15 +1854,15 @@ __orinoco_set_multicast_list(struct net_
/* The Hermes doesn't seem to have an allmulti mode, so we go
* into promiscuous mode and let the upper levels deal. */
if ((dev->flags & IFF_PROMISC) || (dev->flags & IFF_ALLMULTI) ||
- (dev->mc_count > MAX_MULTICAST(priv))) {
+ (dev->mc.count > MAX_MULTICAST(priv))) {
promisc = 1;
mc_count = 0;
} else {
promisc = 0;
- mc_count = dev->mc_count;
+ mc_count = dev->mc.count;
}
- err = __orinoco_hw_set_multicast_list(priv, dev->mc_list, mc_count,
+ err = __orinoco_hw_set_multicast_list(priv, dev->mc.list, mc_count,
promisc);
}
--- wireless-testing.orig/drivers/net/wireless/ray_cs.c 2009-04-09 10:00:22.000000000 +0200
+++ wireless-testing/drivers/net/wireless/ray_cs.c 2009-06-13 12:29:47.000000000 +0200
@@ -1906,7 +1906,7 @@ static void ray_update_multi_list(struct
local->num_multi = 0xff;
} else {
/* Copy the kernel's list of MC addresses to card */
- for (dmip = &dev->mc_list; (dmi = *dmip) != NULL;
+ for (dmip = &dev->mc.list; (dmi = *dmip) != NULL;
dmip = &dmi->next) {
memcpy_toio(p, dmi->dmi_addr, ETH_ALEN);
DEBUG(1,
@@ -1960,7 +1960,7 @@ static void set_multicast_list(struct ne
if (dev->flags & IFF_ALLMULTI)
ray_update_multi_list(dev, 1);
else {
- if (local->num_multi != dev->mc_count)
+ if (local->num_multi != dev->mc.count)
ray_update_multi_list(dev, 0);
}
} /* end set_multicast_list */
--- wireless-testing.orig/drivers/net/wireless/rndis_wlan.c 2009-06-07 21:32:33.000000000 +0200
+++ wireless-testing/drivers/net/wireless/rndis_wlan.c 2009-06-13 12:29:47.000000000 +0200
@@ -1173,10 +1173,10 @@ static void set_multicast_list(struct us
filter |= RNDIS_PACKET_TYPE_PROMISCUOUS |
RNDIS_PACKET_TYPE_ALL_LOCAL;
} else if (usbdev->net->flags & IFF_ALLMULTI ||
- usbdev->net->mc_count > priv->multicast_size) {
+ usbdev->net->mc.count > priv->multicast_size) {
filter |= RNDIS_PACKET_TYPE_ALL_MULTICAST;
- } else if (usbdev->net->mc_count > 0) {
- size = min(priv->multicast_size, usbdev->net->mc_count);
+ } else if (usbdev->net->mc.count > 0) {
+ size = min(priv->multicast_size, usbdev->net->mc.count);
buf = kmalloc(size * ETH_ALEN, GFP_KERNEL);
if (!buf) {
devwarn(usbdev,
@@ -1185,7 +1185,7 @@ static void set_multicast_list(struct us
return;
}
- mclist = usbdev->net->mc_list;
+ mclist = usbdev->net->mc.list;
for (i = 0; i < size && mclist; mclist = mclist->next) {
if (mclist->dmi_addrlen != ETH_ALEN)
continue;
--- wireless-testing.orig/drivers/net/wireless/wavelan.c 2009-04-09 10:00:22.000000000 +0200
+++ wireless-testing/drivers/net/wireless/wavelan.c 2009-06-13 12:29:47.000000000 +0200
@@ -1367,7 +1367,7 @@ static void wavelan_set_multicast_list(s
#ifdef DEBUG_IOCTL_INFO
printk(KERN_DEBUG
"%s: wavelan_set_multicast_list(): setting Rx mode %02X to %d addresses.\n",
- dev->name, dev->flags, dev->mc_count);
+ dev->name, dev->flags, dev->mc.count);
#endif
/* Are we asking for promiscuous mode,
@@ -1375,7 +1375,7 @@ static void wavelan_set_multicast_list(s
* or too many multicast addresses for the hardware filter? */
if ((dev->flags & IFF_PROMISC) ||
(dev->flags & IFF_ALLMULTI) ||
- (dev->mc_count > I82586_MAX_MULTICAST_ADDRESSES)) {
+ (dev->mc.count > I82586_MAX_MULTICAST_ADDRESSES)) {
/*
* Enable promiscuous mode: receive all packets.
*/
@@ -1387,17 +1387,17 @@ static void wavelan_set_multicast_list(s
}
} else
/* Are there multicast addresses to send? */
- if (dev->mc_list != (struct dev_mc_list *) NULL) {
+ if (dev->mc.list != (struct dev_mc_list *) NULL) {
/*
* Disable promiscuous mode, but receive all packets
* in multicast list
*/
#ifdef MULTICAST_AVOID
- if (lp->promiscuous || (dev->mc_count != lp->mc_count))
+ if (lp->promiscuous || (dev->mc.count != lp->mc_count))
#endif
{
lp->promiscuous = 0;
- lp->mc_count = dev->mc_count;
+ lp->mc_count = dev->mc.count;
wv_82586_reconfig(dev);
}
@@ -3534,7 +3534,7 @@ static void wv_82586_config(struct net_d
/* Any address to set? */
if (lp->mc_count) {
- for (dmi = dev->mc_list; dmi; dmi = dmi->next)
+ for (dmi = dev->mc.list; dmi; dmi = dmi->next)
outsw(PIOP1(ioaddr), (u16 *) dmi->dmi_addr,
WAVELAN_ADDR_SIZE >> 1);
@@ -3542,7 +3542,7 @@ static void wv_82586_config(struct net_d
printk(KERN_DEBUG
"%s: wv_82586_config(): set %d multicast addresses:\n",
dev->name, lp->mc_count);
- for (dmi = dev->mc_list; dmi; dmi = dmi->next)
+ for (dmi = dev->mc.list; dmi; dmi = dmi->next)
printk(KERN_DEBUG " %pM\n", dmi->dmi_addr);
#endif
}
--- wireless-testing.orig/drivers/net/wireless/wavelan_cs.c 2009-04-09 10:00:22.000000000 +0200
+++ wireless-testing/drivers/net/wireless/wavelan_cs.c 2009-06-13 12:29:48.000000000 +0200
@@ -1373,7 +1373,7 @@ wavelan_set_multicast_list(struct net_de
#ifdef DEBUG_IOCTL_INFO
printk(KERN_DEBUG "%s: wavelan_set_multicast_list(): setting Rx mode %02X to %d addresses.\n",
- dev->name, dev->flags, dev->mc_count);
+ dev->name, dev->flags, dev->mc.count);
#endif
if(dev->flags & IFF_PROMISC)
@@ -1394,7 +1394,7 @@ wavelan_set_multicast_list(struct net_de
/* If all multicast addresses
* or too much multicast addresses for the hardware filter */
if((dev->flags & IFF_ALLMULTI) ||
- (dev->mc_count > I82593_MAX_MULTICAST_ADDRESSES))
+ (dev->mc.count > I82593_MAX_MULTICAST_ADDRESSES))
{
/*
* Disable promiscuous mode, but active the all multicast mode
@@ -1410,7 +1410,7 @@ wavelan_set_multicast_list(struct net_de
}
else
/* If there is some multicast addresses to send */
- if(dev->mc_list != (struct dev_mc_list *) NULL)
+ if(dev->mc.list != (struct dev_mc_list *) NULL)
{
/*
* Disable promiscuous mode, but receive all packets
@@ -1418,12 +1418,12 @@ wavelan_set_multicast_list(struct net_de
*/
#ifdef MULTICAST_AVOID
if(lp->promiscuous || lp->allmulticast ||
- (dev->mc_count != lp->mc_count))
+ (dev->mc.count != lp->mc_count))
#endif
{
lp->promiscuous = 0;
lp->allmulticast = 0;
- lp->mc_count = dev->mc_count;
+ lp->mc_count = dev->mc.count;
wv_82593_reconfig(dev);
}
@@ -3618,7 +3618,7 @@ wv_82593_config(struct net_device * dev)
#ifdef DEBUG_CONFIG_INFO
printk(KERN_DEBUG "%s: wv_hw_config(): set %d multicast addresses:\n",
dev->name, lp->mc_count);
- for(dmi=dev->mc_list; dmi; dmi=dmi->next)
+ for(dmi=dev->mc.list; dmi; dmi=dmi->next)
printk(KERN_DEBUG " %pM\n", dmi->dmi_addr);
#endif
@@ -3627,7 +3627,7 @@ wv_82593_config(struct net_device * dev)
outb(((TX_BASE >> 8) & PIORH_MASK) | PIORH_SEL_TX, PIORH(base));
outb(addrs_len & 0xff, PIOP(base)); /* byte count lsb */
outb((addrs_len >> 8), PIOP(base)); /* byte count msb */
- for(dmi=dev->mc_list; dmi; dmi=dmi->next)
+ for(dmi=dev->mc.list; dmi; dmi=dmi->next)
outsb(PIOP(base), dmi->dmi_addr, dmi->dmi_addrlen);
/* reset transmit DMA pointer */
@@ -3636,7 +3636,7 @@ wv_82593_config(struct net_device * dev)
if(!wv_82593_cmd(dev, "wv_82593_config(): mc-setup",
OP0_MC_SETUP, SR0_MC_SETUP_DONE))
ret = FALSE;
- lp->mc_count = dev->mc_count; /* remember to avoid repeated reset */
+ lp->mc_count = dev->mc.count; /* remember to avoid repeated reset */
}
/* Job done, clear the flag */
--- wireless-testing.orig/drivers/net/wireless/zd1201.c 2009-04-09 10:00:22.000000000 +0200
+++ wireless-testing/drivers/net/wireless/zd1201.c 2009-06-13 12:29:48.000000000 +0200
@@ -871,19 +871,19 @@ static struct iw_statistics *zd1201_get_
static void zd1201_set_multicast(struct net_device *dev)
{
struct zd1201 *zd = netdev_priv(dev);
- struct dev_mc_list *mc = dev->mc_list;
+ struct dev_mc_list *mc = dev->mc.list;
unsigned char reqbuf[ETH_ALEN*ZD1201_MAXMULTI];
int i;
- if (dev->mc_count > ZD1201_MAXMULTI)
+ if (dev->mc.count > ZD1201_MAXMULTI)
return;
- for (i=0; i<dev->mc_count; i++) {
+ for (i=0; i<dev->mc.count; i++) {
memcpy(reqbuf+i*ETH_ALEN, mc->dmi_addr, ETH_ALEN);
mc = mc->next;
}
zd1201_setconfig(zd, ZD1201_RID_CNFGROUPADDRESS, reqbuf,
- dev->mc_count*ETH_ALEN, 0);
+ dev->mc.count*ETH_ALEN, 0);
}
--- wireless-testing.orig/drivers/net/yellowfin.c 2009-04-09 10:00:23.000000000 +0200
+++ wireless-testing/drivers/net/yellowfin.c 2009-06-13 12:29:48.000000000 +0200
@@ -1289,15 +1289,15 @@ static void set_rx_mode(struct net_devic
iowrite16(cfg_value & ~0x1000, ioaddr + Cnfg);
if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */
iowrite16(0x000F, ioaddr + AddrMode);
- } else if ((dev->mc_count > 64) || (dev->flags & IFF_ALLMULTI)) {
+ } else if ((dev->mc.count > 64) || (dev->flags & IFF_ALLMULTI)) {
/* Too many to filter well, or accept all multicasts. */
iowrite16(0x000B, ioaddr + AddrMode);
- } else if (dev->mc_count > 0) { /* Must use the multicast hash table. */
+ } else if (dev->mc.count > 0) { /* Must use the multicast hash table. */
struct dev_mc_list *mclist;
u16 hash_table[4];
int i;
memset(hash_table, 0, sizeof(hash_table));
- for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; mclist && i < dev->mc.count;
i++, mclist = mclist->next) {
unsigned int bit;
--- wireless-testing.orig/drivers/net/znet.c 2009-04-09 10:00:23.000000000 +0200
+++ wireless-testing/drivers/net/znet.c 2009-06-13 12:29:48.000000000 +0200
@@ -321,7 +321,7 @@ static void znet_set_multicast_list (str
/* Byte D */
cfblk->dummy_1 = 1; /* set to 1 */
cfblk->tx_ifs_retrig = 3; /* Hmm... Disabled */
- cfblk->mc_all = (dev->mc_list || (dev->flags&IFF_ALLMULTI));/* multicast all mode */
+ cfblk->mc_all = (dev->mc.list || (dev->flags&IFF_ALLMULTI));/* multicast all mode */
cfblk->rcv_mon = 0; /* Monitor mode disabled */
cfblk->frag_acpt = 0; /* Do not accept fragments */
cfblk->tstrttrs = 0; /* No start transmission threshold */
--- wireless-testing.orig/drivers/s390/net/qeth_l2_main.c 2009-04-09 10:00:23.000000000 +0200
+++ wireless-testing/drivers/s390/net/qeth_l2_main.c 2009-06-13 12:29:48.000000000 +0200
@@ -626,10 +626,10 @@ static void qeth_l2_set_multicast_list(s
return;
qeth_l2_del_all_mc(card);
spin_lock_bh(&card->mclock);
- for (dm = dev->mc_list; dm; dm = dm->next)
+ for (dm = dev->mc.list; dm; dm = dm->next)
qeth_l2_add_mc(card, dm->da_addr, 0);
- for (dm = dev->uc_list; dm; dm = dm->next)
+ for (dm = dev->uc.list; dm; dm = dm->next)
qeth_l2_add_mc(card, dm->da_addr, 1);
spin_unlock_bh(&card->mclock);
--- wireless-testing.orig/drivers/staging/et131x/et131x_netdev.c 2009-04-23 00:20:58.000000000 +0200
+++ wireless-testing/drivers/staging/et131x/et131x_netdev.c 2009-06-13 12:29:48.000000000 +0200
@@ -465,7 +465,7 @@ void et131x_multicast(struct net_device
uint32_t PacketFilter = 0;
uint32_t count;
unsigned long lockflags;
- struct dev_mc_list *mclist = netdev->mc_list;
+ struct dev_mc_list *mclist = netdev->mc.list;
DBG_ENTER(et131x_dbginfo);
@@ -488,7 +488,7 @@ void et131x_multicast(struct net_device
* accordingly
*/
DBG_VERBOSE(et131x_dbginfo,
- "MULTICAST ADDR COUNT: %d\n", netdev->mc_count);
+ "MULTICAST ADDR COUNT: %d\n", netdev->mc.count);
if (netdev->flags & IFF_PROMISC) {
DBG_VERBOSE(et131x_dbginfo, "Request: PROMISCUOUS MODE ON\n");
@@ -503,7 +503,7 @@ void et131x_multicast(struct net_device
adapter->PacketFilter |= ET131X_PACKET_TYPE_ALL_MULTICAST;
}
- if (netdev->mc_count > NIC_MAX_MCAST_LIST) {
+ if (netdev->mc.count > NIC_MAX_MCAST_LIST) {
DBG_WARNING(et131x_dbginfo,
"ACCEPT ALL MULTICAST for now, as there's more Multicast "
"addresses than the HW supports\n");
@@ -511,7 +511,7 @@ void et131x_multicast(struct net_device
adapter->PacketFilter |= ET131X_PACKET_TYPE_ALL_MULTICAST;
}
- if (netdev->mc_count < 1) {
+ if (netdev->mc.count < 1) {
DBG_VERBOSE(et131x_dbginfo, "Request: REJECT ALL MULTICAST\n");
adapter->PacketFilter &= ~ET131X_PACKET_TYPE_ALL_MULTICAST;
adapter->PacketFilter &= ~ET131X_PACKET_TYPE_MULTICAST;
@@ -522,14 +522,14 @@ void et131x_multicast(struct net_device
}
/* Set values in the private adapter struct */
- adapter->MCAddressCount = netdev->mc_count;
+ adapter->MCAddressCount = netdev->mc.count;
- if (netdev->mc_count) {
+ if (netdev->mc.count) {
if (mclist->dmi_addrlen != ETH_ALEN) {
DBG_WARNING(et131x_dbginfo,
"Multicast addrs are not ETH_ALEN in size\n");
} else {
- count = netdev->mc_count - 1;
+ count = netdev->mc.count - 1;
memcpy(adapter->MCList[count], mclist->dmi_addr,
ETH_ALEN);
}
--- wireless-testing.orig/drivers/staging/slicoss/slicoss.c 2009-04-23 00:20:59.000000000 +0200
+++ wireless-testing/drivers/staging/slicoss/slicoss.c 2009-06-13 12:29:48.000000000 +0200
@@ -1365,8 +1365,8 @@ static void slic_mcast_set_list(struct n
int status = STATUS_SUCCESS;
int i;
char *addresses;
- struct dev_mc_list *mc_list = dev->mc_list;
- int mc_count = dev->mc_count;
+ struct dev_mc_list *mc_list = dev->mc.list;
+ int mc_count = dev->mc.count;
ASSERT(adapter);
--- wireless-testing.orig/drivers/staging/sxg/sxg.c 2009-04-23 00:20:59.000000000 +0200
+++ wireless-testing/drivers/staging/sxg/sxg.c 2009-06-13 12:29:48.000000000 +0200
@@ -1984,7 +1984,7 @@ static bool sxg_mac_filter(struct adapte
return (TRUE);
}
if (adapter->MacFilter & MAC_MCAST) {
- struct dev_mc_list *mclist = dev->mc_list;
+ struct dev_mc_list *mclist = dev->mc.list;
while (mclist) {
ETHER_EQ_ADDR(mclist->da_addr,
EtherHdr->ether_dhost,
@@ -3611,7 +3611,7 @@ static void sxg_set_mcast_addr(struct ad
int i;
if (adapter->MacFilter & (MAC_ALLMCAST | MAC_MCAST)) {
- for (i = 0, mclist = dev->mc_list; i < dev->mc_count;
+ for (i = 0, mclist = dev->mc.list; i < dev->mc.count;
i++, mclist = mclist->next) {
sxg_mcast_set_bit(adapter,mclist->da_addr);
}
--- wireless-testing.orig/arch/xtensa/platforms/iss/network.c 2009-01-13 15:04:57.000000000 +0100
+++ wireless-testing/arch/xtensa/platforms/iss/network.c 2009-06-13 12:29:48.000000000 +0200
@@ -560,7 +560,7 @@ static void iss_net_set_multicast_list(s
#if 0
if (dev->flags & IFF_PROMISC)
return;
- else if (dev->mc_count)
+ else if (dev->mc.count)
dev->flags |= IFF_ALLMULTI;
else
dev->flags &= ~IFF_ALLMULTI;
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists