net: finalize multicast list conversion
Subsystems (28)
cover net: finalize multicast list conversion
This patchset finalizes the conversion of multicast list to list_head. It also moves the code manipulating all address lists to it's own file.
Jirka
PATCH 1/2 net: move address list functions to a separate file
+little renaming of unicast functions to be smooth with multicast ones
--- drivers/net/bonding/bond_main.c | 2 +- drivers/net/macvlan.c | 10 +- drivers/scsi/fcoe/fcoe.c | 14 +- include/linux/netdevice.h | 15 +- net/8021q/vlan.c | 4 +- net/8021q/vlan_dev.c | 14 +- net/core/Makefile | 3 +- net/core/dev.c | 430 +---------------------------------- net/core/dev_addr_lists.c | 478 +++++++++++++++++++++++++++++++++++++++ net/dsa/slave.c | 14 +- net/packet/af_packet.c | 4 +- 11 files changed, 524 insertions(+), 464 deletions(-) create mode 100644 net/core/dev_addr_lists.c
drivers/net/bonding/bond_main.c +1 -1
@@ -1491,7 +1491,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) }/* Flush unicast and multicast addresses */ -dev_unicast_flush (bond_dev); +dev_uc_flush (bond_dev);dev_addr_discard (bond_dev);if (slave_dev->type !=ARPHRD_ETHER )
drivers/net/macvlan.c +5 -5
@@ -282,7 +282,7 @@ static int macvlan_open(struct net_device *dev)if (macvlan_addr_busy (vlan->port, dev->dev_addr)) goto out; - err =dev_unicast_add (lowerdev, dev->dev_addr); + err =dev_uc_add (lowerdev, dev->dev_addr);if (err <0 ) goto out;if (dev->flags &IFF_ALLMULTI ) {
@@ -294,7 +294,7 @@ static int macvlan_open(struct net_device *dev)return 0 ; del_unicast: -dev_unicast_delete (lowerdev, dev->dev_addr); +dev_uc_del (lowerdev, dev->dev_addr); out:return err; }
@@ -308,7 +308,7 @@ static int macvlan_stop(struct net_device *dev)if (dev->flags &IFF_ALLMULTI )dev_set_allmulti (lowerdev,-1 ); -dev_unicast_delete (lowerdev, dev->dev_addr); +dev_uc_del (lowerdev, dev->dev_addr);macvlan_hash_del (vlan);return 0 ;
@@ -332,11 +332,11 @@ static int macvlan_set_mac_address(struct net_device *dev, void *p)if (macvlan_addr_busy (vlan->port, addr->sa_data))return -EBUSY ; - err =dev_unicast_add (lowerdev, addr->sa_data); + err =dev_uc_add (lowerdev, addr->sa_data);if (err)return err; -dev_unicast_delete (lowerdev, dev->dev_addr); +dev_uc_del (lowerdev, dev->dev_addr);macvlan_hash_change_addr (vlan, addr->sa_data); }
drivers/scsi/fcoe/fcoe.c +7 -7
@@ -308,9 +308,9 @@ static int fcoe_interface_setup(struct fcoe_interface *fcoe,* for multiple unicast MACs. */ memcpy (flogi_maddr, (u8 [6 ])FC_FCOE_FLOGI_MAC ,ETH_ALEN ); -dev_unicast_add (netdev, flogi_maddr); +dev_uc_add (netdev, flogi_maddr);if (fip->spma) -dev_unicast_add (netdev, fip->ctl_src_addr); +dev_uc_add (netdev, fip->ctl_src_addr);dev_mc_add (netdev,FIP_ALL_ENODE_MACS ,ETH_ALEN ,0 );/*
@@ -394,9 +394,9 @@ void fcoe_interface_cleanup(struct fcoe_interface *fcoe)/* Delete secondary MAC addresses */ memcpy (flogi_maddr, (u8 [6 ])FC_FCOE_FLOGI_MAC ,ETH_ALEN ); -dev_unicast_delete (netdev, flogi_maddr); +dev_uc_del (netdev, flogi_maddr);if (fip->spma) -dev_unicast_delete (netdev, fip->ctl_src_addr); +dev_uc_del (netdev, fip->ctl_src_addr);dev_mc_delete (netdev,FIP_ALL_ENODE_MACS ,ETH_ALEN ,0 );/* Tell the LLD we are done w/ FCoE */
@@ -490,9 +490,9 @@ static void fcoe_update_src_mac(struct fc_lport *lport, u8 *addr)rtnl_lock ();if (!is_zero_ether_addr (port->data_src_addr)) -dev_unicast_delete (fcoe->netdev, port->data_src_addr); +dev_uc_del (fcoe->netdev, port->data_src_addr);if (!is_zero_ether_addr (addr)) -dev_unicast_add (fcoe->netdev, addr); +dev_uc_add (fcoe->netdev, addr);memcpy (port->data_src_addr, addr,ETH_ALEN );rtnl_unlock (); }
@@ -819,7 +819,7 @@ static void fcoe_if_destroy(struct fc_lport *lport)rtnl_lock ();if (!is_zero_ether_addr (port->data_src_addr)) -dev_unicast_delete (netdev, port->data_src_addr); +dev_uc_del (netdev, port->data_src_addr);rtnl_unlock ();/* receives may not be stopped until after this */
include/linux/netdevice.h +10 -5
@@ -1991,15 +1991,20 @@ extern int dev_addr_add_multiple(struct net_device *to_dev,extern int dev_addr_del_multiple (struct net_device *to_dev,struct net_device *from_dev,unsigned char addr_type); +extern void dev_addr_flush (struct net_device *dev); +extern int dev_addr_init (struct net_device *dev); + +/* Functions used for unicast addresses handling */ +extern int dev_uc_add (struct net_device *dev,unsigned char *addr); +extern int dev_uc_del (struct net_device *dev,unsigned char *addr); +extern int dev_uc_sync (struct net_device *to,struct net_device *from); +extern void dev_uc_unsync (struct net_device *to,struct net_device *from); +extern void dev_uc_flush (struct net_device *dev); +extern void dev_uc_init (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); -extern int dev_unicast_add (struct net_device *dev,void *addr); -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 void dev_unicast_flush (struct net_device *dev);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);
net/8021q/vlan.c +2 -2
@@ -356,13 +356,13 @@ static void vlan_sync_address(struct net_device *dev,* the new address */ if (compare_ether_addr (vlandev->dev_addr, vlan->real_dev_addr) && !compare_ether_addr (vlandev->dev_addr, dev->dev_addr)) -dev_unicast_delete (dev, vlandev->dev_addr); +dev_uc_del (dev, vlandev->dev_addr);/* vlan address was equal to the old address and is different from * the new address */ if (!compare_ether_addr (vlandev->dev_addr, vlan->real_dev_addr) &&compare_ether_addr (vlandev->dev_addr, dev->dev_addr)) -dev_unicast_add (dev, vlandev->dev_addr); +dev_uc_add (dev, vlandev->dev_addr);memcpy (vlan->real_dev_addr, dev->dev_addr,ETH_ALEN ); }
net/8021q/vlan_dev.c +7 -7
@@ -461,7 +461,7 @@ static int vlan_dev_open(struct net_device *dev)return -ENETDOWN ;if (compare_ether_addr (dev->dev_addr, real_dev->dev_addr)) { - err =dev_unicast_add (real_dev, dev->dev_addr); + err =dev_uc_add (real_dev, dev->dev_addr);if (err <0 ) goto out; }
@@ -490,7 +490,7 @@ clear_allmulti:dev_set_allmulti (real_dev,-1 ); del_unicast:if (compare_ether_addr (dev->dev_addr, real_dev->dev_addr)) -dev_unicast_delete (real_dev, dev->dev_addr); +dev_uc_del (real_dev, dev->dev_addr); out:netif_carrier_off (dev);return err;
@@ -505,14 +505,14 @@ static int vlan_dev_stop(struct net_device *dev)vlan_gvrp_request_leave (dev);dev_mc_unsync (real_dev, dev); -dev_unicast_unsync (real_dev, dev); +dev_uc_unsync (real_dev, dev);if (dev->flags &IFF_ALLMULTI )dev_set_allmulti (real_dev,-1 );if (dev->flags &IFF_PROMISC )dev_set_promiscuity (real_dev,-1 );if (compare_ether_addr (dev->dev_addr, real_dev->dev_addr)) -dev_unicast_delete (real_dev, dev->dev_addr); +dev_uc_del (real_dev, dev->dev_addr);netif_carrier_off (dev);return 0 ;
@@ -531,13 +531,13 @@ static int vlan_dev_set_mac_address(struct net_device *dev, void *p) goto out;if (compare_ether_addr (addr->sa_data, real_dev->dev_addr)) { - err =dev_unicast_add (real_dev, addr->sa_data); + err =dev_uc_add (real_dev, addr->sa_data);if (err <0 )return err; }if (compare_ether_addr (dev->dev_addr, real_dev->dev_addr)) -dev_unicast_delete (real_dev, dev->dev_addr); +dev_uc_del (real_dev, dev->dev_addr); out:memcpy (dev->dev_addr, addr->sa_data,ETH_ALEN );
@@ -654,7 +654,7 @@ static void vlan_dev_change_rx_flags(struct net_device *dev, int change)static void vlan_dev_set_rx_mode (struct net_device *vlan_dev) {dev_mc_sync (vlan_dev_info (vlan_dev)->real_dev, vlan_dev); -dev_unicast_sync (vlan_dev_info (vlan_dev)->real_dev, vlan_dev); +dev_uc_sync (vlan_dev_info (vlan_dev)->real_dev, vlan_dev); }/*
net/core/Makefile +2 -1
@@ -8,7 +8,8 @@ obj-y := sock.o request_sock.o skbuff.o iovec.o datagram.o stream.o scm.o \ obj-$(CONFIG_SYSCTL) += sysctl_net_core.o obj-y += dev.o ethtool.o dev_mcast.o dst.o netevent.o \ - neighbour.o rtnetlink.o utils.o link_watch.o filter.o + neighbour.o rtnetlink.o utils.o link_watch.o filter.o \ + dev_addr_lists.o obj-$(CONFIG_XFRM) += flow.o obj-y += net-sysfs.o
net/core/dev.c +3 -427
466 lines not on this page · raw message
net/core/dev_addr_lists.c new file +478 -0
478 lines not on this page · raw message
net/dsa/slave.c +7 -7
@@ -67,7 +67,7 @@ static int dsa_slave_open(struct net_device *dev)return -ENETDOWN ;if (compare_ether_addr (dev->dev_addr, master->dev_addr)) { - err =dev_unicast_add (master, dev->dev_addr); + err =dev_uc_add (master, dev->dev_addr);if (err <0 ) goto out; }
@@ -90,7 +90,7 @@ clear_allmulti:dev_set_allmulti (master,-1 ); del_unicast:if (compare_ether_addr (dev->dev_addr, master->dev_addr)) -dev_unicast_delete (master, dev->dev_addr); +dev_uc_del (master, dev->dev_addr); out:return err; }
@@ -101,14 +101,14 @@ static int dsa_slave_close(struct net_device *dev)struct net_device *master = p->parent->dst->master_netdev;dev_mc_unsync (master, dev); -dev_unicast_unsync (master, dev); +dev_uc_unsync (master, dev);if (dev->flags &IFF_ALLMULTI )dev_set_allmulti (master,-1 );if (dev->flags &IFF_PROMISC )dev_set_promiscuity (master,-1 );if (compare_ether_addr (dev->dev_addr, master->dev_addr)) -dev_unicast_delete (master, dev->dev_addr); +dev_uc_del (master, dev->dev_addr);return 0 ; }
@@ -130,7 +130,7 @@ static void dsa_slave_set_rx_mode(struct net_device *dev)struct net_device *master = p->parent->dst->master_netdev;dev_mc_sync (master, dev); -dev_unicast_sync (master, dev); +dev_uc_sync (master, dev); }static int dsa_slave_set_mac_address (struct net_device *dev,void *a)
@@ -147,13 +147,13 @@ static int dsa_slave_set_mac_address(struct net_device *dev, void *a) goto out;if (compare_ether_addr (addr->sa_data, master->dev_addr)) { - err =dev_unicast_add (master, addr->sa_data); + err =dev_uc_add (master, addr->sa_data);if (err <0 )return err; }if (compare_ether_addr (dev->dev_addr, master->dev_addr)) -dev_unicast_delete (master, dev->dev_addr); +dev_uc_del (master, dev->dev_addr); out:memcpy (dev->dev_addr, addr->sa_data,ETH_ALEN );
net/packet/af_packet.c +2 -2
@@ -1705,9 +1705,9 @@ static int packet_dev_mc(struct net_device *dev, struct packet_mclist *i,if (i->alen != dev->addr_len)return -EINVAL ;if (what >0 ) -return dev_unicast_add (dev, i->addr); +return dev_uc_add (dev, i->addr);else -return dev_unicast_delete (dev, i->addr); +return dev_uc_del (dev, i->addr);break ;default :break ;
Signature · 1 line
1.6.6.1
PATCH 2/2 net: convert multicast list to list_head
In reply to Jiri PirkoConverts the list and the core manipulating with it to be the same as uc_list.
+uses two functions for adding/removing mc address (normal and "global"
variant) instead of a function parameter.
+removes dev_mcast.c completely.
+exposes netdev_hw_addr_list_* macros along with __hw_addr_* functions for
manipulation with lists on a sandbox (used in bonding and 80211 drivers)
--- drivers/infiniband/hw/nes/nes_nic.c | 7 +- drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 9 +- drivers/media/dvb/dvb-core/dvb_net.c | 10 +- drivers/net/3c505.c | 7 +- drivers/net/3c523.c | 7 +- drivers/net/3c527.c | 6 +- drivers/net/7990.c | 6 +- drivers/net/8139cp.c | 6 +- drivers/net/8139too.c | 6 +- drivers/net/82596.c | 6 +- drivers/net/a2065.c | 6 +- drivers/net/amd8111e.c | 6 +- drivers/net/arm/am79c961a.c | 6 +- drivers/net/arm/at91_ether.c | 6 +- drivers/net/arm/ixp4xx_eth.c | 8 +- drivers/net/arm/ks8695net.c | 10 +- drivers/net/at1700.c | 6 +- drivers/net/atl1c/atl1c_main.c | 6 +- drivers/net/atl1e/atl1e_main.c | 6 +- drivers/net/atlx/atl2.c | 6 +- drivers/net/atlx/atlx.c | 6 +- drivers/net/atp.c | 6 +- drivers/net/au1000_eth.c | 6 +- drivers/net/b44.c | 6 +- drivers/net/bcm63xx_enet.c | 6 +- drivers/net/benet/be_cmds.c | 6 +- drivers/net/bfin_mac.c | 6 +- drivers/net/bmac.c | 12 +- drivers/net/bnx2.c | 5 +- drivers/net/bnx2x_main.c | 18 +- drivers/net/bonding/bond_main.c | 157 ++++-------- drivers/net/bonding/bonding.h | 2 +- drivers/net/cassini.c | 12 +- drivers/net/chelsio/pm3393.c | 7 +- drivers/net/cpmac.c | 16 +- drivers/net/cris/eth_v10.c | 6 +- drivers/net/cxgb3/xgmac.c | 8 +- drivers/net/davinci_emac.c | 7 +- drivers/net/declance.c | 6 +- drivers/net/defxx.c | 6 +- drivers/net/depca.c | 6 +- drivers/net/dl2k.c | 6 +- drivers/net/dm9000.c | 6 +- drivers/net/e100.c | 6 +- drivers/net/e1000/e1000_main.c | 7 +- drivers/net/e1000e/netdev.c | 7 +- drivers/net/eepro.c | 6 +- drivers/net/eexpress.c | 6 +- drivers/net/ehea/ehea_main.c | 6 +- drivers/net/enic/enic_main.c | 6 +- drivers/net/epic100.c | 6 +- drivers/net/ethoc.c | 6 +- drivers/net/ewrk3.c | 6 +- drivers/net/fealnx.c | 6 +- drivers/net/fec.c | 10 +- drivers/net/fec_mpc52xx.c | 6 +- drivers/net/forcedeth.c | 10 +- drivers/net/fs_enet/mac-fcc.c | 6 +- drivers/net/fs_enet/mac-fec.c | 6 +- drivers/net/fs_enet/mac-scc.c | 6 +- drivers/net/gianfar.c | 9 +- drivers/net/greth.c | 6 +- drivers/net/hamachi.c | 8 +- drivers/net/hp100.c | 6 +- drivers/net/ibm_newemac/core.c | 11 +- drivers/net/ibmlana.c | 8 +- drivers/net/ibmveth.c | 6 +- drivers/net/igb/igb_main.c | 6 +- drivers/net/igbvf/netdev.c | 6 +- drivers/net/ioc3-eth.c | 6 +- drivers/net/ipg.c | 6 +- drivers/net/iseries_veth.c | 6 +- drivers/net/ixgb/ixgb_main.c | 6 +- drivers/net/ixgbe/ixgbe_common.c | 6 +- drivers/net/ixgbevf/vf.c | 6 +- drivers/net/jme.c | 6 +- drivers/net/korina.c | 6 +- drivers/net/ks8851.c | 6 +- drivers/net/ks8851_mll.c | 12 +- drivers/net/ksz884x.c | 11 +- drivers/net/lib82596.c | 6 +- drivers/net/lib8390.c | 6 +- drivers/net/ll_temac_main.c | 16 +- drivers/net/lp486e.c | 6 +- drivers/net/macb.c | 6 +- drivers/net/mace.c | 6 +- drivers/net/macmace.c | 6 +- drivers/net/mlx4/en_netdev.c | 6 +- drivers/net/mv643xx_eth.c | 6 +- drivers/net/myri10ge/myri10ge.c | 8 +- drivers/net/natsemi.c | 6 +- drivers/net/netxen/netxen_nic_hw.c | 12 +- drivers/net/ni52.c | 6 +- drivers/net/niu.c | 5 +- drivers/net/octeon/octeon_mgmt.c | 6 +- drivers/net/pci-skeleton.c | 6 +- drivers/net/pcmcia/axnet_cs.c | 6 +- drivers/net/pcmcia/fmvj18x_cs.c | 6 +- drivers/net/pcmcia/nmclan_cs.c | 6 +- drivers/net/pcmcia/smc91c92_cs.c | 8 +- drivers/net/pcmcia/xirc2ps_cs.c | 6 +- drivers/net/pcnet32.c | 6 +- drivers/net/ps3_gelic_net.c | 6 +- drivers/net/qlcnic/qlcnic_hw.c | 6 +- drivers/net/qlge/qlge_main.c | 6 +- drivers/net/r6040.c | 10 +- drivers/net/r8169.c | 6 +- drivers/net/s2io.c | 8 +- drivers/net/sb1250-mac.c | 6 +- drivers/net/sc92031.c | 6 +- drivers/net/sfc/efx.c | 6 +- drivers/net/sis190.c | 6 +- drivers/net/sis900.c | 10 +- drivers/net/skfp/skfddi.c | 12 +- drivers/net/skge.c | 12 +- drivers/net/sky2.c | 6 +- drivers/net/smc911x.c | 13 +- drivers/net/smc9194.c | 13 +- drivers/net/smc91x.c | 8 +- drivers/net/smsc911x.c | 6 +- drivers/net/smsc9420.c | 6 +- drivers/net/sonic.c | 6 +- drivers/net/spider_net.c | 6 +- drivers/net/starfire.c | 10 +- drivers/net/stmmac/dwmac100.c | 6 +- drivers/net/stmmac/dwmac1000_core.c | 6 +- drivers/net/sun3_82586.c | 6 +- drivers/net/sunbmac.c | 6 +- drivers/net/sundance.c | 6 +- drivers/net/sungem.c | 6 +- drivers/net/sunhme.c | 12 +- drivers/net/sunlance.c | 6 +- drivers/net/sunqe.c | 6 +- drivers/net/sunvnet.c | 8 +- drivers/net/tc35815.c | 6 +- drivers/net/tehuti.c | 6 +- drivers/net/tg3.c | 6 +- drivers/net/tlan.c | 8 +- drivers/net/tokenring/3c359.c | 12 +- drivers/net/tokenring/ibmtr.c | 12 +- drivers/net/tokenring/lanstreamer.c | 12 +- drivers/net/tokenring/olympic.c | 12 +- drivers/net/tokenring/tms380tr.c | 12 +- drivers/net/tsi108_eth.c | 6 +- drivers/net/tulip/de2104x.c | 12 +- drivers/net/tulip/de4x5.c | 10 +- drivers/net/tulip/dmfe.c | 12 +- drivers/net/tulip/tulip_core.c | 27 ++- drivers/net/tulip/uli526x.c | 6 +- drivers/net/tulip/winbond-840.c | 12 +- drivers/net/typhoon.c | 6 +- drivers/net/ucc_geth.c | 8 +- drivers/net/usb/asix.c | 16 +- drivers/net/usb/catc.c | 6 +- drivers/net/usb/dm9601.c | 6 +- drivers/net/usb/mcs7830.c | 6 +- drivers/net/usb/smsc75xx.c | 6 +- drivers/net/usb/smsc95xx.c | 6 +- drivers/net/via-rhine.c | 6 +- drivers/net/via-velocity.c | 6 +- drivers/net/virtio_net.c | 5 +- drivers/net/vmxnet3/vmxnet3_drv.c | 6 +- drivers/net/vxge/vxge-main.c | 6 +- drivers/net/wireless/adm8211.c | 12 +- drivers/net/wireless/ath/ar9170/main.c | 14 +- drivers/net/wireless/ath/ath5k/base.c | 17 +- drivers/net/wireless/libertas/main.c | 12 +- drivers/net/wireless/libertas_tf/main.c | 14 +- drivers/net/wireless/mwl8k.c | 24 +- drivers/net/wireless/orinoco/hw.c | 6 +- drivers/net/wireless/orinoco/hw.h | 1 - drivers/net/wireless/ray_cs.c | 12 +- drivers/net/wireless/rndis_wlan.c | 6 +- drivers/net/wireless/rtl818x/rtl8180_dev.c | 6 +- drivers/net/wireless/rtl818x/rtl8187_dev.c | 4 +- drivers/net/wireless/wl12xx/wl1271_main.c | 25 +-- drivers/net/wireless/zd1201.c | 6 +- drivers/net/wireless/zd1211rw/zd_mac.c | 13 +- drivers/net/yellowfin.c | 12 +- drivers/s390/net/qeth_l2_main.c | 5 +- drivers/scsi/fcoe/fcoe.c | 4 +- drivers/staging/arlan/arlan-main.c | 9 +- drivers/staging/et131x/et131x_netdev.c | 6 +- drivers/staging/slicoss/slicoss.c | 6 +- drivers/staging/vt6655/device_main.c | 6 +- drivers/staging/vt6656/main_usb.c | 6 +- drivers/staging/wavelan/wavelan.c | 10 +- drivers/staging/wavelan/wavelan_cs.c | 12 +- drivers/staging/winbond/wbusb.c | 6 +- drivers/staging/wlags49_h2/wl_netdev.c | 12 +- include/linux/netdevice.h | 82 ++++--- include/net/mac80211.h | 2 +- net/802/garp.c | 4 +- net/appletalk/ddp.c | 2 +- net/bluetooth/bnep/netdev.c | 8 +- net/core/Makefile | 5 +- net/core/dev.c | 145 +----------- net/core/dev_addr_lists.c | 305 ++++++++++++++++++++++-- net/core/dev_mcast.c | 232 ------------------ net/decnet/dn_dev.c | 12 +- net/ipv4/igmp.c | 4 +- net/ipv4/netfilter/ipt_CLUSTERIP.c | 4 +- net/ipv6/mcast.c | 4 +- net/mac80211/driver-ops.h | 8 +- net/mac80211/ieee80211_i.h | 3 +- net/mac80211/iface.c | 6 +- net/mac80211/main.c | 2 +- net/packet/af_packet.c | 4 +- 208 files changed, 1137 insertions(+), 1327 deletions(-) delete mode 100644 net/core/dev_mcast.c
drivers/infiniband/hw/nes/nes_nic.c +3 -4
@@ -876,7 +876,7 @@ static void nes_netdev_set_multicast_list(struct net_device *netdev)if (!mc_all_on) {char *addrs;int i; -struct dev_mc_list *mcaddr; +struct netdev_hw_addr *ha; addrs =kmalloc (ETH_ALEN * mc_count,GFP_ATOMIC );if (!addrs) {
@@ -884,9 +884,8 @@ static void nes_netdev_set_multicast_list(struct net_device *netdev) goto unlock; } i =0 ; -netdev_for_each_mc_addr (mcaddr, netdev) -memcpy (get_addr (addrs, i++), - mcaddr->dmi_addr,ETH_ALEN ); +netdev_for_each_mc_addr (ha, netdev) +memcpy (get_addr (addrs, i++), ha->addr,ETH_ALEN ); perfect_filter_register_address =NES_IDX_PERFECT_FILTER_LOW + pft_entries_preallocated *0x8 ;
drivers/infiniband/ulp/ipoib/ipoib_multicast.c +4 -5
@@ -783,7 +783,7 @@ void ipoib_mcast_restart_task(struct work_struct *work)struct ipoib_dev_priv *priv = container_of(work, struct ipoib_dev_priv, restart_task);struct net_device *dev = priv->dev; -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;struct ipoib_mcast *mcast, *tmcast;LIST_HEAD (remove_list);unsigned long flags;
@@ -808,14 +808,13 @@ void ipoib_mcast_restart_task(struct work_struct *work)clear_bit (IPOIB_MCAST_FLAG_FOUND , &mcast->flags);/* Mark all of the entries that are found or don't exist */ -netdev_for_each_mc_addr (mclist, dev) { +netdev_for_each_mc_addr (ha, dev) {union ib_gid mgid; -if (!ipoib_mcast_addr_is_valid (mclist->dmi_addr, - dev->broadcast)) +if (!ipoib_mcast_addr_is_valid (ha->addr, dev->broadcast))continue ; -memcpy (mgid.raw, mclist->dmi_addr +4 ,sizeof mgid); +memcpy (mgid.raw, ha->addr +4 ,sizeof mgid); mcast =__ipoib_mcast_find (dev, &mgid);if (!mcast ||test_bit (IPOIB_MCAST_FLAG_SENDONLY , &mcast->flags)) {
drivers/media/dvb/dvb-core/dvb_net.c +5 -5
@@ -1109,14 +1109,14 @@ static int dvb_net_feed_stop(struct net_device *dev) } -static int dvb_set_mc_filter (struct net_device *dev,struct dev_mc_list *mc) +static int dvb_set_mc_filter (struct net_device *dev,unsigned char *addr) {struct dvb_net_priv *priv =netdev_priv (dev);if (priv->multi_num ==DVB_NET_MULTICAST_MAX )return -ENOMEM ; -memcpy (priv->multi_macs[priv->multi_num], mc->dmi_addr,6 ); +memcpy (priv->multi_macs[priv->multi_num], addr,ETH_ALEN ); priv->multi_num++;return 0 ;
@@ -1140,7 +1140,7 @@ static void wq_set_multicast_list (struct work_struct *work)dprintk ("%s: allmulti mode\n" , dev->name); priv->rx_mode =RX_MODE_ALL_MULTI ; }else if (!netdev_mc_empty (dev)) { -struct dev_mc_list *mc; +struct netdev_hw_addr *ha;dprintk ("%s: set_mc_list, %d entries\n" , dev->name,netdev_mc_count (dev));
@@ -1148,8 +1148,8 @@ static void wq_set_multicast_list (struct work_struct *work) priv->rx_mode =RX_MODE_MULTI ; priv->multi_num =0 ; -netdev_for_each_mc_addr (mc, dev) -dvb_set_mc_filter (dev, mc); +netdev_for_each_mc_addr (ha, dev) +dvb_set_mc_filter (dev, ha->addr); }netif_addr_unlock_bh (dev);
drivers/net/3c505.c +4 -3
@@ -1216,7 +1216,7 @@ static int elp_close(struct net_device *dev)static void elp_set_mc_list (struct net_device *dev) {elp_device *adapter =netdev_priv (dev); -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;int i;unsigned long flags;
@@ -1231,8 +1231,9 @@ static void elp_set_mc_list(struct net_device *dev) adapter->tx_pcb.command =CMD_LOAD_MULTICAST_LIST ; adapter->tx_pcb.length =6 *netdev_mc_count (dev); i =0 ; -netdev_for_each_mc_addr (dmi, dev) -memcpy (adapter->tx_pcb.data.multicast[i++], dmi->dmi_addr,6 ); +netdev_for_each_mc_addr (ha, dev) +memcpy (adapter->tx_pcb.data.multicast[i++], + ha->addr,6 ); adapter->got[CMD_LOAD_MULTICAST_LIST ] =0 ;if (!send_pcb (dev, &adapter->tx_pcb))pr_err ("%s: couldn't send set_multicast command\n" , dev->name);
drivers/net/3c523.c +4 -3
@@ -625,7 +625,7 @@ static int init586(struct net_device *dev)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; +struct netdev_hw_addr *ha;int num_addrs =netdev_mc_count (dev); ptr = (void *) ((char *) p->scb +sizeof (struct scb_struct ));
@@ -788,8 +788,9 @@ static int init586(struct net_device *dev) mc_cmd->cmd_link =0xffff ; mc_cmd->mc_cnt = num_addrs *6 ; i =0 ; -netdev_for_each_mc_addr (dmi, dev) -memcpy ((char *) mc_cmd->mc_list[i++], dmi->dmi_addr,6 ); +netdev_for_each_mc_addr (ha, dev) +memcpy ((char *) mc_cmd->mc_list[i++], + ha->addr,6 ); p->scb->cbl_offset =make16 (mc_cmd); p->scb->cmd =CUC_START ;elmc_id_attn586 ();
drivers/net/3c527.c +3 -3
@@ -1533,7 +1533,7 @@ static void do_mc32_set_multicast_list(struct net_device *dev, int retry) {unsigned char block[62 ];unsigned char *bp; -struct dev_mc_list *dmc; +struct netdev_hw_addr *ha;if (retry==0 ) lp->mc_list_valid =0 ;
@@ -1543,8 +1543,8 @@ static void do_mc32_set_multicast_list(struct net_device *dev, int retry) block[0 ]=netdev_mc_count (dev); bp=block+2 ; -netdev_for_each_mc_addr (dmc, dev) { -memcpy (bp, dmc->dmi_addr,6 ); +netdev_for_each_mc_addr (ha, dev) { +memcpy (bp, ha->addr,6 ); bp+=6 ; } if(mc32_command_nowait(dev, 2, block,
drivers/net/7990.c +3 -3
@@ -595,7 +595,7 @@ static void lance_load_multicast (struct net_device *dev)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; +struct netdev_hw_addr *ha;char *addrs;u32 crc;
@@ -610,8 +610,8 @@ static void lance_load_multicast (struct net_device *dev) ib->filter [1 ] =0 ;/* Add addresses */ -netdev_for_each_mc_addr (dmi, dev) { - addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + addrs = ha->addr;/* multicast address? */ if (!(*addrs &1 ))
drivers/net/8139cp.c +3 -3
@@ -909,11 +909,11 @@ static void __cp_set_rx_mode (struct net_device *dev) rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys; mc_filter[1 ] = mc_filter[0 ] =0xffffffff ; }else { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha; rx_mode = AcceptBroadcast | AcceptMyPhys; mc_filter[1 ] = mc_filter[0 ] =0 ; -netdev_for_each_mc_addr (mclist, dev) { -int bit_nr =ether_crc (ETH_ALEN , mclist->dmi_addr) >>26 ; +netdev_for_each_mc_addr (ha, dev) { +int bit_nr =ether_crc (ETH_ALEN , ha->addr) >>26 ; mc_filter[bit_nr >>5 ] |=1 << (bit_nr &31 ); rx_mode |= AcceptMulticast;
drivers/net/8139too.c +3 -3
@@ -2502,11 +2502,11 @@ static void __set_rx_mode (struct net_device *dev) rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys; mc_filter[1 ] = mc_filter[0 ] =0xffffffff ; }else { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha; rx_mode = AcceptBroadcast | AcceptMyPhys; mc_filter[1 ] = mc_filter[0 ] =0 ; -netdev_for_each_mc_addr (mclist, dev) { -int bit_nr =ether_crc (ETH_ALEN , mclist->dmi_addr) >>26 ; +netdev_for_each_mc_addr (ha, dev) { +int bit_nr =ether_crc (ETH_ALEN , ha->addr) >>26 ; mc_filter[bit_nr >>5 ] |=1 << (bit_nr &31 ); rx_mode |= AcceptMulticast;
drivers/net/82596.c +3 -3
@@ -1542,7 +1542,7 @@ static void set_multicast_list(struct net_device *dev) }if (!netdev_mc_empty (dev)) { -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;unsigned char *cp;struct mc_cmd *cmd;
@@ -1552,10 +1552,10 @@ static void set_multicast_list(struct net_device *dev) cmd->cmd.command = CmdMulticastList; cmd->mc_cnt = cnt *ETH_ALEN ; cp = cmd->mc_addrs; -netdev_for_each_mc_addr (dmi, dev) { +netdev_for_each_mc_addr (ha, dev) {if (!cnt--)break ; -memcpy (cp, dmi->dmi_addr,ETH_ALEN ); +memcpy (cp, ha->addr,ETH_ALEN );if (i596_debug >1 )DEB (DEB_MULTI ,printk (KERN_INFO "%s: Adding address %pM\n" , dev->name, cp));
drivers/net/a2065.c +3 -3
@@ -603,7 +603,7 @@ static void lance_load_multicast (struct net_device *dev)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; +struct netdev_hw_addr *ha;char *addrs;u32 crc;
@@ -618,8 +618,8 @@ static void lance_load_multicast (struct net_device *dev) ib->filter [1 ] =0 ;/* Add addresses */ -netdev_for_each_mc_addr (dmi, dev) { - addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + addrs = ha->addr;/* multicast address? */ if (!(*addrs &1 ))
drivers/net/amd8111e.c +3 -3
@@ -1377,7 +1377,7 @@ list to the device.*/ static void amd8111e_set_multicast_list (struct net_device *dev) { -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha;struct amd8111e_priv *lp =netdev_priv (dev);u32 mc_filter[2 ] ;int bit_num;
@@ -1408,8 +1408,8 @@ static void amd8111e_set_multicast_list(struct net_device *dev)/* load all the multicast addresses in the logic filter */ lp->options |=OPTION_MULTICAST_ENABLE ; mc_filter[1 ] = mc_filter[0 ] =0 ; -netdev_for_each_mc_addr (mc_ptr, dev) { - bit_num = (ether_crc_le (ETH_ALEN , mc_ptr->dmi_addr) >>26 ) &0x3f ; +netdev_for_each_mc_addr (ha, dev) { + bit_num = (ether_crc_le (ETH_ALEN , ha->addr) >>26 ) &0x3f ; mc_filter[bit_num >>5 ] |=1 << (bit_num &31 ); }amd8111e_writeq (*(u64 *)mc_filter,lp->mmio+LADRF );
drivers/net/arm/am79c961a.c +3 -3
@@ -383,12 +383,12 @@ static void am79c961_setmulticastlist (struct net_device *dev) }else if (dev->flags &IFF_ALLMULTI ) {memset (multi_hash,0xff ,sizeof (multi_hash)); }else { -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;memset (multi_hash,0x00 ,sizeof (multi_hash)); -netdev_for_each_mc_addr (dmi, dev) -am79c961_mc_hash (dmi->dmi_addr, multi_hash); +netdev_for_each_mc_addr (ha, dev) +am79c961_mc_hash (ha->addr, multi_hash); }spin_lock_irqsave (&priv->chip_lock, flags);
drivers/net/arm/at91_ether.c +3 -3
@@ -556,14 +556,14 @@ static int hash_get_index(__u8 *addr)*/ static void at91ether_sethashtable (struct net_device *dev) { -struct dev_mc_list *curr; +struct netdev_hw_addr *ha;unsigned long mc_filter[2 ];unsigned int bitnr; mc_filter[0 ] = mc_filter[1 ] =0 ; -netdev_for_each_mc_addr (curr, dev) { - bitnr =hash_get_index (curr->dmi_addr); +netdev_for_each_mc_addr (ha, dev) { + bitnr =hash_get_index (ha->addr); mc_filter[bitnr >>5 ] |=1 << (bitnr &31 ); }
drivers/net/arm/ixp4xx_eth.c +4 -4
@@ -735,7 +735,7 @@ static int eth_xmit(struct sk_buff *skb, struct net_device *dev)static void eth_set_mcast_list (struct net_device *dev) {struct port *port =netdev_priv (dev); -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;u8 diffs[ETH_ALEN ], *addr;int i;
@@ -748,11 +748,11 @@ static void eth_set_mcast_list(struct net_device *dev)memset (diffs,0 ,ETH_ALEN ); addr =NULL ; -netdev_for_each_mc_addr (mclist, dev) { +netdev_for_each_mc_addr (ha, dev) {if (!addr) - addr = mclist->dmi_addr;/* first MAC address */ + addr = ha->addr;/* first MAC address */ for (i =0 ; i <ETH_ALEN ; i++) - diffs[i] |= addr[i] ^ mclist->dmi_addr[i]; + diffs[i] |= addr[i] ^ ha->addr[i]; }for (i =0 ; i <ETH_ALEN ; i++) {
drivers/net/arm/ks8695net.c +5 -5
@@ -331,16 +331,16 @@ ks8695_init_partial_multicast(struct ks8695_priv *ksp, {u32 low, high;int i; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha; i =0 ; -netdev_for_each_mc_addr (dmi, ndev) { +netdev_for_each_mc_addr (ha, ndev) {/* Ran out of space in chip? */ BUG_ON (i ==KS8695_NR_ADDRESSES ); - low = (dmi->dmi_addr[2 ] <<24 ) | (dmi->dmi_addr[3 ] <<16 ) | - (dmi->dmi_addr[4 ] <<8 ) | (dmi->dmi_addr[5 ]); - high = (dmi->dmi_addr[0 ] <<8 ) | (dmi->dmi_addr[1 ]); + low = (ha->addr[2 ] <<24 ) | (ha->addr[3 ] <<16 ) | + (ha->addr[4 ] <<8 ) | (ha->addr[5 ]); + high = (ha->addr[0 ] <<8 ) | (ha->addr[1 ]);ks8695_writereg (ksp,KS8695_AAL_ (i), low);ks8695_writereg (ksp,KS8695_AAH_ (i),AAH_E | high);
drivers/net/at1700.c +3 -3
@@ -848,12 +848,12 @@ set_rx_mode(struct net_device *dev)memset (mc_filter,0x00 ,sizeof (mc_filter));outb (1 , ioaddr +RX_MODE );/* Ignore almost all multicasts. */ }else { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;memset (mc_filter,0 ,sizeof (mc_filter)); -netdev_for_each_mc_addr (mclist, dev) { +netdev_for_each_mc_addr (ha, dev) {unsigned int bit = -ether_crc_le (ETH_ALEN , mclist->dmi_addr) >>26 ; +ether_crc_le (ETH_ALEN , ha->addr) >>26 ; mc_filter[bit >>3 ] |= (1 << bit); }outb (0x02 , ioaddr +RX_MODE );/* Use normal mode. */
drivers/net/atl1c/atl1c_main.c +3 -3
@@ -354,7 +354,7 @@ static void atl1c_set_multi(struct net_device *netdev) {struct atl1c_adapter *adapter =netdev_priv (netdev);struct atl1c_hw *hw = &adapter->hw; -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha;u32 mac_ctrl_data;u32 hash_value;
@@ -377,8 +377,8 @@ static void atl1c_set_multi(struct net_device *netdev)AT_WRITE_REG_ARRAY (hw,REG_RX_HASH_TABLE ,1 ,0 );/* comoute mc addresses' hash value ,and put it into hash table */ -netdev_for_each_mc_addr (mc_ptr, netdev) { - hash_value =atl1c_hash_mc_addr (hw, mc_ptr->dmi_addr); +netdev_for_each_mc_addr (ha, netdev) { + hash_value =atl1c_hash_mc_addr (hw, ha->addr);atl1c_hash_set (hw, hash_value); } }
drivers/net/atl1e/atl1e_main.c +3 -3
@@ -284,7 +284,7 @@ static void atl1e_set_multi(struct net_device *netdev) {struct atl1e_adapter *adapter =netdev_priv (netdev);struct atl1e_hw *hw = &adapter->hw; -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha;u32 mac_ctrl_data =0 ;u32 hash_value;
@@ -307,8 +307,8 @@ static void atl1e_set_multi(struct net_device *netdev)AT_WRITE_REG_ARRAY (hw,REG_RX_HASH_TABLE ,1 ,0 );/* comoute mc addresses' hash value ,and put it into hash table */ -netdev_for_each_mc_addr (mc_ptr, netdev) { - hash_value =atl1e_hash_mc_addr (hw, mc_ptr->dmi_addr); +netdev_for_each_mc_addr (ha, netdev) { + hash_value =atl1e_hash_mc_addr (hw, ha->addr);atl1e_hash_set (hw, hash_value); } }
drivers/net/atlx/atl2.c +3 -3
@@ -135,7 +135,7 @@ static void atl2_set_multi(struct net_device *netdev) {struct atl2_adapter *adapter =netdev_priv (netdev);struct atl2_hw *hw = &adapter->hw; -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha;u32 rctl;u32 hash_value;
@@ -157,8 +157,8 @@ static void atl2_set_multi(struct net_device *netdev)ATL2_WRITE_REG_ARRAY (hw,REG_RX_HASH_TABLE ,1 ,0 );/* comoute mc addresses' hash value ,and put it into hash table */ -netdev_for_each_mc_addr (mc_ptr, netdev) { - hash_value =atl2_hash_mc_addr (hw, mc_ptr->dmi_addr); +netdev_for_each_mc_addr (ha, netdev) { + hash_value =atl2_hash_mc_addr (hw, ha->addr);atl2_hash_set (hw, hash_value); } }
drivers/net/atlx/atlx.c +3 -3
@@ -123,7 +123,7 @@ static void atlx_set_multi(struct net_device *netdev) {struct atlx_adapter *adapter =netdev_priv (netdev);struct atlx_hw *hw = &adapter->hw; -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha;u32 rctl;u32 hash_value;
@@ -144,8 +144,8 @@ static void atlx_set_multi(struct net_device *netdev)iowrite32 (0 , (hw->hw_addr +REG_RX_HASH_TABLE ) + (1 <<2 ));/* compute mc addresses' hash value ,and put it into hash table */ -netdev_for_each_mc_addr (mc_ptr, netdev) { - hash_value =atlx_hash_mc_addr (hw, mc_ptr->dmi_addr); +netdev_for_each_mc_addr (ha, netdev) { + hash_value =atlx_hash_mc_addr (hw, ha->addr);atlx_hash_set (hw, hash_value); } }
drivers/net/atp.c +3 -3
@@ -883,11 +883,11 @@ static void set_rx_mode_8012(struct net_device *dev)memset (mc_filter,0xff ,sizeof (mc_filter)); new_mode = CMR2h_Normal; }else { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;memset (mc_filter,0 ,sizeof (mc_filter)); -netdev_for_each_mc_addr (mclist, dev) { -int filterbit =ether_crc_le (ETH_ALEN , mclist->dmi_addr) &0x3f ; +netdev_for_each_mc_addr (ha, dev) { +int filterbit =ether_crc_le (ETH_ALEN , ha->addr) &0x3f ; mc_filter[filterbit >>5 ] |=1 << (filterbit &31 ); } new_mode = CMR2h_Normal;
drivers/net/au1000_eth.c +3 -3
@@ -957,12 +957,12 @@ static void au1000_multicast_list(struct net_device *dev) aup->mac->control &= ~MAC_PROMISCUOUS ;printk (KERN_INFO "%s: Pass all multicast\n" , dev->name); }else { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;u32 mc_filter[2 ];/* Multicast hash filter */ mc_filter[1 ] = mc_filter[0 ] =0 ; -netdev_for_each_mc_addr (mclist, dev) -set_bit (ether_crc (ETH_ALEN , mclist->dmi_addr)>>26 , +netdev_for_each_mc_addr (ha, dev) +set_bit (ether_crc (ETH_ALEN , ha->addr)>>26 , (long *)mc_filter); aup->mac->multi_hash_high = mc_filter[1 ]; aup->mac->multi_hash_low = mc_filter[0 ];
drivers/net/b44.c +3 -3
@@ -1680,15 +1680,15 @@ static struct net_device_stats *b44_get_stats(struct net_device *dev)static int __b44_load_mcast (struct b44 *bp,struct net_device *dev) { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;int i, num_ents; num_ents =min_t (int,netdev_mc_count (dev),B44_MCAST_TABLE_SIZE ); i =0 ; -netdev_for_each_mc_addr (mclist, dev) { +netdev_for_each_mc_addr (ha, dev) {if (i == num_ents)break ; -__b44_cam_write (bp, mclist->dmi_addr, i++ +1 ); +__b44_cam_write (bp, ha->addr, i++ +1 ); }return i+1 ; }
drivers/net/bcm63xx_enet.c +3 -3
@@ -603,7 +603,7 @@ static int bcm_enet_set_mac_address(struct net_device *dev, void *p)static void bcm_enet_set_multicast_list (struct net_device *dev) {struct bcm_enet_priv *priv; -struct dev_mc_list *mc_list; +struct netdev_hw_addr *ha;u32 val;int i;
@@ -631,14 +631,14 @@ static void bcm_enet_set_multicast_list(struct net_device *dev) } i =0 ; -netdev_for_each_mc_addr (mc_list, dev) { +netdev_for_each_mc_addr (ha, dev) {u8 *dmi_addr;u32 tmp;if (i ==3 )break ;/* update perfect match registers */ - dmi_addr = mc_list->dmi_addr; + dmi_addr = ha->addr; tmp = (dmi_addr[2 ] <<24 ) | (dmi_addr[3 ] <<16 ) | (dmi_addr[4 ] <<8 ) | dmi_addr[5 ];enet_writel (priv, tmp,ENET_PML_REG (i +1 ));
drivers/net/benet/be_cmds.c +3 -3
@@ -1159,13 +1159,13 @@ int be_cmd_multicast_set(struct be_adapter *adapter, u32 if_id, req->interface_id = if_id;if (netdev) {int i; -struct dev_mc_list *mc; +struct netdev_hw_addr *ha; req->num_mac =cpu_to_le16 (netdev_mc_count (netdev)); i =0 ; -netdev_for_each_mc_addr (mc, netdev) -memcpy (req->mac[i].byte, mc->dmi_addr,ETH_ALEN ); +netdev_for_each_mc_addr (ha, netdev) +memcpy (req->mac[i].byte, ha->addr,ETH_ALEN ); }else { req->promiscuous =1 ; }
drivers/net/bfin_mac.c +3 -3
@@ -812,14 +812,14 @@ static void bfin_mac_timeout(struct net_device *dev)static void bfin_mac_multicast_hash (struct net_device *dev) {u32 emac_hashhi, emac_hashlo; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;char *addrs;u32 crc; emac_hashhi = emac_hashlo =0 ; -netdev_for_each_mc_addr (dmi, dev) { - addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + addrs = ha->addr;/* skip non-multicast addresses */ if (!(*addrs &1 ))
drivers/net/bmac.c +6 -6
@@ -971,7 +971,7 @@ bmac_remove_multi(struct net_device *dev,*/ static void bmac_set_multicast (struct net_device *dev) { -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;struct bmac_data *bp =netdev_priv (dev);int num_addrs =netdev_mc_count (dev);unsigned short rx_cfg;
@@ -1000,8 +1000,8 @@ static void bmac_set_multicast(struct net_device *dev) rx_cfg =bmac_rx_on (dev,0 ,0 );XXDEBUG (("bmac: multi disabled, rx_cfg=%#08x\n" , rx_cfg)); }else { -netdev_for_each_mc_addr (dmi, dev) -bmac_addhash (bp, dmi->dmi_addr); +netdev_for_each_mc_addr (ha, dev) +bmac_addhash (bp, ha->addr);bmac_update_hash_table_mask (dev, bp); rx_cfg =bmac_rx_on (dev,1 ,0 );XXDEBUG (("bmac: multi enabled, rx_cfg=%#08x\n" , rx_cfg));
@@ -1015,7 +1015,7 @@ static void bmac_set_multicast(struct net_device *dev)static void bmac_set_multicast (struct net_device *dev) { -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;char *addrs;int i;unsigned short rx_cfg;
@@ -1039,8 +1039,8 @@ static void bmac_set_multicast(struct net_device *dev)for (i =0 ; i <4 ; i++) hash_table[i] =0 ; -netdev_for_each_mc_addr (dmi, dev) { - addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + addrs = ha->addr;if (!(*addrs &1 ))continue ;
drivers/net/bnx2.c +2 -3
@@ -3544,7 +3544,6 @@ bnx2_set_rx_mode(struct net_device *dev) }else {/* Accept one or more multicast(s). */ -struct dev_mc_list *mclist;u32 mc_filter[NUM_MC_HASH_REGISTERS ];u32 regidx;u32 bit;
@@ -3552,8 +3551,8 @@ bnx2_set_rx_mode(struct net_device *dev)memset (mc_filter,0 ,4 *NUM_MC_HASH_REGISTERS ); -netdev_for_each_mc_addr (mclist, dev) { - crc =ether_crc_le (ETH_ALEN , mclist->dmi_addr); +netdev_for_each_mc_addr (ha, dev) { + crc =ether_crc_le (ETH_ALEN , ha->addr); bit = crc &0xff ; regidx = (bit &0xe0 ) >>5 ; bit &=0x1f ;
drivers/net/bnx2x_main.c +9 -9
@@ -11496,21 +11496,21 @@ static void bnx2x_set_rx_mode(struct net_device *dev)else {/* some multicasts */ if (CHIP_IS_E1 (bp)) {int i, old, offset; -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;struct mac_configuration_cmd *config =bnx2x_sp (bp, mcast_config); i =0 ; -netdev_for_each_mc_addr (mclist, dev) { +netdev_for_each_mc_addr (ha, dev) { config->config_table[i]. cam_entry.msb_mac_addr = -swab16 (*(u16 *)&mclist->dmi_addr[0 ]); +swab16 (*(u16 *)&ha->addr[0 ]); config->config_table[i]. cam_entry.middle_mac_addr = -swab16 (*(u16 *)&mclist->dmi_addr[2 ]); +swab16 (*(u16 *)&ha->addr[2 ]); config->config_table[i]. cam_entry.lsb_mac_addr = -swab16 (*(u16 *)&mclist->dmi_addr[4 ]); +swab16 (*(u16 *)&ha->addr[4 ]); config->config_table[i].cam_entry.flags =cpu_to_le16 (port); config->config_table[i].
@@ -11564,18 +11564,18 @@ static void bnx2x_set_rx_mode(struct net_device *dev) 0); }else {/* E1H */ /* Accept one or more multicasts */ -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;u32 mc_filter[MC_HASH_SIZE ];u32 crc, bit, regidx;int i;memset (mc_filter,0 ,4 *MC_HASH_SIZE ); -netdev_for_each_mc_addr (mclist, dev) { +netdev_for_each_mc_addr (ha, dev) {DP (NETIF_MSG_IFUP ,"Adding mcast MAC: %pM\n" , - mclist->dmi_addr); + ha->addr); - crc =crc32c_le (0 , mclist->dmi_addr,ETH_ALEN ); + crc =crc32c_le (0 , ha->addr,ETH_ALEN ); bit = (crc >>24 ) &0xff ; regidx = bit >>5 ; bit &=0x1f ;
drivers/net/bonding/bond_main.c +51 -106
285 lines not on this page · raw message
drivers/net/bonding/bonding.h +1 -1
@@ -202,7 +202,7 @@ struct bonding {char proc_file_name[IFNAMSIZ ];#endif /* CONFIG_PROC_FS */ struct list_head bond_list; -struct dev_mc_list *mc_list; +struct netdev_hw_addr_list mc_list;int (*xmit_hash_policy)(struct sk_buff *,int );__be32 master_ip;u16 flags;
drivers/net/cassini.c +6 -6
@@ -2957,20 +2957,20 @@ static void cas_process_mc_list(struct cas *cp) {u16 hash_table[16 ];u32 crc; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;int i =1 ;memset (hash_table,0 ,sizeof (hash_table)); -netdev_for_each_mc_addr (dmi, cp->dev) { +netdev_for_each_mc_addr (ha, cp->dev) {if (i <=CAS_MC_EXACT_MATCH_SIZE ) {/* use the alternate mac address registers for the * first 15 multicast addresses */ -writel ((dmi->dmi_addr[4 ] <<8 ) | dmi->dmi_addr[5 ], +writel ((ha->addr[4 ] <<8 ) | ha->addr[5 ], cp->regs +REG_MAC_ADDRN (i*3 +0 )); -writel ((dmi->dmi_addr[2 ] <<8 ) | dmi->dmi_addr[3 ], +writel ((ha->addr[2 ] <<8 ) | ha->addr[3 ], cp->regs +REG_MAC_ADDRN (i*3 +1 )); -writel ((dmi->dmi_addr[0 ] <<8 ) | dmi->dmi_addr[1 ], +writel ((ha->addr[0 ] <<8 ) | ha->addr[1 ], cp->regs +REG_MAC_ADDRN (i*3 +2 )); i++; }
@@ -2978,7 +2978,7 @@ static void cas_process_mc_list(struct cas *cp)/* use hw hash table for the next series of * multicast addresses */ - crc =ether_crc_le (ETH_ALEN , dmi->dmi_addr); + crc =ether_crc_le (ETH_ALEN , ha->addr); crc >>=24 ; hash_table[crc >>4 ] |=1 << (15 - (crc &0xf )); }
drivers/net/chelsio/pm3393.c +4 -3
@@ -376,12 +376,13 @@ static int pm3393_set_rx_mode(struct cmac *cmac, struct t1_rx_mode *rm) rx_mode |= SUNI1x10GEXP_BITMSK_RXXG_MHASH_EN; }else if (t1_rx_mode_mc_cnt (rm)) {/* Accept one or more multicast(s). */ -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;int bit;u16 mc_filter[4 ] = {0 , }; -netdev_for_each_mc_addr (dmi,t1_get_netdev (rm)) { - bit = (ether_crc (ETH_ALEN , dmi->dmi_addr) >>23 ) &0x3f ;/* bit[23:28] */ +netdev_for_each_mc_addr (ha,t1_get_netdev (rm)) { +/* bit[23:28] */ + bit = (ether_crc (ETH_ALEN , ha->addr) >>23 ) &0x3f ; mc_filter[bit >>4 ] |=1 << (bit &0xf ); }pmwrite (cmac, SUNI1x10GEXP_REG_RXXG_MULTICAST_HASH_LOW, mc_filter[0 ]);
drivers/net/cpmac.c +8 -8
@@ -328,7 +328,7 @@ static int cpmac_config(struct net_device *dev, struct ifmap *map)static void cpmac_set_multicast_list (struct net_device *dev) { -struct dev_mc_list *iter; +struct netdev_hw_addr *ha;u8 tmp;u32 mbp, bit, hash[2 ] = {0 , };struct cpmac_priv *priv =netdev_priv (dev);
@@ -348,19 +348,19 @@ static void cpmac_set_multicast_list(struct net_device *dev)* cpmac uses some strange mac address hashing * (not crc32) */ -netdev_for_each_mc_addr (iter, dev) { +netdev_for_each_mc_addr (ha, dev) { bit =0 ; - tmp = iter->dmi_addr[0 ]; + tmp = ha->addr[0 ]; bit ^= (tmp >>2 ) ^ (tmp <<4 ); - tmp = iter->dmi_addr[1 ]; + tmp = ha->addr[1 ]; bit ^= (tmp >>4 ) ^ (tmp <<2 ); - tmp = iter->dmi_addr[2 ]; + tmp = ha->addr[2 ]; bit ^= (tmp >>6 ) ^ tmp; - tmp = iter->dmi_addr[3 ]; + tmp = ha->addr[3 ]; bit ^= (tmp >>2 ) ^ (tmp <<4 ); - tmp = iter->dmi_addr[4 ]; + tmp = ha->addr[4 ]; bit ^= (tmp >>4 ) ^ (tmp <<2 ); - tmp = iter->dmi_addr[5 ]; + tmp = ha->addr[5 ]; bit ^= (tmp >>6 ) ^ tmp; bit &=0x3f ; hash[bit /32 ] |=1 << (bit %32 );
drivers/net/cris/eth_v10.c +3 -3
@@ -1596,16 +1596,16 @@ set_multicast_list(struct net_device *dev) }else {/* MC mode, receive normal and MC packets */ char hash_ix; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;char *baddr; lo_bits =0x00000000ul ; hi_bits =0x00000000ul ; -netdev_for_each_mc_addr (dmi, dev) { +netdev_for_each_mc_addr (ha, dev) {/* Calculate the hash index for the GA registers */ hash_ix =0 ; - baddr = dmi->dmi_addr; + baddr = ha->addr; hash_ix ^= (*baddr) &0x3f ; hash_ix ^= ((*baddr) >>6 ) &0x03 ; ++baddr;
drivers/net/cxgb3/xgmac.c +4 -4
@@ -311,16 +311,16 @@ int t3_mac_set_rx_mode(struct cmac *mac, struct net_device *dev)if (dev->flags &IFF_ALLMULTI ) hash_lo = hash_hi =0xffffffff ;else { -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;int exact_addr_idx = mac->nucast; hash_lo = hash_hi =0 ; -netdev_for_each_mc_addr (dmi, dev) +netdev_for_each_mc_addr (ha, dev)if (exact_addr_idx <EXACT_ADDR_FILTERS )set_addr_filter (mac, exact_addr_idx++, - dmi->dmi_addr); + ha->addr);else { -int hash =hash_hw_addr (dmi->dmi_addr); +int hash =hash_hw_addr (ha->addr);if (hash <32 ) hash_lo |= (1 << hash);
drivers/net/davinci_emac.c +4 -3
@@ -952,13 +952,14 @@ static void emac_dev_mcast_set(struct net_device *ndev)emac_add_mcast (priv,EMAC_ALL_MULTI_SET ,NULL ); }if (!netdev_mc_empty (ndev)) { -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha; + mbp_enable = (mbp_enable |EMAC_MBP_RXMCAST );emac_add_mcast (priv,EMAC_ALL_MULTI_CLR ,NULL );/* program multicast address list into EMAC hardware */ -netdev_for_each_mc_addr (mc_ptr, ndev) { +netdev_for_each_mc_addr (ha, ndev) {emac_add_mcast (priv,EMAC_MULTICAST_ADD , - (u8 *) mc_ptr->dmi_addr); + (u8 *) ha->addr); } }else { mbp_enable = (mbp_enable & ~EMAC_MBP_RXMCAST );
drivers/net/declance.c +3 -3
@@ -940,7 +940,7 @@ static void lance_load_multicast(struct net_device *dev) {struct lance_private *lp =netdev_priv (dev);volatile u16 *ib = (volatile u16 *)dev->mem_start; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;char *addrs;u32 crc;
@@ -959,8 +959,8 @@ static void lance_load_multicast(struct net_device *dev) *lib_ptr (ib, filter[3 ], lp->type) =0 ;/* Add addresses */ -netdev_for_each_mc_addr (dmi, dev) { - addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + addrs = ha->addr;/* multicast address? */ if (!(*addrs &1 ))
drivers/net/defxx.c +3 -3
@@ -2195,7 +2195,7 @@ static void dfx_ctl_set_multicast_list(struct net_device *dev) {DFX_board_t *bp =netdev_priv (dev);int i;/* used as index in for loop */ -struct dev_mc_list *dmi;/* ptr to multicast addr entry */ +struct netdev_hw_addr *ha;/* Enable LLC frame promiscuous mode, if necessary */
@@ -2241,9 +2241,9 @@ static void dfx_ctl_set_multicast_list(struct net_device *dev)/* Copy addresses to multicast address table, then update adapter CAM */ i =0 ; -netdev_for_each_mc_addr (dmi, dev) +netdev_for_each_mc_addr (ha, dev)memcpy (&bp->mc_table[i++ *FDDI_K_ALEN ], - dmi->dmi_addr,FDDI_K_ALEN ); + ha->addr,FDDI_K_ALEN );if (dfx_ctl_update_cam (bp) !=DFX_K_SUCCESS ) {
drivers/net/depca.c +3 -3
@@ -1272,7 +1272,7 @@ static void set_multicast_list(struct net_device *dev)static void SetMulticastFilter (struct net_device *dev) {struct depca_private *lp =netdev_priv (dev); -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;char *addrs;int i, j, bit, byte;u16 hashcode;
@@ -1287,8 +1287,8 @@ static void SetMulticastFilter(struct net_device *dev) lp->init_block.mcast_table[i] =0 ; }/* Add multicast addresses */ -netdev_for_each_mc_addr (dmi, dev) { - addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + addrs = ha->addr;if ((*addrs &0x01 ) ==1 ) {/* multicast address? */ crc =ether_crc (ETH_ALEN , addrs); hashcode = (crc &1 );/* hashcode is 6 LSb of CRC ... */
drivers/net/dl2k.c +3 -3
@@ -1132,14 +1132,14 @@ set_multicast (struct net_device *dev)/* Receive broadcast and multicast frames */ rx_mode = ReceiveBroadcast | ReceiveMulticast | ReceiveUnicast; }else if (!netdev_mc_empty (dev)) { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;/* Receive broadcast frames and multicast frames filtering by Hashtable */ rx_mode = ReceiveBroadcast | ReceiveMulticastHash | ReceiveUnicast; -netdev_for_each_mc_addr (mclist, dev) { +netdev_for_each_mc_addr (ha, dev) {int bit, index =0 ; -int crc =ether_crc_le (ETH_ALEN , mclist->dmi_addr); +int crc =ether_crc_le (ETH_ALEN , ha->addr);/* The inverted high significant 6 bits of CRC are used as an index to hashtable */ for (bit =0 ; bit <6 ; bit++)
drivers/net/dm9000.c +3 -3
@@ -724,7 +724,7 @@ static void dm9000_hash_table(struct net_device *dev) {board_info_t *db =netdev_priv (dev); -struct dev_mc_list *mcptr; +struct netdev_hw_addr *ha;int i, oft;u32 hash_val;u16 hash_table[4 ];
@@ -752,8 +752,8 @@ dm9000_hash_table(struct net_device *dev) rcr |=RCR_ALL ;/* the multicast address in Hash Table : 64 bits */ -netdev_for_each_mc_addr (mcptr, dev) { - hash_val =ether_crc_le (6 , mcptr->dmi_addr) &0x3f ; +netdev_for_each_mc_addr (ha, dev) { + hash_val =ether_crc_le (6 , ha->addr) &0x3f ; hash_table[hash_val /16 ] |= (u16 )1 << (hash_val %16 ); }
drivers/net/e100.c +3 -3
@@ -1545,16 +1545,16 @@ 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; +struct netdev_hw_addr *ha;u16 i, count =min (netdev_mc_count (netdev),E100_MAX_MULTICAST_ADDRS ); cb->command =cpu_to_le16 (cb_multi); cb->u.multi.count =cpu_to_le16 (count *ETH_ALEN ); i =0 ; -netdev_for_each_mc_addr (list, netdev) { +netdev_for_each_mc_addr (ha, netdev) {if (i == count)break ; -memcpy (&cb->u.multi.addr[i++ *ETH_ALEN ], &list->dmi_addr, +memcpy (&cb->u.multi.addr[i++ *ETH_ALEN ], &ha->addr,ETH_ALEN ); } }
drivers/net/e1000/e1000_main.c +3 -4
@@ -2101,7 +2101,6 @@ static void e1000_set_rx_mode(struct net_device *netdev)struct e1000_hw *hw = &adapter->hw;struct netdev_hw_addr *ha;bool use_uc = false; -struct dev_addr_list *mc_ptr;u32 rctl;u32 hash_value;int i, rar_entries =E1000_RAR_ENTRIES ;
@@ -2161,17 +2160,17 @@ static void e1000_set_rx_mode(struct net_device *netdev)WARN_ON (i == rar_entries); -netdev_for_each_mc_addr (mc_ptr, netdev) { +netdev_for_each_mc_addr (ha, netdev) {if (i == rar_entries) {/* load any remaining addresses into the hash table */ u32 hash_reg, hash_bit, mta; - hash_value =e1000_hash_mc_addr (hw, mc_ptr->da_addr); + hash_value =e1000_hash_mc_addr (hw, ha->addr); hash_reg = (hash_value >>5 ) &0x7F ; hash_bit = hash_value &0x1F ; mta = (1 << hash_bit); mcarray[hash_reg] |= mta; }else { -e1000_rar_set (hw, mc_ptr->da_addr, i++); +e1000_rar_set (hw, ha->addr, i++); } }
drivers/net/e1000e/netdev.c +3 -4
@@ -2567,7 +2567,7 @@ static void e1000_set_multi(struct net_device *netdev) {struct e1000_adapter *adapter =netdev_priv (netdev);struct e1000_hw *hw = &adapter->hw; -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha;u8 *mta_list;u32 rctl;int i;
@@ -2599,9 +2599,8 @@ static void e1000_set_multi(struct net_device *netdev)/* prepare a packed array of only addresses. */ i =0 ; -netdev_for_each_mc_addr (mc_ptr, netdev) -memcpy (mta_list + (i++ *ETH_ALEN ), - mc_ptr->dmi_addr,ETH_ALEN ); +netdev_for_each_mc_addr (ha, netdev) +memcpy (mta_list + (i++ *ETH_ALEN ), ha->addr,ETH_ALEN );e1000_update_mc_addr_list (hw, mta_list, i);kfree (mta_list);
drivers/net/eepro.c +3 -3
@@ -1287,7 +1287,7 @@ set_multicast_list(struct net_device *dev)struct eepro_local *lp =netdev_priv (dev);short ioaddr = dev->base_addr;unsigned short mode; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;int mc_count =netdev_mc_count (dev);if (dev->flags&(IFF_ALLMULTI |IFF_PROMISC ) || mc_count >63 )
@@ -1332,8 +1332,8 @@ set_multicast_list(struct net_device *dev)outw (0 , ioaddr +IO_PORT );outw (6 * (mc_count +1 ), ioaddr +IO_PORT ); -netdev_for_each_mc_addr (dmi, dev) { - eaddrs = (unsigned short *) dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + eaddrs = (unsigned short *) ha->addr;outw (*eaddrs++, ioaddr +IO_PORT );outw (*eaddrs++, ioaddr +IO_PORT );outw (*eaddrs++, ioaddr +IO_PORT );
drivers/net/eexpress.c +3 -3
@@ -1576,7 +1576,7 @@ static void eexp_hw_init586(struct net_device *dev)static void eexp_setup_filter (struct net_device *dev) { -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;unsigned short ioaddr = dev->base_addr;int count =netdev_mc_count (dev);int i;
@@ -1589,8 +1589,8 @@ static void eexp_setup_filter(struct net_device *dev)outw (CONF_NR_MULTICAST & ~31 , ioaddr+SM_PTR );outw (6 *count, ioaddr+SHADOW (CONF_NR_MULTICAST )); i =0 ; -netdev_for_each_mc_addr (dmi, dev) { -unsigned short *data = (unsigned short *) dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { +unsigned short *data = (unsigned short *) ha->addr;if (i == count)break ;
drivers/net/ehea/ehea_main.c +3 -3
@@ -1966,7 +1966,7 @@ static void ehea_add_multicast_entry(struct ehea_port *port, u8 *mc_mac_addr)static void ehea_set_multicast_list (struct net_device *dev) {struct ehea_port *port =netdev_priv (dev); -struct dev_mc_list *k_mcl_entry; +struct netdev_hw_addr *ha;int ret;if (dev->flags &IFF_PROMISC ) {
@@ -1997,8 +1997,8 @@ static void ehea_set_multicast_list(struct net_device *dev) goto out; } -netdev_for_each_mc_addr (k_mcl_entry, dev) -ehea_add_multicast_entry (port, k_mcl_entry->dmi_addr); +netdev_for_each_mc_addr (ha, dev) +ehea_add_multicast_entry (port, ha->addr); } out:
drivers/net/enic/enic_main.c +3 -3
@@ -822,7 +822,7 @@ static int enic_set_mac_addr(struct net_device *netdev, char *addr)static void enic_set_multicast_list (struct net_device *netdev) {struct enic *enic =netdev_priv (netdev); -struct dev_mc_list *list; +struct netdev_hw_addr *ha;int directed =1 ;int multicast = (netdev->flags &IFF_MULTICAST ) ?1 :0 ;int broadcast = (netdev->flags &IFF_BROADCAST ) ?1 :0 ;
@@ -852,10 +852,10 @@ static void enic_set_multicast_list(struct net_device *netdev)*/ i =0 ; -netdev_for_each_mc_addr (list, netdev) { +netdev_for_each_mc_addr (ha, netdev) {if (i == mc_count)break ; -memcpy (mc_addr[i++], list->dmi_addr,ETH_ALEN ); +memcpy (mc_addr[i++], ha->addr,ETH_ALEN ); }for (i =0 ; i < enic->mc_count; i++) {
drivers/net/epic100.c +3 -3
@@ -1400,12 +1400,12 @@ static void set_rx_mode(struct net_device *dev)outl (0x0004 , ioaddr + RxCtrl);return ; }else {/* Never executed, for now. */ -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;memset (mc_filter,0 ,sizeof (mc_filter)); -netdev_for_each_mc_addr (mclist, dev) { +netdev_for_each_mc_addr (ha, dev) {unsigned int bit_nr = -ether_crc_le (ETH_ALEN , mclist->dmi_addr) &0x3f ; +ether_crc_le (ETH_ALEN , ha->addr) &0x3f ; mc_filter[bit_nr >>3 ] |= (1 << bit_nr); } }
drivers/net/ethoc.c +3 -3
@@ -755,7 +755,7 @@ static void ethoc_set_multicast_list(struct net_device *dev) {struct ethoc *priv =netdev_priv (dev);u32 mode =ethoc_read (priv,MODER ); -struct dev_mc_list *mc; +struct netdev_hw_addr *ha;u32 hash[2 ] = {0 ,0 };/* set loopback mode if requested */
@@ -783,8 +783,8 @@ static void ethoc_set_multicast_list(struct net_device *dev) hash[0 ] =0xffffffff ; hash[1 ] =0xffffffff ; }else { -netdev_for_each_mc_addr (mc, dev) { -u32 crc =ether_crc (ETH_ALEN , mc->dmi_addr); +netdev_for_each_mc_addr (ha, dev) { +u32 crc =ether_crc (ETH_ALEN , ha->addr);int bit = (crc >>26 ) &0x3f ; hash[bit >>5 ] |=1 << (bit &0x1f ); }
drivers/net/ewrk3.c +3 -3
@@ -1169,7 +1169,7 @@ static void set_multicast_list(struct net_device *dev)static void SetMulticastFilter (struct net_device *dev) {struct ewrk3_private *lp =netdev_priv (dev); -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;u_long iobase = dev->base_addr;int i;char *addrs, bit, byte;
@@ -1213,8 +1213,8 @@ static void SetMulticastFilter(struct net_device *dev) }/* Update table */ -netdev_for_each_mc_addr (dmi, dev) { - addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + addrs = ha->addr;if ((*addrs &0x01 ) ==1 ) {/* multicast address? */ crc =ether_crc_le (ETH_ALEN , addrs); hashcode = crc & ((1 <<9 ) -1 );/* hashcode is 9 LSb of CRC */
drivers/net/fealnx.c +3 -3
@@ -1792,12 +1792,12 @@ static void __set_rx_mode(struct net_device *dev)memset (mc_filter,0xff ,sizeof (mc_filter)); rx_mode =CR_W_AB |CR_W_AM ; }else { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;memset (mc_filter,0 ,sizeof (mc_filter)); -netdev_for_each_mc_addr (mclist, dev) { +netdev_for_each_mc_addr (ha, dev) {unsigned int bit; - bit = (ether_crc (ETH_ALEN , mclist->dmi_addr) >>26 ) ^0x3F ; + bit = (ether_crc (ETH_ALEN , ha->addr) >>26 ) ^0x3F ; mc_filter[bit >>5 ] |= (1 << bit); } rx_mode =CR_W_AB |CR_W_AM ;
drivers/net/fec.c +5 -5
@@ -954,7 +954,7 @@ fec_enet_close(struct net_device *dev)static void set_multicast_list (struct net_device *dev) {struct fec_enet_private *fep =netdev_priv (dev); -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;unsigned int i, bit, data, crc, tmp;unsigned char hash;
@@ -984,16 +984,16 @@ static void set_multicast_list(struct net_device *dev)writel (0 , fep->hwp +FEC_GRP_HASH_TABLE_HIGH );writel (0 , fep->hwp +FEC_GRP_HASH_TABLE_LOW ); -netdev_for_each_mc_addr (dmi, dev) { +netdev_for_each_mc_addr (ha, dev) {/* Only support group multicast for now */ -if (!(dmi->dmi_addr[0 ] &1 )) +if (!(ha->addr[0 ] &1 ))continue ;/* calculate crc32 value of mac address */ crc =0xffffffff ; -for (i =0 ; i < dmi->dmi_addrlen; i++) { - data = dmi->dmi_addr[i]; +for (i =0 ; i < dev->addr_len; i++) { + data = ha->addr[i];for (bit =0 ; bit <8 ; bit++, data >>=1 ) { crc = (crc >>1 ) ^ (((crc ^ data) &1 ) ?CRC32_POLY :0 );
drivers/net/fec_mpc52xx.c +3 -3
@@ -574,12 +574,12 @@ static void mpc52xx_fec_set_multicast_list(struct net_device *dev)out_be32 (&fec->gaddr2,0xffffffff ); }else {u32 crc; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;u32 gaddr1 =0x00000000 ;u32 gaddr2 =0x00000000 ; -netdev_for_each_mc_addr (dmi, dev) { - crc =ether_crc_le (6 , dmi->dmi_addr) >>26 ; +netdev_for_each_mc_addr (ha, dev) { + crc =ether_crc_le (6 , ha->addr) >>26 ;if (crc >=32 ) gaddr1 |=1 << (crc-32 );else
drivers/net/forcedeth.c +6 -4
@@ -3103,12 +3103,14 @@ static void nv_set_multicast(struct net_device *dev)if (dev->flags &IFF_ALLMULTI ) { alwaysOn[0 ] = alwaysOn[1 ] = alwaysOff[0 ] = alwaysOff[1 ] =0 ; }else { -struct dev_mc_list *walk; +struct netdev_hw_addr *ha; -netdev_for_each_mc_addr (walk, dev) { +netdev_for_each_mc_addr (ha, dev) { +unsigned char *addr = ha->addr;u32 a, b; - a =le32_to_cpu (*(__le32 *) walk->dmi_addr); - b =le16_to_cpu (*(__le16 *) (&walk->dmi_addr[4 ])); + + a =le32_to_cpu (*(__le32 *) addr); + b =le16_to_cpu (*(__le16 *) (&addr[4 ])); alwaysOn[0 ] &= a; alwaysOff[0 ] &= ~a; alwaysOn[1 ] &= b;
drivers/net/fs_enet/mac-fcc.c +3 -3
@@ -231,12 +231,12 @@ static void set_multicast_finish(struct net_device *dev)static void set_multicast_list (struct net_device *dev) { -struct dev_mc_list *pmc; +struct netdev_hw_addr *ha;if ((dev->flags &IFF_PROMISC ) ==0 ) {set_multicast_start (dev); -netdev_for_each_mc_addr (pmc, dev) -set_multicast_one (dev, pmc->dmi_addr); +netdev_for_each_mc_addr (ha, dev) +set_multicast_one (dev, ha->addr);set_multicast_finish (dev); }else set_promiscuous_mode (dev);
drivers/net/fs_enet/mac-fec.c +3 -3
@@ -232,12 +232,12 @@ static void set_multicast_finish(struct net_device *dev)static void set_multicast_list (struct net_device *dev) { -struct dev_mc_list *pmc; +struct netdev_hw_addr *ha;if ((dev->flags &IFF_PROMISC ) ==0 ) {set_multicast_start (dev); -netdev_for_each_mc_addr (pmc, dev) -set_multicast_one (dev, pmc->dmi_addr); +netdev_for_each_mc_addr (ha, dev) +set_multicast_one (dev, ha->addr);set_multicast_finish (dev); }else set_promiscuous_mode (dev);
drivers/net/fs_enet/mac-scc.c +3 -3
@@ -224,12 +224,12 @@ static void set_multicast_finish(struct net_device *dev)static void set_multicast_list (struct net_device *dev) { -struct dev_mc_list *pmc; +struct netdev_hw_addr *ha;if ((dev->flags &IFF_PROMISC ) ==0 ) {set_multicast_start (dev); -netdev_for_each_mc_addr (pmc, dev) -set_multicast_one (dev, pmc->dmi_addr); +netdev_for_each_mc_addr (ha, dev) +set_multicast_one (dev, ha->addr);set_multicast_finish (dev); }else set_promiscuous_mode (dev);
drivers/net/gianfar.c +4 -5
@@ -2797,7 +2797,7 @@ static void adjust_link(struct net_device *dev)* whenever dev->flags is changed */ static void gfar_set_multi (struct net_device *dev) { -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha;struct gfar_private *priv =netdev_priv (dev);struct gfar __iomem *regs = priv->gfargrp[0 ].regs;u32 tempval;
@@ -2870,13 +2870,12 @@ static void gfar_set_multi(struct net_device *dev)return ;/* Parse the list, and set the appropriate bits */ -netdev_for_each_mc_addr (mc_ptr, dev) { +netdev_for_each_mc_addr (ha, dev) {if (idx < em_num) { -gfar_set_mac_for_addr (dev, idx, - mc_ptr->dmi_addr); +gfar_set_mac_for_addr (dev, idx, ha->addr); idx++; }else -gfar_set_hash_for_addr (dev, mc_ptr->dmi_addr); +gfar_set_hash_for_addr (dev, ha->addr); } }
drivers/net/greth.c +3 -3
@@ -988,7 +988,7 @@ static u32 greth_hash_get_index(__u8 *addr)static void greth_set_hash_filter (struct net_device *dev) { -struct dev_mc_list *curr; +struct netdev_hw_addr *ha;struct greth_private *greth =netdev_priv (dev);struct greth_regs *regs = (struct greth_regs *) greth->regs;u32 mc_filter[2 ];
@@ -996,8 +996,8 @@ static void greth_set_hash_filter(struct net_device *dev) mc_filter[0 ] = mc_filter[1 ] =0 ; -netdev_for_each_mc_addr (curr, dev) { - bitnr =greth_hash_get_index (curr->dmi_addr); +netdev_for_each_mc_addr (ha, dev) { + bitnr =greth_hash_get_index (ha->addr); mc_filter[bitnr >>5 ] |=1 << (bitnr &31 ); }
drivers/net/hamachi.c +4 -4
@@ -1858,12 +1858,12 @@ static void set_rx_mode(struct net_device *dev)/* Too many to match, or accept all multicasts. */ writew (0x000B , ioaddr + AddrMode); }else if (!netdev_mc_empty (dev)) {/* Must use the CAM filter. */ -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;int i =0 ; -netdev_for_each_mc_addr (mclist, dev) { -writel (*(u32 *)(mclist->dmi_addr), ioaddr +0x100 + i*8 ); -writel (0x20000 | (*(u16 *)&mclist->dmi_addr[4 ]), +netdev_for_each_mc_addr (ha, dev) { +writel (*(u32 *)(ha->addr), ioaddr +0x100 + i*8 ); +writel (0x20000 | (*(u16 *)&ha->addr[4 ]), ioaddr +0x104 + i*8 ); i++; }
drivers/net/hp100.c +3 -3
@@ -2100,15 +2100,15 @@ static void hp100_set_multicast_list(struct net_device *dev) }else {int i, idx;u_char *addrs; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;memset (&lp->hash_bytes,0x00 ,8 );#ifdef HP100_DEBUG printk ("hp100: %s: computing hash filter - mc_count = %i\n" , dev->name,netdev_mc_count (dev));#endif -netdev_for_each_mc_addr (dmi, dev) { - addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + addrs = ha->addr;if ((*addrs &0x01 ) ==0x01 ) {/* multicast address? */ #ifdef HP100_DEBUG printk("hp100: %s: multicast = %pM, ",
drivers/net/ibm_newemac/core.c +6 -5
@@ -388,18 +388,19 @@ static void emac_hash_mc(struct emac_instance *dev)const int regs =EMAC_XAHT_REGS (dev);u32 *gaht_base =emac_gaht_base (dev);u32 gaht_temp[regs]; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;int i;DBG (dev,"hash_mc %d" NL ,netdev_mc_count (dev->ndev));memset (gaht_temp,0 ,sizeof (gaht_temp)); -netdev_for_each_mc_addr (dmi, dev->ndev) { +netdev_for_each_mc_addr (ha, dev->ndev) {int slot, reg, mask; -DBG2 (dev,"mc %pM" NL , dmi->dmi_addr); +DBG2 (dev,"mc %pM" NL , ha->addr); - slot =EMAC_XAHT_CRC_TO_SLOT (dev,ether_crc (ETH_ALEN , dmi->dmi_addr)); + slot =EMAC_XAHT_CRC_TO_SLOT (dev, +ether_crc (ETH_ALEN , ha->addr)); reg =EMAC_XAHT_SLOT_TO_REG (dev, slot); mask =EMAC_XAHT_SLOT_TO_MASK (dev, slot);
@@ -1176,7 +1177,7 @@ static int emac_open(struct net_device *ndev)netif_carrier_on (dev->ndev);/* Required for Pause packet support in EMAC */ -dev_mc_add (ndev, default_mcast_addr,sizeof (default_mcast_addr),1 ); +dev_mc_add_global (ndev, default_mcast_addr);emac_configure (dev);mal_poll_add (dev->mal, &dev->commac);
drivers/net/ibmlana.c +4 -4
@@ -385,7 +385,7 @@ static void InitBoard(struct net_device *dev)int camcnt;camentry_t cams[16 ];u32 cammask; -struct dev_mc_list *mcptr; +struct netdev_hw_addr *ha;u16 rcrval;/* reset the SONIC */
@@ -420,8 +420,8 @@ static void InitBoard(struct net_device *dev)/* start putting the multicast addresses into the CAM list. Stop if it is full. */ -netdev_for_each_mc_addr (mcptr, dev) { -putcam (cams, &camcnt, mcptr->dmi_addr); +netdev_for_each_mc_addr (ha, dev) { +putcam (cams, &camcnt, ha->addr);if (camcnt ==16 )break ; }
@@ -479,7 +479,7 @@ static void InitBoard(struct net_device *dev)/* if still multicast addresses left or ALLMULTI is set, set the multicast enable bit */ -if ((dev->flags &IFF_ALLMULTI ) || (mcptr !=NULL )) +if ((dev->flags &IFF_ALLMULTI ) ||netdev_mc_count (dev) > camcnt) rcrval |=RCREG_AMC ;/* promiscous mode ? */
drivers/net/ibmveth.c +3 -3
@@ -1072,7 +1072,7 @@ static void ibmveth_set_multicast_list(struct net_device *netdev)ibmveth_error_printk ("h_multicast_ctrl rc=%ld when entering promisc mode\n" , lpar_rc); } }else { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;/* clear the filter table & disable filtering */ lpar_rc = h_multicast_ctrl(adapter->vdev->unit_address, IbmVethMcastEnableRecv |
@@ -1083,10 +1083,10 @@ static void ibmveth_set_multicast_list(struct net_device *netdev)ibmveth_error_printk ("h_multicast_ctrl rc=%ld when attempting to clear filter table\n" , lpar_rc); }/* add the addresses to the filter table */ -netdev_for_each_mc_addr (mclist, netdev) { +netdev_for_each_mc_addr (ha, netdev) {// add the multicast address to the filter table unsigned long mcast_addr =0 ; -memcpy (((char *)&mcast_addr)+2 , mclist->dmi_addr,6 ); +memcpy (((char *)&mcast_addr)+2 , ha->addr,6 ); lpar_rc =h_multicast_ctrl (adapter->vdev->unit_address, IbmVethMcastAddFilter, mcast_addr);
drivers/net/igb/igb_main.c +3 -3
@@ -2864,7 +2864,7 @@ static int igb_write_mc_addr_list(struct net_device *netdev) {struct igb_adapter *adapter =netdev_priv (netdev);struct e1000_hw *hw = &adapter->hw; -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha;u8 *mta_list;int i;
@@ -2881,8 +2881,8 @@ static int igb_write_mc_addr_list(struct net_device *netdev)/* The shared function expects a packed array of only addresses. */ i =0 ; -netdev_for_each_mc_addr (mc_ptr, netdev) -memcpy (mta_list + (i++ *ETH_ALEN ), mc_ptr->dmi_addr,ETH_ALEN ); +netdev_for_each_mc_addr (ha, netdev) +memcpy (mta_list + (i++ *ETH_ALEN ), ha->addr,ETH_ALEN );igb_update_mc_addr_list (hw, mta_list, i);kfree (mta_list);
drivers/net/igbvf/netdev.c +3 -3
@@ -1399,7 +1399,7 @@ static void igbvf_set_multi(struct net_device *netdev) {struct igbvf_adapter *adapter =netdev_priv (netdev);struct e1000_hw *hw = &adapter->hw; -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha;u8 *mta_list =NULL ;int i;
@@ -1414,8 +1414,8 @@ static void igbvf_set_multi(struct net_device *netdev)/* prepare a packed array of only addresses. */ i =0 ; -netdev_for_each_mc_addr (mc_ptr, netdev) -memcpy (mta_list + (i++ *ETH_ALEN ), mc_ptr->dmi_addr,ETH_ALEN ); +netdev_for_each_mc_addr (ha, netdev) +memcpy (mta_list + (i++ *ETH_ALEN ), ha->addr,ETH_ALEN ); hw->mac.ops.update_mc_addr_list (hw, mta_list, i,0 ,0 );kfree (mta_list);
drivers/net/ioc3-eth.c +3 -3
@@ -1664,7 +1664,7 @@ static int ioc3_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)static void ioc3_set_multicast_list (struct net_device *dev) { -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;struct ioc3_private *ip =netdev_priv (dev);struct ioc3 *ioc3 = ip->regs;u64 ehar =0 ;
@@ -1688,8 +1688,8 @@ static void ioc3_set_multicast_list(struct net_device *dev) ip->ehar_h =0xffffffff ; ip->ehar_l =0xffffffff ; }else { -netdev_for_each_mc_addr (dmi, dev) { -char *addr = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { +char *addr = ha->addr;if (!(*addr &1 ))continue ;
drivers/net/ipg.c +3 -3
@@ -569,7 +569,7 @@ static int ipg_config_autoneg(struct net_device *dev)static void ipg_nic_set_multicast_list (struct net_device *dev) {void __iomem *ioaddr =ipg_ioaddr (dev); -struct dev_mc_list *mc_list_ptr; +struct netdev_hw_addr *ha;unsigned int hashindex;u32 hashtable[2 ];u8 receivemode;
@@ -608,9 +608,9 @@ static void ipg_nic_set_multicast_list(struct net_device *dev) hashtable[1 ] =0x00000000 ;/* Cycle through all multicast addresses to filter. */ -netdev_for_each_mc_addr (mc_list_ptr, dev) { +netdev_for_each_mc_addr (ha, dev) {/* Calculate CRC result for each multicast address. */ - hashindex =crc32_le (0xffffffff , mc_list_ptr->dmi_addr, + hashindex =crc32_le (0xffffffff , ha->addr,ETH_ALEN );/* Use only the least significant 6 bits. */
drivers/net/iseries_veth.c +3 -3
@@ -961,15 +961,15 @@ static void veth_set_multicast_list(struct net_device *dev) (netdev_mc_count(dev) > VETH_MAX_MCAST)) { port->promiscuous = 1; } else { -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha; port->promiscuous =0 ;/* Update table */ port->num_mcast =0 ; -netdev_for_each_mc_addr (dmi, dev) { -u8 *addr = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { +u8 *addr = ha->addr;u64 xaddr =0 ;if (addr[0 ] &0x01 ) {/* multicast address? */
drivers/net/ixgb/ixgb_main.c +3 -3
@@ -1058,7 +1058,7 @@ ixgb_set_multi(struct net_device *netdev) {struct ixgb_adapter *adapter =netdev_priv (netdev);struct ixgb_hw *hw = &adapter->hw; -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha;u32 rctl;int i;
@@ -1089,9 +1089,9 @@ ixgb_set_multi(struct net_device *netdev)IXGB_WRITE_REG (hw,RCTL , rctl); i =0 ; -netdev_for_each_mc_addr (mc_ptr, netdev) +netdev_for_each_mc_addr (ha, netdev)memcpy (&mta[i++ *IXGB_ETH_LENGTH_OF_ADDRESS ], - mc_ptr->dmi_addr,IXGB_ETH_LENGTH_OF_ADDRESS ); + ha->addr,IXGB_ETH_LENGTH_OF_ADDRESS );ixgb_mc_addr_list_update (hw, mta,netdev_mc_count (netdev),0 ); }
drivers/net/ixgbe/ixgbe_common.c +3 -3
@@ -1494,7 +1494,7 @@ static void ixgbe_set_mta(struct ixgbe_hw *hw, u8 *mc_addr)s32 ixgbe_update_mc_addr_list_generic (struct ixgbe_hw *hw,struct net_device *netdev) { -struct dev_addr_list *dmi; +struct netdev_hw_addr *ha;u32 i;/*
@@ -1510,9 +1510,9 @@ s32 ixgbe_update_mc_addr_list_generic(struct ixgbe_hw *hw,IXGBE_WRITE_REG (hw,IXGBE_MTA (i),0 );/* Add the new addresses */ -netdev_for_each_mc_addr (dmi, netdev) { +netdev_for_each_mc_addr (ha, netdev) {hw_dbg (hw," Adding the multicast addresses:\n" ); -ixgbe_set_mta (hw, dmi->dmi_addr); +ixgbe_set_mta (hw, ha->addr); }/* Enable mta */
drivers/net/ixgbevf/vf.c +3 -3
@@ -259,7 +259,7 @@ static s32 ixgbevf_set_rar_vf(struct ixgbe_hw *hw, u32 index, u8 *addr,static s32 ixgbevf_update_mc_addr_list_vf (struct ixgbe_hw *hw,struct net_device *netdev) { -struct dev_addr_list *dmi; +struct netdev_hw_addr *ha;struct ixgbe_mbx_info *mbx = &hw->mbx;u32 msgbuf[IXGBE_VFMAILBOX_SIZE ];u16 *vector_list = (u16 *)&msgbuf[1 ];
@@ -281,10 +281,10 @@ static s32 ixgbevf_update_mc_addr_list_vf(struct ixgbe_hw *hw, msgbuf[0 ] |= cnt <<IXGBE_VT_MSGINFO_SHIFT ; i =0 ; -netdev_for_each_mc_addr (dmi, netdev) { +netdev_for_each_mc_addr (ha, netdev) {if (i == cnt)break ; - vector_list[i++] =ixgbevf_mta_vector (hw, dmi->dmi_addr); + vector_list[i++] =ixgbevf_mta_vector (hw, ha->addr); } mbx->ops.write_posted (hw, msgbuf,IXGBE_VFMAILBOX_SIZE );
drivers/net/jme.c +3 -3
@@ -2009,12 +2009,12 @@ jme_set_multi(struct net_device *netdev) }else if (netdev->flags &IFF_ALLMULTI ) { jme->reg_rxmcs |=RXMCS_ALLMULFRAME ; }else if (netdev->flags &IFF_MULTICAST ) { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;int bit_nr; jme->reg_rxmcs |=RXMCS_MULFRAME |RXMCS_MULFILTERED ; -netdev_for_each_mc_addr (mclist, netdev) { - bit_nr =ether_crc (ETH_ALEN , mclist->dmi_addr) &0x3F ; +netdev_for_each_mc_addr (ha, netdev) { + bit_nr =ether_crc (ETH_ALEN , ha->addr) &0x3F ; mc_hash[bit_nr >>5 ] |=1 << (bit_nr &0x1F ); }
drivers/net/korina.c +3 -3
@@ -482,7 +482,7 @@ static void korina_multicast_list(struct net_device *dev) {struct korina_private *lp =netdev_priv (dev);unsigned long flags; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;u32 recognise =ETH_ARC_AB ;/* always accept broadcasts */ int i;
@@ -502,8 +502,8 @@ static void korina_multicast_list(struct net_device *dev)for (i =0 ; i <4 ; i++) hash_table[i] =0 ; -netdev_for_each_mc_addr (dmi, dev) { -char *addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { +char *addrs = ha->addr;if (!(*addrs &1 ))continue ;
drivers/net/ks8851.c +3 -3
@@ -956,13 +956,13 @@ static void ks8851_set_rx_mode(struct net_device *dev) rxctrl.rxcr1 = (RXCR1_RXME |RXCR1_RXAE |RXCR1_RXPAFMA |RXCR1_RXMAFMA ); }else if (dev->flags &IFF_MULTICAST && !netdev_mc_empty (dev)) { -struct dev_mc_list *mcptr; +struct netdev_hw_addr *ha;u32 crc;/* accept some multicast */ -netdev_for_each_mc_addr (mcptr, dev) { - crc =ether_crc (ETH_ALEN , mcptr->dmi_addr); +netdev_for_each_mc_addr (ha, dev) { + crc =ether_crc (ETH_ALEN , ha->addr); crc >>= (32 -6 );/* get top six bits */ rxctrl.mchash[crc >>4 ] |= (1 << (crc &0xf ));
drivers/net/ks8851_mll.c +5 -7
@@ -362,7 +362,6 @@ static u8 KS_DEFAULT_MAC_ADDRESS[] = { 0x00, 0x10, 0xA1, 0x86, 0x95, 0x11 };#define MAX_MCAST_LST 32#define HW_MCAST_SIZE 8 -#define MAC_ADDR_LEN 6/** * union ks_tx_hdr - tx header data
@@ -450,7 +449,7 @@ struct ks_net {u16 promiscuous;u16 all_mcast;u16 mcast_lst_size; -u8 mcast_lst[MAX_MCAST_LST ][MAC_ADDR_LEN ]; +u8 mcast_lst[MAX_MCAST_LST ][ETH_ALEN ];u8 mcast_bits[HW_MCAST_SIZE ];u8 mac_addr[6 ];u8 fid;
@@ -1170,7 +1169,7 @@ static void ks_set_mcast(struct ks_net *ks, u16 mcast)static void ks_set_rx_mode (struct net_device *netdev) {struct ks_net *ks =netdev_priv (netdev); -struct dev_mc_list *ptr; +struct netdev_hw_addr *ha;/* Turn on/off promiscuous mode. */ if ((netdev->flags &IFF_PROMISC ) ==IFF_PROMISC )
@@ -1187,13 +1186,12 @@ static void ks_set_rx_mode(struct net_device *netdev)if (netdev_mc_count (netdev) <=MAX_MCAST_LST ) {int i =0 ; -netdev_for_each_mc_addr (ptr, netdev) { -if (!(*ptr->dmi_addr &1 )) +netdev_for_each_mc_addr (ha, netdev) { +if (!(*ha->addr &1 ))continue ;if (i >=MAX_MCAST_LST )break ; -memcpy (ks->mcast_lst[i++], ptr->dmi_addr, -MAC_ADDR_LEN ); +memcpy (ks->mcast_lst[i++], ha->addr,ETH_ALEN ); } ks->mcast_lst_size = (u8 )i;ks_set_grpaddr (ks);
drivers/net/ksz884x.c +5 -6
@@ -5763,7 +5763,7 @@ static void netdev_set_rx_mode(struct net_device *dev)struct dev_priv *priv =netdev_priv (dev);struct dev_info *hw_priv = priv->adapter;struct ksz_hw *hw = &hw_priv->hw; -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha;int multicast = (dev->flags &IFF_ALLMULTI );dev_set_promiscuous (dev, priv, hw, (dev->flags &IFF_PROMISC ));
@@ -5780,7 +5780,7 @@ static void netdev_set_rx_mode(struct net_device *dev)int i =0 ;/* List too big to support so turn on all multicast mode. */ -if (dev->mc_count >MAX_MULTICAST_LIST ) { +if (netdev_mc_count (dev) >MAX_MULTICAST_LIST ) {if (MAX_MULTICAST_LIST != hw->multi_list_size) { hw->multi_list_size =MAX_MULTICAST_LIST ; ++hw->all_multi;
@@ -5789,13 +5789,12 @@ static void netdev_set_rx_mode(struct net_device *dev)return ; } -netdev_for_each_mc_addr (mc_ptr, dev) { -if (!(*mc_ptr->dmi_addr &1 )) +netdev_for_each_mc_addr (ha, dev) { +if (!(*ha->addr &1 ))continue ;if (i >=MAX_MULTICAST_LIST )break ; -memcpy (hw->multi_list[i++], mc_ptr->dmi_addr, -MAC_ADDR_LEN ); +memcpy (hw->multi_list[i++], ha->addr,MAC_ADDR_LEN ); } hw->multi_list_size = (u8 ) i;hw_set_grp_addr (hw);
drivers/net/lib82596.c +3 -3
@@ -1388,7 +1388,7 @@ static void set_multicast_list(struct net_device *dev) }if (!netdev_mc_empty (dev)) { -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;unsigned char *cp;struct mc_cmd *cmd;
@@ -1396,10 +1396,10 @@ static void set_multicast_list(struct net_device *dev) cmd->cmd.command =SWAP16 (CmdMulticastList); cmd->mc_cnt =SWAP16 (netdev_mc_count (dev) *6 ); cp = cmd->mc_addrs; -netdev_for_each_mc_addr (dmi, dev) { +netdev_for_each_mc_addr (ha, dev) {if (!cnt--)break ; -memcpy (cp, dmi->dmi_addr,6 ); +memcpy (cp, ha->addr,6 );if (i596_debug >1 ) DEB(DEB_MULTI, printk(KERN_DEBUG
drivers/net/lib8390.c +3 -3
@@ -905,10 +905,10 @@ static struct net_device_stats *__ei_get_stats(struct net_device *dev)static inline void make_mc_bits (u8 *bits,struct net_device *dev) { -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha; -netdev_for_each_mc_addr (dmi, dev) { -u32 crc =ether_crc (ETH_ALEN , dmi->dmi_addr); +netdev_for_each_mc_addr (ha, dev) { +u32 crc =ether_crc (ETH_ALEN , ha->addr);/* * The 8390 uses the 6 most significant bits of the * CRC to index the multicast table.
drivers/net/ll_temac_main.c +8 -8
@@ -250,20 +250,20 @@ static void temac_set_multicast_list(struct net_device *ndev)temac_indirect_out32 (lp,XTE_AFM_OFFSET ,XTE_AFM_EPPRM_MASK );dev_info (&ndev->dev,"Promiscuous mode enabled.\n" ); }else if (!netdev_mc_empty (ndev)) { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha; i =0 ; -netdev_for_each_mc_addr (mclist, ndev) { +netdev_for_each_mc_addr (ha, ndev) {if (i >=MULTICAST_CAM_TABLE_NUM )break ; - multi_addr_msw = ((mclist->dmi_addr[3 ] <<24 ) | - (mclist->dmi_addr[2 ] <<16 ) | - (mclist->dmi_addr[1 ] <<8 ) | - (mclist->dmi_addr[0 ])); + multi_addr_msw = ((ha->addr[3 ] <<24 ) | + (ha->addr[2 ] <<16 ) | + (ha->addr[1 ] <<8 ) | + (ha->addr[0 ]));temac_indirect_out32 (lp,XTE_MAW0_OFFSET , multi_addr_msw); - multi_addr_lsw = ((mclist->dmi_addr[5 ] <<8 ) | - (mclist->dmi_addr[4 ]) | (i <<16 )); + multi_addr_lsw = ((ha->addr[5 ] <<8 ) | + (ha->addr[4 ]) | (i <<16 ));temac_indirect_out32 (lp,XTE_MAW1_OFFSET , multi_addr_lsw); i++;
drivers/net/lp486e.c +3 -3
@@ -1256,7 +1256,7 @@ static void set_multicast_list(struct net_device *dev) { dev->name, netdev_mc_count(dev));if (!netdev_mc_empty (dev)) { -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;char *cp; cmd =kmalloc (sizeof (struct i596_cmd ) +2 +netdev_mc_count (dev) *6 ,GFP_ATOMIC );
@@ -1267,8 +1267,8 @@ static void set_multicast_list(struct net_device *dev) { cmd->command = CmdMulticastList; *((unsigned short *) (cmd +1 )) =netdev_mc_count (dev) *6 ; cp = ((char *)(cmd +1 ))+2 ; -netdev_for_each_mc_addr (dmi, dev) { -memcpy (cp, dmi->dmi_addr,6 ); +netdev_for_each_mc_addr (ha, dev) { +memcpy (cp, ha->addr,6 ); cp +=6 ; }if (i596_debug &LOG_SRCDST )
drivers/net/macb.c +3 -3
@@ -882,15 +882,15 @@ static int hash_get_index(__u8 *addr)*/ static void macb_sethashtable (struct net_device *dev) { -struct dev_mc_list *curr; +struct netdev_hw_addr *ha;unsigned long mc_filter[2 ];unsigned int bitnr;struct macb *bp =netdev_priv (dev); mc_filter[0 ] = mc_filter[1 ] =0 ; -netdev_for_each_mc_addr (curr, dev) { - bitnr =hash_get_index (curr->dmi_addr); +netdev_for_each_mc_addr (ha, dev) { + bitnr =hash_get_index (ha->addr); mc_filter[bitnr >>5 ] |=1 << (bitnr &31 ); }
drivers/net/mace.c +3 -3
@@ -598,7 +598,7 @@ static void mace_set_multicast(struct net_device *dev) mp->maccc |=PROM ; }else {unsigned char multicast_filter[8 ]; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;if (dev->flags &IFF_ALLMULTI ) {for (i =0 ; i <8 ; i++)
@@ -606,8 +606,8 @@ static void mace_set_multicast(struct net_device *dev) }else {for (i =0 ; i <8 ; i++) multicast_filter[i] =0 ; -netdev_for_each_mc_addr (dmi, dev) { - crc =ether_crc_le (6 , dmi->dmi_addr); +netdev_for_each_mc_addr (ha, dev) { + crc =ether_crc_le (6 , ha->addr); i = crc >>26 ;/* bit number in multicast_filter */ multicast_filter[i >>3 ] |=1 << (i &7 ); }
drivers/net/macmace.c +3 -3
@@ -508,7 +508,7 @@ static void mace_set_multicast(struct net_device *dev) mb->maccc |=PROM ; }else {unsigned char multicast_filter[8 ]; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;if (dev->flags &IFF_ALLMULTI ) {for (i =0 ; i <8 ; i++) {
@@ -517,8 +517,8 @@ static void mace_set_multicast(struct net_device *dev) }else {for (i =0 ; i <8 ; i++) multicast_filter[i] =0 ; -netdev_for_each_mc_addr (dmi, dev) { - crc =ether_crc_le (6 , dmi->dmi_addr); +netdev_for_each_mc_addr (ha, dev) { + crc =ether_crc_le (6 , ha->addr);/* bit number in multicast_filter */ i = crc >>26 ; multicast_filter[i >>3 ] |=1 << (i &7 );
drivers/net/mlx4/en_netdev.c +3 -3
@@ -168,7 +168,7 @@ static void mlx4_en_clear_list(struct net_device *dev)static void mlx4_en_cache_mclist (struct net_device *dev) {struct mlx4_en_priv *priv =netdev_priv (dev); -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;char *mc_addrs;int mc_addrs_cnt =netdev_mc_count (dev);int i;
@@ -179,8 +179,8 @@ static void mlx4_en_cache_mclist(struct net_device *dev)return ; } i =0 ; -netdev_for_each_mc_addr (mclist, dev) -memcpy (mc_addrs + i++ *ETH_ALEN , mclist->dmi_addr,ETH_ALEN ); +netdev_for_each_mc_addr (ha, dev) +memcpy (mc_addrs + i++ *ETH_ALEN , ha->addr,ETH_ALEN ); priv->mc_addrs = mc_addrs; priv->mc_addrs_cnt = mc_addrs_cnt; }
drivers/net/mv643xx_eth.c +3 -3
@@ -1769,7 +1769,7 @@ static void mv643xx_eth_program_multicast_filter(struct net_device *dev)struct mv643xx_eth_private *mp =netdev_priv (dev);u32 *mc_spec;u32 *mc_other; -struct dev_addr_list *addr; +struct netdev_hw_addr *ha;int i;if (dev->flags & (IFF_PROMISC |IFF_ALLMULTI )) {
@@ -1794,8 +1794,8 @@ oom:memset (mc_spec,0 ,0x100 );memset (mc_other,0 ,0x100 ); -netdev_for_each_mc_addr (addr, dev) { -u8 *a = addr->da_addr; +netdev_for_each_mc_addr (ha, dev) { +u8 *a = ha->addr;u32 *table;int entry;
drivers/net/myri10ge/myri10ge.c +4 -4
@@ -3001,7 +3001,7 @@ static void myri10ge_set_multicast_list(struct net_device *dev) {struct myri10ge_priv *mgp =netdev_priv (dev);struct myri10ge_cmd cmd; -struct dev_mc_list *mc_list; +struct netdev_hw_addr *ha;__be32 data[2 ] = {0 ,0 };int err;
@@ -3038,8 +3038,8 @@ static void myri10ge_set_multicast_list(struct net_device *dev) }/* Walk the multicast list, and add each address */ -netdev_for_each_mc_addr (mc_list, dev) { -memcpy (data, &mc_list->dmi_addr,6 ); +netdev_for_each_mc_addr (ha, dev) { +memcpy (data, &ha->addr,6 ); cmd.data0 =ntohl (data[0 ]); cmd.data1 =ntohl (data[1 ]); err = myri10ge_send_cmd(mgp, MXGEFW_JOIN_MULTICAST_GROUP,
@@ -3047,7 +3047,7 @@ static void myri10ge_set_multicast_list(struct net_device *dev)if (err !=0 ) {netdev_err (dev,"Failed MXGEFW_JOIN_MULTICAST_GROUP, error status:%d %pM\n" , - err, mc_list->dmi_addr); + err, ha->addr); goto abort; } }
drivers/net/natsemi.c +3 -3
@@ -2493,12 +2493,12 @@ static void __set_rx_mode(struct net_device *dev) rx_mode = RxFilterEnable | AcceptBroadcast | AcceptAllMulticast | AcceptMyPhys; }else { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;int i;memset (mc_filter,0 ,sizeof (mc_filter)); -netdev_for_each_mc_addr (mclist, dev) { -int b = (ether_crc (ETH_ALEN , mclist->dmi_addr) >>23 ) &0x1ff ; +netdev_for_each_mc_addr (ha, dev) { +int b = (ether_crc (ETH_ALEN , ha->addr) >>23 ) &0x1ff ; mc_filter[b/8 ] |= (1 << (b &0x07 )); } rx_mode = RxFilterEnable | AcceptBroadcast
drivers/net/netxen/netxen_nic_hw.c +6 -6
@@ -537,7 +537,7 @@ netxen_nic_set_mcast_addr(struct netxen_adapter *adapter,void netxen_p2_nic_set_multi (struct net_device *netdev) {struct netxen_adapter *adapter =netdev_priv (netdev); -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha;u8 null_addr[6 ];int i;
@@ -571,8 +571,8 @@ void netxen_p2_nic_set_multi(struct net_device *netdev)netxen_nic_enable_mcast_filter (adapter); i =0 ; -netdev_for_each_mc_addr (mc_ptr, netdev) -netxen_nic_set_mcast_addr (adapter, i++, mc_ptr->dmi_addr); +netdev_for_each_mc_addr (ha, netdev) +netxen_nic_set_mcast_addr (adapter, i++, ha->addr);/* Clear out remaining addresses */ while (i < adapter->max_mc_count)
@@ -680,7 +680,7 @@ static int nx_p3_nic_add_mac(struct netxen_adapter *adapter,void netxen_p3_nic_set_multi (struct net_device *netdev) {struct netxen_adapter *adapter =netdev_priv (netdev); -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha;u8 bcast_addr[ETH_ALEN ] = {0xff ,0xff ,0xff ,0xff ,0xff ,0xff };u32 mode =VPORT_MISS_MODE_DROP ;LIST_HEAD (del_list);
@@ -707,8 +707,8 @@ void netxen_p3_nic_set_multi(struct net_device *netdev) }if (!netdev_mc_empty (netdev)) { -netdev_for_each_mc_addr (mc_ptr, netdev) -nx_p3_nic_add_mac (adapter, mc_ptr->dmi_addr, &del_list); +netdev_for_each_mc_addr (ha, netdev) +nx_p3_nic_add_mac (adapter, ha->addr, &del_list); } send_fw_cmd:
drivers/net/ni52.c +3 -3
@@ -596,7 +596,7 @@ static int init586(struct net_device *dev)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; +struct netdev_hw_addr *ha;int num_addrs =netdev_mc_count (dev); ptr = p->scb +1 ;
@@ -725,8 +725,8 @@ static int init586(struct net_device *dev)writew (num_addrs *6 , &mc_cmd->mc_cnt); i =0 ; -netdev_for_each_mc_addr (dmi, dev) -memcpy_toio (mc_cmd->mc_list[i++], dmi->dmi_addr,6 ); +netdev_for_each_mc_addr (ha, dev) +memcpy_toio (mc_cmd->mc_list[i++], ha->addr,6 );writew (make16 (mc_cmd), &p->scb->cbl_offset);writeb (CUC_START , &p->scb->cmd_cuc);
drivers/net/niu.c +2 -3
@@ -6313,7 +6313,6 @@ static void niu_set_rx_mode(struct net_device *dev) {struct niu *np =netdev_priv (dev);int i, alt_cnt, err; -struct dev_addr_list *addr;struct netdev_hw_addr *ha;unsigned long flags;u16 hash[16 ] = {0 , };
@@ -6365,8 +6364,8 @@ static void niu_set_rx_mode(struct net_device *dev)for (i =0 ; i <16 ; i++) hash[i] =0xffff ; }else if (!netdev_mc_empty (dev)) { -netdev_for_each_mc_addr (addr, dev) { -u32 crc =ether_crc_le (ETH_ALEN , addr->da_addr); +netdev_for_each_mc_addr (ha, dev) { +u32 crc =ether_crc_le (ETH_ALEN , ha->addr); crc >>=24 ; hash[crc >>4 ] |= (1 << (15 - (crc &0xf )));
drivers/net/octeon/octeon_mgmt.c +3 -3
@@ -474,7 +474,7 @@ static void octeon_mgmt_set_rx_filtering(struct net_device *netdev)unsigned int cam_mode =1 ;/* 1 - Accept on CAM match */ unsigned int multicast_mode =1 ;/* 1 - Reject all multicast. */ struct octeon_mgmt_cam_state cam_state; -struct dev_addr_list *list; +struct netdev_hw_addr *ha;struct list_head *pos;int available_cam_entries;
@@ -510,8 +510,8 @@ static void octeon_mgmt_set_rx_filtering(struct net_device *netdev) } }if (multicast_mode ==0 ) { -netdev_for_each_mc_addr (list, netdev) -octeon_mgmt_cam_state_add (&cam_state, list->da_addr); +netdev_for_each_mc_addr (ha, netdev) +octeon_mgmt_cam_state_add (&cam_state, ha->addr); }
drivers/net/pci-skeleton.c +3 -3
@@ -1813,12 +1813,12 @@ static void netdrv_set_rx_mode(struct net_device *dev) rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys; mc_filter[1 ] = mc_filter[0 ] =0xffffffff ; }else { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha; rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys; mc_filter[1 ] = mc_filter[0 ] =0 ; -netdev_for_each_mc_addr (mclist, dev) { -int bit_nr =ether_crc (ETH_ALEN , mclist->dmi_addr) >>26 ; +netdev_for_each_mc_addr (ha, dev) { +int bit_nr =ether_crc (ETH_ALEN , ha->addr) >>26 ; mc_filter[bit_nr >>5 ] |=1 << (bit_nr &31 ); }
drivers/net/pcmcia/axnet_cs.c +3 -3
@@ -1623,11 +1623,11 @@ static struct net_device_stats *get_stats(struct net_device *dev)static inline void make_mc_bits (u8 *bits,struct net_device *dev) { -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;u32 crc; -netdev_for_each_mc_addr (dmi, dev) { - crc =ether_crc (ETH_ALEN , dmi->dmi_addr); +netdev_for_each_mc_addr (ha, dev) { + crc =ether_crc (ETH_ALEN , ha->addr);/* * The 8390 uses the 6 most significant bits of the * CRC to index the multicast table.
drivers/net/pcmcia/fmvj18x_cs.c +3 -3
@@ -1196,11 +1196,11 @@ static void set_rx_mode(struct net_device *dev)memset (mc_filter,0x00 ,sizeof (mc_filter));outb (1 , ioaddr +RX_MODE );/* Ignore almost all multicasts. */ }else { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;memset (mc_filter,0 ,sizeof (mc_filter)); -netdev_for_each_mc_addr (mclist, dev) { -unsigned int bit =ether_crc_le (ETH_ALEN , mclist->dmi_addr) >>26 ; +netdev_for_each_mc_addr (ha, dev) { +unsigned int bit =ether_crc_le (ETH_ALEN , ha->addr) >>26 ; mc_filter[bit >>3 ] |= (1 << (bit &7 )); }outb (2 , ioaddr +RX_MODE );/* Use normal mode. */
drivers/net/pcmcia/nmclan_cs.c +3 -3
@@ -1475,7 +1475,7 @@ static void set_multicast_list(struct net_device *dev) {mace_private *lp =netdev_priv (dev);int adr[ETHER_ADDR_LEN ] = {0 };/* Ethernet address */ -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;#ifdef PCMCIA_DEBUG {
@@ -1495,8 +1495,8 @@ static void set_multicast_list(struct net_device *dev)if (num_addrs >0 ) {/* Calculate multicast logical address filter */ memset (lp->multicast_ladrf,0 ,MACE_LADRF_LEN ); -netdev_for_each_mc_addr (dmi, dev) { -memcpy (adr, dmi->dmi_addr,ETHER_ADDR_LEN ); +netdev_for_each_mc_addr (ha, dev) { +memcpy (adr, ha->addr,ETHER_ADDR_LEN );BuildLAF (lp->multicast_ladrf, adr); } }
drivers/net/pcmcia/smc91c92_cs.c +4 -4
@@ -1616,12 +1616,12 @@ static void set_rx_mode(struct net_device *dev) rx_cfg_setting = RxStripCRC | RxEnable | RxAllMulti; else {if (!netdev_mc_empty (dev)) { -struct dev_mc_list *mc_addr; +struct netdev_hw_addr *ha; -netdev_for_each_mc_addr (mc_addr, dev) { -u_int position =ether_crc (6 , mc_addr->dmi_addr); +netdev_for_each_mc_addr (ha, dev) { +u_int position =ether_crc (6 , ha->addr);#ifndef final_version/* Verify multicast address. */ -if ((mc_addr->dmi_addr[0 ] &1 ) ==0 ) +if ((ha->addr[0 ] &1 ) ==0 )continue ;#endif multicast_table[position >>29 ] |=1 << ((position >>26 ) &7 );
drivers/net/pcmcia/xirc2ps_cs.c +3 -3
@@ -1398,7 +1398,7 @@ static void set_addresses(struct net_device *dev) {unsigned int ioaddr = dev->base_addr;local_info_t *lp =netdev_priv (dev); -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;struct set_address_info sa_info;int i;
@@ -1413,10 +1413,10 @@ static void set_addresses(struct net_device *dev)set_address (&sa_info, dev->dev_addr); i =0 ; -netdev_for_each_mc_addr (dmi, dev) { +netdev_for_each_mc_addr (ha, dev) {if (i++ ==9 )break ; -set_address (&sa_info, dmi->dmi_addr); +set_address (&sa_info, ha->addr); }while (i++ <9 )set_address (&sa_info, dev->dev_addr);
drivers/net/pcnet32.c +3 -3
@@ -2590,7 +2590,7 @@ static void pcnet32_load_multicast(struct net_device *dev)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; +struct netdev_hw_addr *ha;unsigned long ioaddr = dev->base_addr;char *addrs;int i;
@@ -2611,8 +2611,8 @@ static void pcnet32_load_multicast(struct net_device *dev) ib->filter[1 ] =0 ;/* Add addresses */ -netdev_for_each_mc_addr (dmi, dev) { - addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + addrs = ha->addr;/* multicast address? */ if (!(*addrs &1 ))
drivers/net/ps3_gelic_net.c +3 -3
@@ -546,7 +546,7 @@ out:void gelic_net_set_multi (struct net_device *netdev) {struct gelic_card *card =netdev_card (netdev); -struct dev_mc_list *mc; +struct netdev_hw_addr *ha;unsigned int i;uint8_t *p;u64 addr;
@@ -580,9 +580,9 @@ void gelic_net_set_multi(struct net_device *netdev) }/* set multicast addresses */ -netdev_for_each_mc_addr (mc, netdev) { +netdev_for_each_mc_addr (ha, netdev) { addr =0 ; - p = mc->dmi_addr; + p = ha->addr;for (i =0 ; i <ETH_ALEN ; i++) { addr <<=8 ; addr |= *p++;
drivers/net/qlcnic/qlcnic_hw.c +3 -3
@@ -426,7 +426,7 @@ static int qlcnic_nic_add_mac(struct qlcnic_adapter *adapter, u8 *addr)void qlcnic_set_multi (struct net_device *netdev) {struct qlcnic_adapter *adapter =netdev_priv (netdev); -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha;u8 bcast_addr[ETH_ALEN ] = {0xff ,0xff ,0xff ,0xff ,0xff ,0xff };u32 mode =VPORT_MISS_MODE_DROP ;
@@ -445,8 +445,8 @@ void qlcnic_set_multi(struct net_device *netdev) }if (!netdev_mc_empty (netdev)) { -netdev_for_each_mc_addr (mc_ptr, netdev) { -qlcnic_nic_add_mac (adapter, mc_ptr->dmi_addr); +netdev_for_each_mc_addr (ha, netdev) { +qlcnic_nic_add_mac (adapter, ha->addr); } }
drivers/net/qlge/qlge_main.c +3 -3
@@ -4207,7 +4207,7 @@ static struct net_device_stats *qlge_get_stats(struct net_devicestatic void qlge_set_multicast_list (struct net_device *ndev) {struct ql_adapter *qdev = (struct ql_adapter *)netdev_priv (ndev); -struct dev_mc_list *mc_ptr; +struct netdev_hw_addr *ha;int i, status; status =ql_sem_spinlock (qdev,SEM_RT_IDX_MASK );
@@ -4271,8 +4271,8 @@ static void qlge_set_multicast_list(struct net_device *ndev)if (status) goto exit; i =0 ; -netdev_for_each_mc_addr (mc_ptr, ndev) { -if (ql_set_mac_addr_reg (qdev, (u8 *) mc_ptr->dmi_addr, +netdev_for_each_mc_addr (ha, ndev) { +if (ql_set_mac_addr_reg (qdev, (u8 *) ha->addr,MAC_ADDR_TYPE_MULTI_MAC , i)) {netif_err (qdev, hw, qdev->ndev,"Failed to loadmulticast address.\n" );
drivers/net/r6040.c +5 -5
@@ -938,7 +938,7 @@ static void r6040_multicast_list(struct net_device *dev)u16 *adrp;u16 reg;unsigned long flags; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;int i;/* MAC Address */
@@ -973,8 +973,8 @@ static void r6040_multicast_list(struct net_device *dev)for (i =0 ; i <4 ; i++) hash_table[i] =0 ; -netdev_for_each_mc_addr (dmi, dev) { -char *addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { +char *addrs = ha->addr;if (!(*addrs &1 ))continue ;
@@ -994,9 +994,9 @@ static void r6040_multicast_list(struct net_device *dev) }/* Multicast Address 1~4 case */ i =0 ; -netdev_for_each_mc_addr (dmi, dev) { +netdev_for_each_mc_addr (ha, dev) {if (i <MCAST_MAX ) { - adrp = (u16 *) dmi->dmi_addr; + adrp = (u16 *) ha->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);
drivers/net/r8169.c +3 -3
@@ -4785,12 +4785,12 @@ static void rtl_set_rx_mode(struct net_device *dev) rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys; mc_filter[1 ] = mc_filter[0 ] =0xffffffff ; }else { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha; rx_mode = AcceptBroadcast | AcceptMyPhys; mc_filter[1 ] = mc_filter[0 ] =0 ; -netdev_for_each_mc_addr (mclist, dev) { -int bit_nr =ether_crc (ETH_ALEN , mclist->dmi_addr) >>26 ; +netdev_for_each_mc_addr (ha, dev) { +int bit_nr =ether_crc (ETH_ALEN , ha->addr) >>26 ; mc_filter[bit_nr >>5 ] |=1 << (bit_nr &31 ); rx_mode |= AcceptMulticast; }
drivers/net/s2io.c +4 -4
@@ -4964,7 +4964,7 @@ static struct net_device_stats *s2io_get_stats(struct net_device *dev)static void s2io_set_multicast (struct net_device *dev) {int i, j, prev_cnt; -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;struct s2io_nic *sp =netdev_priv (dev);struct XENA_dev_config __iomem *bar0 = sp->bar0; u64 val64 = 0, multi_mac = 0x010203040506ULL, mask =
@@ -5093,12 +5093,12 @@ static void s2io_set_multicast(struct net_device *dev)/* Create the new Rx filter list and update the same in H/W. */ i =0 ; -netdev_for_each_mc_addr (mclist, dev) { -memcpy (sp->usr_addrs[i].addr, mclist->dmi_addr, +netdev_for_each_mc_addr (ha, dev) { +memcpy (sp->usr_addrs[i].addr, ha->addr,ETH_ALEN ); mac_addr =0 ;for (j =0 ; j <ETH_ALEN ; j++) { - mac_addr |= mclist->dmi_addr[j]; + mac_addr |= ha->addr[j]; mac_addr <<=8 ; } mac_addr >>=8 ;
drivers/net/sb1250-mac.c +3 -3
@@ -2112,7 +2112,7 @@ static void sbmac_setmulti(struct sbmac_softc *sc)uint64_t reg;void __iomem *port;int idx; -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;struct net_device *dev = sc->sbm_dev;/*
@@ -2161,10 +2161,10 @@ static void sbmac_setmulti(struct sbmac_softc *sc)* XXX if the table overflows */ idx =1 ;/* skip station address */ -netdev_for_each_mc_addr (mclist, dev) { +netdev_for_each_mc_addr (ha, dev) {if (idx ==MAC_ADDR_COUNT )break ; - reg =sbmac_addr2reg (mclist->dmi_addr); + reg =sbmac_addr2reg (ha->addr); port = sc->sbm_base +R_MAC_ADDR_BASE +(idx *sizeof (uint64_t ));__raw_writeq (reg, port); idx++;
drivers/net/sc92031.c +3 -3
@@ -433,13 +433,13 @@ static void _sc92031_set_mar(struct net_device *dev) (dev->flags & IFF_ALLMULTI)) mar0 = mar1 =0xffffffff ; else if (dev->flags & IFF_MULTICAST) { -struct dev_mc_list *mc_list; +struct netdev_hw_addr *ha; -netdev_for_each_mc_addr (mc_list, dev) { +netdev_for_each_mc_addr (ha, dev) {u32 crc;unsigned bit =0 ; - crc = ~ether_crc (ETH_ALEN , mc_list->dmi_addr); + crc = ~ether_crc (ETH_ALEN , ha->addr); crc >>=24 ;if (crc &0x01 ) bit |=0x02 ;
drivers/net/sfc/efx.c +3 -3
@@ -1602,7 +1602,7 @@ static int efx_set_mac_address(struct net_device *net_dev, void *data)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; +struct netdev_hw_addr *ha;union efx_multicast_hash *mc_hash = &efx->multicast_hash;u32 crc;int bit;
@@ -1614,8 +1614,8 @@ static void efx_set_multicast_list(struct net_device *net_dev)memset (mc_hash,0xff ,sizeof (*mc_hash)); }else {memset (mc_hash,0x00 ,sizeof (*mc_hash)); -netdev_for_each_mc_addr (mc_list, net_dev) { - crc =ether_crc_le (ETH_ALEN , mc_list->dmi_addr); +netdev_for_each_mc_addr (ha, net_dev) { + crc =ether_crc_le (ETH_ALEN , ha->addr); bit = crc & (EFX_MCAST_HASH_ENTRIES -1 );set_bit_le (bit, mc_hash->byte); }
drivers/net/sis190.c +3 -3
@@ -848,13 +848,13 @@ static void sis190_set_rx_mode(struct net_device *dev) rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys; mc_filter[1 ] = mc_filter[0 ] =0xffffffff ; }else { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha; rx_mode = AcceptBroadcast | AcceptMyPhys; mc_filter[1 ] = mc_filter[0 ] =0 ; -netdev_for_each_mc_addr (mclist, dev) { +netdev_for_each_mc_addr (ha, dev) {int bit_nr = -ether_crc (ETH_ALEN , mclist->dmi_addr) &0x3f ; +ether_crc (ETH_ALEN , ha->addr) &0x3f ; mc_filter[bit_nr >>5 ] |=1 << (bit_nr &31 ); rx_mode |= AcceptMulticast; }
drivers/net/sis900.c +6 -4
@@ -2298,12 +2298,14 @@ static void set_rx_mode(struct net_device *net_dev)/* Accept Broadcast packet, destination address matchs our * MAC address, use Receive Filter to reject unwanted MCAST * packets */ -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha; rx_mode =RFAAB ; -netdev_for_each_mc_addr (mclist, net_dev) { -unsigned int bit_nr = -sis900_mcast_bitnr (mclist->dmi_addr, sis_priv->chipset_rev); +netdev_for_each_mc_addr (ha, net_dev) { +unsigned int bit_nr; + + bit_nr =sis900_mcast_bitnr (ha->addr, + sis_priv->chipset_rev); mc_filter[bit_nr >>4 ] |= (1 << (bit_nr &0xf )); } }
drivers/net/skfp/skfddi.c +6 -6
@@ -852,7 +852,7 @@ static void skfp_ctl_set_multicast_list(struct net_device *dev)static void skfp_ctl_set_multicast_list_wo_lock (struct net_device *dev) {struct s_smc *smc =netdev_priv (dev); -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;/* Enable promiscuous mode, if necessary */ if (dev->flags &IFF_PROMISC ) {
@@ -876,13 +876,13 @@ static void skfp_ctl_set_multicast_list_wo_lock(struct net_device *dev)/* use exact filtering */ // point to first multicast addr -netdev_for_each_mc_addr (dmi, dev) { -mac_add_multicast (smc, - (struct fddi_addr *)dmi->dmi_addr, -1 ); +netdev_for_each_mc_addr (ha, dev) { +mac_add_multicast (smc, + (struct fddi_addr *)ha->addr, +1 );pr_debug (KERN_INFO "ENABLE MC ADDRESS: %pMF\n" , - dmi->dmi_addr); + ha->addr); } }else {// more MC addresses than HW supports
drivers/net/skge.c +6 -6
@@ -2917,7 +2917,7 @@ static void genesis_set_multicast(struct net_device *dev)struct skge_port *skge =netdev_priv (dev);struct skge_hw *hw = skge->hw;int port = skge->port; -struct dev_mc_list *list; +struct netdev_hw_addr *ha;u32 mode;u8 filter[8 ];
@@ -2937,8 +2937,8 @@ static void genesis_set_multicast(struct net_device *dev) skge->flow_status == FLOW_STAT_SYMMETRIC)genesis_add_filter (filter, pause_mc_addr); -netdev_for_each_mc_addr (list, dev) -genesis_add_filter (filter, list->dmi_addr); +netdev_for_each_mc_addr (ha, dev) +genesis_add_filter (filter, ha->addr); }xm_write32 (hw, port,XM_MODE , mode);
@@ -2956,7 +2956,7 @@ static void yukon_set_multicast(struct net_device *dev)struct skge_port *skge =netdev_priv (dev);struct skge_hw *hw = skge->hw;int port = skge->port; -struct dev_mc_list *list; +struct netdev_hw_addr *ha;int rx_pause = (skge->flow_status ==FLOW_STAT_REM_SEND || skge->flow_status ==FLOW_STAT_SYMMETRIC );u16 reg;
@@ -2979,8 +2979,8 @@ static void yukon_set_multicast(struct net_device *dev)if (rx_pause)yukon_add_filter (filter, pause_mc_addr); -netdev_for_each_mc_addr (list, dev) -yukon_add_filter (filter, list->dmi_addr); +netdev_for_each_mc_addr (ha, dev) +yukon_add_filter (filter, ha->addr); }
drivers/net/sky2.c +3 -3
@@ -3627,7 +3627,7 @@ static void sky2_set_multicast(struct net_device *dev)struct sky2_port *sky2 =netdev_priv (dev);struct sky2_hw *hw = sky2->hw;unsigned port = sky2->port; -struct dev_mc_list *list; +struct netdev_hw_addr *ha;u16 reg;u8 filter[8 ];int rx_pause;
@@ -3651,8 +3651,8 @@ static void sky2_set_multicast(struct net_device *dev)if (rx_pause)sky2_add_filter (filter, pause_mc_addr); -netdev_for_each_mc_addr (list, dev) -sky2_add_filter (filter, list->dmi_addr); +netdev_for_each_mc_addr (ha, dev) +sky2_add_filter (filter, ha->addr); } gma_write16(hw, port, GM_MC_ADDR_H1,
drivers/net/smc911x.c +5 -8
@@ -1341,7 +1341,7 @@ static void smc911x_set_multicast_list(struct net_device *dev)* within that register. */ else if (!netdev_mc_empty(dev)) { -struct dev_mc_list *cur_addr; +struct netdev_hw_addr *ha;/* Set the Hash perfec mode */ mcr |=MAC_CR_HPFILT_ ;
@@ -1349,19 +1349,16 @@ static void smc911x_set_multicast_list(struct net_device *dev)/* start with a table of all zeros: reject all */ memset (multicast_table,0 ,sizeof (multicast_table)); -netdev_for_each_mc_addr (cur_addr, dev) { +netdev_for_each_mc_addr (ha, dev) {u32 position; -/* do we have a pointer here? */ -if (!cur_addr) -break ;/* make sure this is a multicast address - shouldn't this be a given if we have it here ? */ -if (!(*cur_addr->dmi_addr &1 )) -continue ; +if (!(*ha->addr &1 )) +continue ;/* upper 6 bits are used as hash index */ - position =ether_crc (ETH_ALEN , cur_addr->dmi_addr)>>26 ; + position =ether_crc (ETH_ALEN , ha->addr)>>26 ; multicast_table[position>>5 ] |=1 << (position&0x1f ); }
drivers/net/smc9194.c +5 -8
@@ -417,7 +417,7 @@ static void smc_shutdown( int ioaddr )/* -. Function: smc_setmulticast( int ioaddr, int count, dev_mc_list * adds ) +. Function: smc_setmulticast( int ioaddr, struct net_device *dev ) . Purpose: . This sets the internal hardware table to filter out unwanted multicast . packets before they take up memory.
@@ -438,26 +438,23 @@ static void smc_setmulticast(int ioaddr, struct net_device *dev) {int i;unsigned char multicast_table[8 ]; -struct dev_mc_list *cur_addr; +struct netdev_hw_addr *ha;/* table for flipping the order of 3 bits */ unsigned char invert3[] = {0 ,4 ,2 ,6 ,1 ,5 ,3 ,7 };/* start with a table of all zeros: reject all */ memset ( multicast_table,0 ,sizeof ( multicast_table ) ); -netdev_for_each_mc_addr (cur_addr, dev) { +netdev_for_each_mc_addr (ha, dev) {int position; -/* do we have a pointer here? */ -if ( !cur_addr ) -break ;/* make sure this is a multicast address - shouldn't this be a given if we have it here ? */ -if ( !( *cur_addr->dmi_addr &1 ) ) +if (!(*ha->addr &1 ))continue ;/* only use the low order bits */ - position =ether_crc_le (6 , cur_addr->dmi_addr) &0x3f ; + position =ether_crc_le (6 , ha->addr) &0x3f ;/* do some messy swapping to put the bit in the right spot */ multicast_table[invert3[position&7]] |=
drivers/net/smc91x.c +4 -4
@@ -1413,7 +1413,7 @@ static void smc_set_multicast_list(struct net_device *dev)* within that register. */ else if (!netdev_mc_empty(dev)) { -struct dev_mc_list *cur_addr; +struct netdev_hw_addr *ha;/* table for flipping the order of 3 bits */ static const unsigned char invert3[] = {0 ,4 ,2 ,6 ,1 ,5 ,3 ,7 };
@@ -1421,16 +1421,16 @@ static void smc_set_multicast_list(struct net_device *dev)/* start with a table of all zeros: reject all */ memset (multicast_table,0 ,sizeof (multicast_table)); -netdev_for_each_mc_addr (cur_addr, dev) { +netdev_for_each_mc_addr (ha, dev) {int position;/* make sure this is a multicast address - shouldn't this be a given if we have it here ? */ -if (!(*cur_addr->dmi_addr &1 )) +if (!(*ha->addr &1 ))continue ;/* only use the low order bits */ - position =crc32_le (~0 , cur_addr->dmi_addr,6 ) &0x3f ; + position =crc32_le (~0 , ha->addr,6 ) &0x3f ;/* do some messy swapping to put the bit in the right spot */ multicast_table[invert3[position&7]] |=
drivers/net/smsc911x.c +3 -3
@@ -1383,13 +1383,13 @@ static void smsc911x_set_multicast_list(struct net_device *dev)/* Enabling specific multicast addresses */ unsigned int hash_high =0 ;unsigned int hash_low =0 ; -struct dev_mc_list *mc_list; +struct netdev_hw_addr *ha; pdata->set_bits_mask =MAC_CR_HPFILT_ ; pdata->clear_bits_mask = (MAC_CR_PRMS_ |MAC_CR_MCPAS_ ); -netdev_for_each_mc_addr (mc_list, dev) { -unsigned int bitnum =smsc911x_hash (mc_list->dmi_addr); +netdev_for_each_mc_addr (ha, dev) { +unsigned int bitnum =smsc911x_hash (ha->addr);unsigned int mask =0x01 << (bitnum &0x1F );if (bitnum &0x20 )
drivers/net/smsc9420.c +3 -3
@@ -1063,12 +1063,12 @@ static void smsc9420_set_multicast_list(struct net_device *dev) mac_cr |=MAC_CR_MCPAS_ ; mac_cr &= (~MAC_CR_HPFILT_ ); }else if (!netdev_mc_empty (dev)) { -struct dev_mc_list *mc_list; +struct netdev_hw_addr *ha;u32 hash_lo =0 , hash_hi =0 ;smsc_dbg (HW ,"Multicast filter enabled" ); -netdev_for_each_mc_addr (mc_list, dev) { -u32 bit_num =smsc9420_hash (mc_list->dmi_addr); +netdev_for_each_mc_addr (ha, dev) { +u32 bit_num =smsc9420_hash (ha->addr);u32 mask =1 << (bit_num &0x1F );if (bit_num &0x20 )
drivers/net/sonic.c +3 -3
@@ -531,7 +531,7 @@ static void sonic_multicast_list(struct net_device *dev) {struct sonic_local *lp =netdev_priv (dev);unsigned int rcr; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;unsigned char *addr;int i;
@@ -550,8 +550,8 @@ static void sonic_multicast_list(struct net_device *dev) netdev_mc_count(dev));sonic_set_cam_enable (dev,1 );/* always enable our own address */ i =1 ; -netdev_for_each_mc_addr (dmi, dev) { - addr = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + addr = ha->addr;sonic_cda_put (dev, i,SONIC_CD_CAP0 , addr[1 ] <<8 | addr[0 ]);sonic_cda_put (dev, i,SONIC_CD_CAP1 , addr[3 ] <<8 | addr[2 ]);sonic_cda_put (dev, i,SONIC_CD_CAP2 , addr[5 ] <<8 | addr[4 ]);
drivers/net/spider_net.c +3 -3
@@ -625,7 +625,7 @@ spider_net_get_multicast_hash(struct net_device *netdev, __u8 *addr)static void spider_net_set_multi (struct net_device *netdev) { -struct dev_mc_list *mc; +struct netdev_hw_addr *ha;u8 hash;int i;u32 reg;
@@ -646,8 +646,8 @@ spider_net_set_multi(struct net_device *netdev)hash = spider_net_get_multicast_hash(netdev, netdev->broadcast); */ set_bit (0xfd , bitmask); -netdev_for_each_mc_addr (mc, netdev) { - hash =spider_net_get_multicast_hash (netdev, mc->dmi_addr); +netdev_for_each_mc_addr (ha, netdev) { + hash =spider_net_get_multicast_hash (netdev, ha->addr);set_bit (hash, bitmask); }
drivers/net/starfire.c +5 -5
@@ -1766,7 +1766,7 @@ static void set_rx_mode(struct net_device *dev)struct netdev_private *np =netdev_priv (dev);void __iomem *ioaddr = np->base;u32 rx_mode = MinVLANPrio; -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;int i;#ifdef VLAN_SUPPORT
@@ -1804,8 +1804,8 @@ static void set_rx_mode(struct net_device *dev)/* Use the 16 element perfect filter, skip first two entries. */ void __iomem *filter_addr = ioaddr + PerfFilterTable +2 *16 ;__be16 *eaddrs; -netdev_for_each_mc_addr (mclist, dev) { - eaddrs = (__be16 *)mclist->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + eaddrs = (__be16 *) ha->addr;writew (be16_to_cpu (eaddrs[2 ]), filter_addr); filter_addr +=4 ;writew (be16_to_cpu (eaddrs[1 ]), filter_addr); filter_addr +=4 ;writew (be16_to_cpu (eaddrs[0 ]), filter_addr); filter_addr +=8 ;
@@ -1825,10 +1825,10 @@ static void set_rx_mode(struct net_device *dev) __le16 mc_filter[32] __attribute__ ((aligned(sizeof(long)))); /* Multicast hash filter */memset (mc_filter,0 ,sizeof (mc_filter)); -netdev_for_each_mc_addr (mclist, dev) { +netdev_for_each_mc_addr (ha, dev) {/* The chip uses the upper 9 CRC bits as index into the hash table */ -int bit_nr =ether_crc_le (ETH_ALEN , mclist->dmi_addr) >>23 ; +int bit_nr =ether_crc_le (ETH_ALEN , ha->addr) >>23 ;__le32 *fptr = (__le32 *) &mc_filter[(bit_nr >>4 ) & ~1 ]; *fptr |=cpu_to_le32 (1 << (bit_nr &31 ));
drivers/net/stmmac/dwmac100.c +3 -3
@@ -316,7 +316,7 @@ static void dwmac100_set_filter(struct net_device *dev) MAC_CONTROL_HO | MAC_CONTROL_HP); }else {u32 mc_filter[2 ]; -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;/* Perfect filter mode for physical address and Hash filter for multicast */
@@ -325,11 +325,11 @@ static void dwmac100_set_filter(struct net_device *dev) MAC_CONTROL_IF | MAC_CONTROL_HO);memset (mc_filter,0 ,sizeof (mc_filter)); -netdev_for_each_mc_addr (mclist, dev) { +netdev_for_each_mc_addr (ha, dev) {/* The upper 6 bits of the calculated CRC are used to * index the contens of the hash table */ int bit_nr = -ether_crc (ETH_ALEN , mclist->dmi_addr) >>26 ; +ether_crc (ETH_ALEN , ha->addr) >>26 ;/* The most significant bit determines the register to * use (H/L) while the other 5 bits determine the bit * within the register. */
drivers/net/stmmac/dwmac1000_core.c +3 -3
@@ -94,17 +94,17 @@ static void dwmac1000_set_filter(struct net_device *dev)writel (0xffffffff , ioaddr +GMAC_HASH_LOW ); }else if (!netdev_mc_empty (dev)) {u32 mc_filter[2 ]; -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;/* Hash filter for multicast */ value =GMAC_FRAME_FILTER_HMC ;memset (mc_filter,0 ,sizeof (mc_filter)); -netdev_for_each_mc_addr (mclist, dev) { +netdev_for_each_mc_addr (ha, dev) {/* The upper 6 bits of the calculated CRC are used to index the contens of the hash table */ int bit_nr = -bitrev32 (~crc32_le (~0 , mclist->dmi_addr,6 )) >>26 ; +bitrev32 (~crc32_le (~0 , ha->addr,6 )) >>26 ;/* The most significant bit determines the register to * use (H/L) while the other 5 bits determine the bit * within the register. */
drivers/net/sun3_82586.c +3 -3
@@ -413,7 +413,7 @@ static int init586(struct net_device *dev)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; +struct netdev_hw_addr *ha;int num_addrs=netdev_mc_count (dev); ptr = (void *) ((char *)p->scb +sizeof (struct scb_struct ));
@@ -537,9 +537,9 @@ static int init586(struct net_device *dev) mc_cmd->mc_cnt =swab16 (num_addrs *6 ); i =0 ; -netdev_for_each_mc_addr (dmi, dev) +netdev_for_each_mc_addr (ha, dev)memcpy ((char *) mc_cmd->mc_list[i++], - dmi->dmi_addr,ETH_ALEN ); + ha->addr,ETH_ALEN ); p->scb->cbl_offset =make16 (mc_cmd); p->scb->cmd_cuc =CUC_START ;
drivers/net/sunbmac.c +3 -3
@@ -999,7 +999,7 @@ static void bigmac_set_multicast(struct net_device *dev) {struct bigmac *bp =netdev_priv (dev);void __iomem *bregs = bp->bregs; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;char *addrs;int i;u32 tmp, crc;
@@ -1028,8 +1028,8 @@ static void bigmac_set_multicast(struct net_device *dev)for (i =0 ; i <4 ; i++) hash_table[i] =0 ; -netdev_for_each_mc_addr (dmi, dev) { - addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + addrs = ha->addr;if (!(*addrs &1 ))continue ;
drivers/net/sundance.c +3 -3
@@ -1523,13 +1523,13 @@ static void set_rx_mode(struct net_device *dev)memset (mc_filter,0xff ,sizeof (mc_filter)); rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys; }else if (!netdev_mc_empty (dev)) { -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;int bit;int index;int crc;memset (mc_filter,0 ,sizeof (mc_filter)); -netdev_for_each_mc_addr (mclist, dev) { - crc =ether_crc_le (ETH_ALEN , mclist->dmi_addr); +netdev_for_each_mc_addr (ha, dev) { + crc =ether_crc_le (ETH_ALEN , ha->addr);for (index=0 , bit=0 ; bit <6 ; bit++, crc <<=1 )if (crc &0x80000000 ) index |=1 << bit; mc_filter[index/16 ] |= (1 << (index %16 ));
drivers/net/sungem.c +3 -3
@@ -1846,12 +1846,12 @@ static u32 gem_setup_multicast(struct gem *gp) }else {u16 hash_table[16 ];u32 crc; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;int i;memset (hash_table,0 ,sizeof (hash_table)); -netdev_for_each_mc_addr (dmi, gp->dev) { -char *addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, gp->dev) { +char *addrs = ha->addr;if (!(*addrs &1 ))continue ;
drivers/net/sunhme.c +6 -6
@@ -1523,13 +1523,13 @@ static int happy_meal_init(struct happy_meal *hp)hme_write32 (hp, bregs +BMAC_HTABLE3 ,0xffff ); }else if ((hp->dev->flags &IFF_PROMISC ) ==0 ) {u16 hash_table[4 ]; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;char *addrs;u32 crc;memset (hash_table,0 ,sizeof (hash_table)); -netdev_for_each_mc_addr (dmi, hp->dev) { - addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, hp->dev) { + addrs = ha->addr;if (!(*addrs &1 ))continue ;
@@ -2362,7 +2362,7 @@ static void happy_meal_set_multicast(struct net_device *dev) {struct happy_meal *hp =netdev_priv (dev);void __iomem *bregs = hp->bigmacregs; -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;char *addrs;u32 crc;
@@ -2380,8 +2380,8 @@ static void happy_meal_set_multicast(struct net_device *dev)u16 hash_table[4 ];memset (hash_table,0 ,sizeof (hash_table)); -netdev_for_each_mc_addr (dmi, dev) { - addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + addrs = ha->addr;if (!(*addrs &1 ))continue ;
drivers/net/sunlance.c +3 -3
@@ -1170,7 +1170,7 @@ static int lance_start_xmit(struct sk_buff *skb, struct net_device *dev)static void lance_load_multicast (struct net_device *dev) {struct lance_private *lp =netdev_priv (dev); -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;char *addrs;u32 crc;u32 val;
@@ -1195,8 +1195,8 @@ static void lance_load_multicast(struct net_device *dev)return ;/* Add addresses */ -netdev_for_each_mc_addr (dmi, dev) { - addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + addrs = ha->addr;/* multicast address? */ if (!(*addrs &1 ))
drivers/net/sunqe.c +3 -3
@@ -627,7 +627,7 @@ static int qe_start_xmit(struct sk_buff *skb, struct net_device *dev)static void qe_set_multicast (struct net_device *dev) {struct sunqe *qep =netdev_priv (dev); -struct dev_mc_list *dmi; +struct netdev_hw_addr *ha;u8 new_mconfig = qep->mconfig;char *addrs;int i;
@@ -651,8 +651,8 @@ static void qe_set_multicast(struct net_device *dev)u8 *hbytes = (unsigned char *) &hash_table[0 ];memset (hash_table,0 ,sizeof (hash_table)); -netdev_for_each_mc_addr (dmi, dev) { - addrs = dmi->dmi_addr; +netdev_for_each_mc_addr (ha, dev) { + addrs = ha->addr;if (!(*addrs &1 ))continue ;
drivers/net/sunvnet.c +4 -4
@@ -763,12 +763,12 @@ static struct vnet_mcast_entry *__vnet_mc_find(struct vnet *vp, u8 *addr)static void __update_mc_list (struct vnet *vp,struct net_device *dev) { -struct dev_addr_list *p; +struct netdev_hw_addr *ha; -netdev_for_each_mc_addr (p, dev) { +netdev_for_each_mc_addr (ha, dev) {struct vnet_mcast_entry *m; - m =__vnet_mc_find (vp, p->dmi_addr); + m =__vnet_mc_find (vp, ha->addr);if (m) { m->hit =1 ;continue ;
@@ -778,7 +778,7 @@ static void __update_mc_list(struct vnet *vp, struct net_device *dev) m =kzalloc (sizeof (*m),GFP_ATOMIC );if (!m)continue ; -memcpy (m->addr, p->dmi_addr,ETH_ALEN ); +memcpy (m->addr, ha->addr,ETH_ALEN ); m->hit =1 ; m->next = vp->mcast_list;
drivers/net/tc35815.c +3 -3
@@ -1954,16 +1954,16 @@ tc35815_set_multicast_list(struct net_device *dev)/* Disable promiscuous mode, use normal mode. */ tc_writel (CAM_CompEn | CAM_BroadAcc | CAM_GroupAcc, &tr->CAM_Ctl); }else if (!netdev_mc_empty (dev)) { -struct dev_mc_list *cur_addr; +struct netdev_hw_addr *ha;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 */ i =0 ; -netdev_for_each_mc_addr (cur_addr, dev) { +netdev_for_each_mc_addr (ha, dev) {/* entry 0,1 is reserved. */ -tc35815_set_cam_entry (dev, i +2 , cur_addr->dmi_addr); +tc35815_set_cam_entry (dev, i +2 , ha->addr); ena_bits |=CAM_Ena_Bit (i +2 ); i++; }
drivers/net/tehuti.c +3 -3
@@ -808,7 +808,7 @@ static void bdx_setmulti(struct net_device *ndev)WRITE_REG (priv, regRX_MCST_HASH0 + i *4 , ~0 ); }else if (!netdev_mc_empty (ndev)) {u8 hash; -struct dev_mc_list *mclist; +struct netdev_hw_addr *ha;u32 reg, val;/* set IMF to deny all multicast frames */
@@ -825,10 +825,10 @@ static void bdx_setmulti(struct net_device *ndev)* into RX_MAC_MCST regs. we skip this phase now and accept ALL * multicast frames throu IMF */ /* accept the rest of addresses throu IMF */ -netdev_for_each_mc_addr (mclist, ndev) { +netdev_for_each_mc_addr (ha, ndev) { hash =0 ;for (i =0 ; i <ETH_ALEN ; i++) - hash ^= mclist->dmi_addr[i]; + hash ^= ha->addr[i]; reg = regRX_MCST_HASH0 + ((hash >>5 ) <<2 ); val =READ_REG (priv, reg); val |= (1 << (hash %32 ));
drivers/net/tg3.c +3 -3
@@ -9457,14 +9457,14 @@ static void __tg3_set_rx_mode(struct net_device *dev)tg3_set_multi (tp,0 ); }else {/* Accept one or more multicast(s). */ -struct dev_mc_list *mclist;
Lines of this file are not shown. View the raw message.
drivers/net/wireless/libertas_tf/main.c +6 -8
Lines of this file are not shown. View the raw message.
drivers/net/wireless/rtl818x/rtl8180_dev.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/rtl818x/rtl8187_dev.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/wl12xx/wl1271_main.c +10 -15
Lines of this file are not shown. View the raw message.
include/linux/netdevice.h +42 -40
82 lines not on this page · raw message
net/core/dev.c +5 -140
145 lines not on this page · raw message
net/core/dev_addr_lists.c +284 -21
305 lines not on this page · raw message
net/core/dev_mcast.c deleted +0 -232
232 lines not on this page · raw message
The rest of this diff is not shown. View the raw message.
Signature · 1 line
1.6.6.1
Part of the diff is not shown here. View the raw message.
David Miller
maintainerFrom: Jiri Pirko <[email protected]>
Date: Fri, 2 Apr 2010 09:21:27 +0200
Quoted 2 lines
This patchset finalizes the conversion of multicast list to
list_head. It also moves the code manipulating all address lists to it's own file.
Both applied, thanks Jiri.