]> git.karo-electronics.de Git - linux-beck.git/commitdiff
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net...
authorDavid S. Miller <davem@davemloft.net>
Wed, 4 Mar 2015 01:47:23 +0000 (20:47 -0500)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Mar 2015 01:47:23 +0000 (20:47 -0500)
Jeff Kirsher says:

====================
Intel Wired LAN Driver Updates 2015-03-03

This series contains updates to fm10k, i40e and i40evf.

Matthew updates the fm10k driver by cleaning up code comments and whitespace
issues.  Also modifies the tunnel length header check, to make it more robust
by calculating the inner L4 header length based on whether it is TCP or UDP.
Implemented ndo_features_check() that allows drivers to report their offload
capabilities per-skb.

Neerav updates the i40e driver to skip over priority tagging if DCB is not
enabled.  Fixes an issue where the driver is not flushing out the
DCBNL app table for applications that are not present in the local DCBX
application configuration TLVs.  Fixed i40e where, in the case of MFP
mode, the driver was returning the incorrect number of traffic classes
for partitions that are not enabled for iSCSI.  Even though the driver
was not configuring these traffic classes in the transmit scheduler for
the NIC partitions, it does use this map to setup the queue mappings.

Shannon updates i40e/i40evf to include the firmware build number in the
formatted firmware version string.

Akeem adds a safety net (by adding a 'default' case) for the possible
unmatched switch calls.

Mitch updates i40e to not automatically disable PF loopback at runtime,
now that we have the functionality to enable and disable PF loopback.  This
fix cleans up a bogus error message when removing the PF module with VFs
enabled.  Adds a extra check to make sure that the indirection table
pointer is valid before dereferencing it.

Anjali enables i40e to enable more than the max RSS qps when running in a
single TC mode for the main VSI.  It is possible to enable as many as
num_online_cpus().  Adds a firmware check to ensure that DCB is disabled for
firmware versions older than 4.33.  Updates i40e/i40evf to add missing
packet types for VXLAN offload.  Updated i40e to be able to handle varying
RSS table size for each VSI, since all VSI's do not have the same RSS table
size.

v2: Dropped previous patch #9 "i40e/i40evf: Add capability to gather VEB
    per TC stats" since the stats should be in ethtool and not debugfs.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
93 files changed:
drivers/net/ethernet/amd/pcnet32.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
drivers/net/ethernet/cisco/enic/enic_main.c
drivers/net/ethernet/emulex/benet/be_cmds.c
drivers/net/ethernet/emulex/benet/be_main.c
drivers/net/ethernet/intel/Kconfig
drivers/net/ethernet/intel/i40e/i40e.h
drivers/net/ethernet/intel/i40e/i40e_configfs.c
drivers/net/ethernet/intel/i40e/i40e_main.c
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
drivers/net/ethernet/mellanox/mlx4/en_selftest.c
drivers/net/ethernet/micrel/ksz884x.c
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c
drivers/net/ethernet/qlogic/qlge/qlge_main.c
drivers/net/ethernet/smsc/smsc911x.c
drivers/net/ethernet/ti/netcp_core.c
drivers/net/ethernet/toshiba/ps3_gelic_wireless.c
drivers/net/ethernet/xscale/ixp4xx_eth.c
drivers/net/hamradio/6pack.c
drivers/net/hamradio/baycom_epp.c
drivers/net/hamradio/bpqether.c
drivers/net/hamradio/dmascc.c
drivers/net/hamradio/hdlcdrv.c
drivers/net/hamradio/mkiss.c
drivers/net/hamradio/scc.c
drivers/net/hamradio/yam.c
drivers/net/netconsole.c
drivers/net/usb/catc.c
drivers/net/usb/cdc_mbim.c
drivers/net/usb/lg-vl600.c
drivers/net/usb/qmi_wwan.c
drivers/net/wireless/airo.c
drivers/net/wireless/at76c50x-usb.c
drivers/net/wireless/ath/ath10k/mac.c
drivers/net/wireless/ath/ath5k/base.c
drivers/net/wireless/ath/ath6kl/cfg80211.c
drivers/net/wireless/ath/ath6kl/main.c
drivers/net/wireless/ath/ath9k/htc_drv_main.c
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/atmel.c
drivers/net/wireless/b43/main.c
drivers/net/wireless/b43legacy/main.c
drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c
drivers/net/wireless/brcm80211/brcmfmac/flowring.c
drivers/net/wireless/brcm80211/brcmfmac/p2p.c
drivers/net/wireless/cw1200/sta.c
drivers/net/wireless/cw1200/txrx.c
drivers/net/wireless/hostap/hostap_80211_tx.c
drivers/net/wireless/hostap/hostap_ap.c
drivers/net/wireless/hostap/hostap_info.c
drivers/net/wireless/hostap/hostap_main.c
drivers/net/wireless/hostap/hostap_wlan.h
drivers/net/wireless/ipw2x00/ipw2100.c
drivers/net/wireless/ipw2x00/ipw2200.c
drivers/net/wireless/iwlegacy/common.c
drivers/net/wireless/iwlwifi/mvm/power.c
drivers/net/wireless/libertas/main.c
drivers/net/wireless/libertas_tf/main.c
drivers/net/wireless/mac80211_hwsim.c
drivers/net/wireless/mwifiex/cfg80211.c
drivers/net/wireless/mwifiex/init.c
drivers/net/wireless/mwifiex/sta_event.c
drivers/net/wireless/mwifiex/wmm.c
drivers/net/wireless/mwl8k.c
drivers/net/wireless/orinoco/wext.c
drivers/net/wireless/p54/fwio.c
drivers/net/wireless/p54/main.c
drivers/net/wireless/ray_cs.c
drivers/net/wireless/rndis_wlan.c
drivers/net/wireless/rtlwifi/core.c
drivers/net/wireless/ti/wl1251/main.c
drivers/net/wireless/ti/wlcore/cmd.c
drivers/net/xen-netback/interface.c
include/net/ax25.h
net/8021q/vlan_dev.c
net/appletalk/aarp.c
net/atm/lec.c
net/atm/signaling.c
net/ax25/ax25_ip.c
net/bluetooth/bnep/netdev.c
net/ethernet/eth.c
net/l2tp/l2tp_eth.c
net/mac80211/cfg.c
net/mac80211/ibss.c
net/mac80211/mesh.c
net/mac80211/mlme.c
net/wireless/ibss.c
net/wireless/nl80211.c
net/wireless/trace.h
net/wireless/wext-sme.c

index 11d6e6561df159c3dc9dff28fc504e945a77f47b..8eb37e0194b5b839553046fb231e86ef1ddfa30f 100644 (file)
@@ -1708,7 +1708,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
 
        /* if the ethernet address is not valid, force to 00:00:00:00:00:00 */
        if (!is_valid_ether_addr(dev->dev_addr))
-               memset(dev->dev_addr, 0, ETH_ALEN);
+               eth_zero_addr(dev->dev_addr);
 
        if (pcnet32_debug & NETIF_MSG_PROBE) {
                pr_cont(" %pM", dev->dev_addr);
index ffe4e003e636db95054df9e1b76b5198a2b5e2b1..e3d853cab7c9644c241cd42ba1a2844b82e55176 100644 (file)
@@ -2446,7 +2446,7 @@ static int bnx2x_run_loopback(struct bnx2x *bp, int loopback_mode)
        }
        packet = skb_put(skb, pkt_size);
        memcpy(packet, bp->dev->dev_addr, ETH_ALEN);
-       memset(packet + ETH_ALEN, 0, ETH_ALEN);
+       eth_zero_addr(packet + ETH_ALEN);
        memset(packet + 2*ETH_ALEN, 0x77, (ETH_HLEN - 2*ETH_ALEN));
        for (i = ETH_HLEN; i < pkt_size; i++)
                packet[i] = (unsigned char) (i & 0xff);
index 7155e1d2c208c7253b846ee954086fef5fd574da..98dcb03fe1b8c6187511f7ae554abea13cbb726c 100644 (file)
@@ -11546,13 +11546,13 @@ static void bnx2x_get_cnic_mac_hwinfo(struct bnx2x *bp)
        /* Disable iSCSI OOO if MAC configuration is invalid. */
        if (!is_valid_ether_addr(iscsi_mac)) {
                bp->flags |= NO_ISCSI_OOO_FLAG | NO_ISCSI_FLAG;
-               memset(iscsi_mac, 0, ETH_ALEN);
+               eth_zero_addr(iscsi_mac);
        }
 
        /* Disable FCoE if MAC configuration is invalid. */
        if (!is_valid_ether_addr(fip_mac)) {
                bp->flags |= NO_FCOE_FLAG;
-               memset(bp->fip_mac, 0, ETH_ALEN);
+               eth_zero_addr(bp->fip_mac);
        }
 }
 
@@ -11563,7 +11563,7 @@ static void bnx2x_get_mac_hwinfo(struct bnx2x *bp)
        int port = BP_PORT(bp);
 
        /* Zero primary MAC configuration */
-       memset(bp->dev->dev_addr, 0, ETH_ALEN);
+       eth_zero_addr(bp->dev->dev_addr);
 
        if (BP_NOMCP(bp)) {
                BNX2X_ERROR("warning: random MAC workaround active\n");
index e5aca2de1871350f3e47a788c4360b461c02a039..8638d6c97caa4e615ccf2bd3083d837a0eb870c0 100644 (file)
@@ -2693,7 +2693,7 @@ int bnx2x_get_vf_config(struct net_device *dev, int vfidx,
                        memcpy(&ivi->mac, bulletin->mac, ETH_ALEN);
                else
                        /* function has not been loaded yet. Show mac as 0s */
-                       memset(&ivi->mac, 0, ETH_ALEN);
+                       eth_zero_addr(ivi->mac);
 
                /* vlan */
                if (bulletin->valid_bitmap & (1 << VLAN_VALID))
index 9cbe038a388ea62a6f4552e7f088dc5816dc5b5c..a368c0a96ec70d57bccb8547e2fb23fb18bcae89 100644 (file)
@@ -893,7 +893,7 @@ static int enic_set_vf_port(struct net_device *netdev, int vf,
                } else {
                        memset(pp, 0, sizeof(*pp));
                        if (vf == PORT_SELF_VF)
-                               memset(netdev->dev_addr, 0, ETH_ALEN);
+                               eth_zero_addr(netdev->dev_addr);
                }
        } else {
                /* Set flag to indicate that the port assoc/disassoc
@@ -903,14 +903,14 @@ static int enic_set_vf_port(struct net_device *netdev, int vf,
 
                /* If DISASSOCIATE, clean up all assigned/saved macaddresses */
                if (pp->request == PORT_REQUEST_DISASSOCIATE) {
-                       memset(pp->mac_addr, 0, ETH_ALEN);
+                       eth_zero_addr(pp->mac_addr);
                        if (vf == PORT_SELF_VF)
-                               memset(netdev->dev_addr, 0, ETH_ALEN);
+                               eth_zero_addr(netdev->dev_addr);
                }
        }
 
        if (vf == PORT_SELF_VF)
-               memset(pp->vf_mac, 0, ETH_ALEN);
+               eth_zero_addr(pp->vf_mac);
 
        return err;
 }
index f6db7b3e9b709e3a155e741cad3ccd3afaeb5884..be00695b3be7beab1fda7c9d5bd4d4ddd6029537 100644 (file)
@@ -3076,7 +3076,7 @@ int be_cmd_get_perm_mac(struct be_adapter *adapter, u8 *mac)
        int status;
        bool pmac_valid = false;
 
-       memset(mac, 0, ETH_ALEN);
+       eth_zero_addr(mac);
 
        if (BEx_chip(adapter)) {
                if (be_physfn(adapter))
index b2277a4c7ddf7a4a9c088f31ca2a45dbd1b58a9e..7eccebc676e2531eaa37fdcb109caeb6f0a4cce4 100644 (file)
@@ -3218,7 +3218,7 @@ static int be_setup_wol(struct be_adapter *adapter, bool enable)
        int status = 0;
        u8 mac[ETH_ALEN];
 
-       memset(mac, 0, ETH_ALEN);
+       eth_zero_addr(mac);
 
        cmd.size = sizeof(struct be_cmd_req_acpi_wol_magic_config);
        cmd.va = dma_zalloc_coherent(&adapter->pdev->dev, cmd.size, &cmd.dma,
index f4ff465584a082d76618be172ed05d559a0950de..7216a5370a1f2f18b9749e98054b5babd4cae259 100644 (file)
@@ -303,6 +303,15 @@ config I40E_FCOE
 
          If unsure, say N.
 
+config I40E_CONFIGFS_FS
+       bool "Config File System Support (configfs)"
+       default n
+       depends on I40E && CONFIGFS_FS && !(I40E=y && CONFIGFS_FS=m)
+       ---help---
+         Provides support for the configfs file system for additional
+         driver configuration.  Say Y here if you want to use the
+         configuration file system in the driver.
+
 config I40EVF
        tristate "Intel(R) XL710 X710 Virtual Function Ethernet support"
        depends on PCI_MSI
index cfc1d8a52e42deffd88664768297bf30a01bc972..c5137313b62a3bd97bd1bfa880df902735eb6627 100644 (file)
@@ -746,10 +746,10 @@ int i40e_ptp_get_ts_config(struct i40e_pf *pf, struct ifreq *ifr);
 void i40e_ptp_init(struct i40e_pf *pf);
 void i40e_ptp_stop(struct i40e_pf *pf);
 int i40e_is_vsi_uplink_mode_veb(struct i40e_vsi *vsi);
-#if IS_ENABLED(CONFIG_CONFIGFS_FS)
+#if IS_ENABLED(CONFIG_I40E_CONFIGFS_FS)
 int i40e_configfs_init(void);
 void i40e_configfs_exit(void);
-#endif /* CONFIG_CONFIGFS_FS */
+#endif /* CONFIG_I40E_CONFIGFS_FS */
 i40e_status i40e_get_npar_bw_setting(struct i40e_pf *pf);
 i40e_status i40e_set_npar_bw_setting(struct i40e_pf *pf);
 i40e_status i40e_commit_npar_bw_setting(struct i40e_pf *pf);
index 3af4f14559d78f3abea872703ff307a7fdf407ea..d3cdfc24d5bfc0f754a0ce1212e4ebfe22669fba 100644 (file)
@@ -27,7 +27,7 @@
 #include <linux/configfs.h>
 #include "i40e.h"
 
-#if IS_ENABLED(CONFIG_CONFIGFS_FS)
+#if IS_ENABLED(CONFIG_I40E_CONFIGFS_FS)
 
 /**
  * configfs structure for i40e
@@ -351,4 +351,4 @@ void i40e_configfs_exit(void)
 {
        configfs_unregister_subsystem(&i40e_cfgfs_group_subsys);
 }
-#endif /* IS_ENABLED(CONFIG_CONFIGFS_FS) */
+#endif /* IS_ENABLED(CONFIG_I40E_CONFIGFS_FS) */
index 3c4f4192feff1b1c29b76e37d30a5d48069fc7b9..c3858e7f0e66f032de3899082e29cfbfdea056b9 100644 (file)
@@ -10139,9 +10139,9 @@ static int __init i40e_init_module(void)
                i40e_driver_string, i40e_driver_version_str);
        pr_info("%s: %s\n", i40e_driver_name, i40e_copyright);
 
-#if IS_ENABLED(CONFIG_CONFIGFS_FS)
+#if IS_ENABLED(CONFIG_I40E_CONFIGFS_FS)
        i40e_configfs_init();
-#endif /* CONFIG_CONFIGFS_FS */
+#endif /* CONFIG_I40E_CONFIGFS_FS */
        i40e_dbg_init();
        return pci_register_driver(&i40e_driver);
 }
@@ -10157,8 +10157,8 @@ static void __exit i40e_exit_module(void)
 {
        pci_unregister_driver(&i40e_driver);
        i40e_dbg_exit();
-#if IS_ENABLED(CONFIG_CONFIGFS_FS)
+#if IS_ENABLED(CONFIG_I40E_CONFIGFS_FS)
        i40e_configfs_exit();
-#endif /* CONFIG_CONFIGFS_FS */
+#endif /* CONFIG_I40E_CONFIGFS_FS */
 }
 module_exit(i40e_exit_module);
index 70cc4c5c0a0130e82b44bd2aa597aca401e670de..903664ff690428ef69a6e9226ab0fa50420f6fca 100644 (file)
@@ -3924,7 +3924,7 @@ static void ixgbe_flush_sw_mac_table(struct ixgbe_adapter *adapter)
        for (i = 0; i < hw->mac.num_rar_entries; i++) {
                adapter->mac_table[i].state |= IXGBE_MAC_STATE_MODIFIED;
                adapter->mac_table[i].state &= ~IXGBE_MAC_STATE_IN_USE;
-               memset(adapter->mac_table[i].addr, 0, ETH_ALEN);
+               eth_zero_addr(adapter->mac_table[i].addr);
                adapter->mac_table[i].queue = 0;
        }
        ixgbe_sync_mac_table(adapter);
@@ -3992,7 +3992,7 @@ int ixgbe_del_mac_filter(struct ixgbe_adapter *adapter, u8 *addr, u16 queue)
                    adapter->mac_table[i].queue == queue) {
                        adapter->mac_table[i].state |= IXGBE_MAC_STATE_MODIFIED;
                        adapter->mac_table[i].state &= ~IXGBE_MAC_STATE_IN_USE;
-                       memset(adapter->mac_table[i].addr, 0, ETH_ALEN);
+                       eth_zero_addr(adapter->mac_table[i].addr);
                        adapter->mac_table[i].queue = 0;
                        ixgbe_sync_mac_table(adapter);
                        return 0;
index 2a210c4efb895728ec6ad12eaef9ec8f9ff7fd08..c59ed925adaf322744c320d4274264ed7a9eebfb 100644 (file)
@@ -1685,7 +1685,7 @@ int mlx4_en_start_port(struct net_device *dev)
        }
 
        /* Attach rx QP to bradcast address */
-       memset(&mc_list[10], 0xff, ETH_ALEN);
+       eth_broadcast_addr(&mc_list[10]);
        mc_list[5] = priv->port; /* needed for B0 steering support */
        if (mlx4_multicast_attach(mdev->dev, &priv->rss_map.indir_qp, mc_list,
                                  priv->port, 0, MLX4_PROT_ETH,
@@ -1788,7 +1788,7 @@ void mlx4_en_stop_port(struct net_device *dev, int detach)
        }
 
        /* Detach All multicasts */
-       memset(&mc_list[10], 0xff, ETH_ALEN);
+       eth_broadcast_addr(&mc_list[10]);
        mc_list[5] = priv->port; /* needed for B0 steering support */
        mlx4_multicast_detach(mdev->dev, &priv->rss_map.indir_qp, mc_list,
                              MLX4_PROT_ETH, priv->broadcast_id);
index 2d8ee66138e8ad48cb72daa773a67c1f421e4cac..4e789479f00f8bb042142ceaf1181e128dfd6c1f 100644 (file)
@@ -66,7 +66,7 @@ static int mlx4_en_test_loopback_xmit(struct mlx4_en_priv *priv)
        ethh = (struct ethhdr *)skb_put(skb, sizeof(struct ethhdr));
        packet  = (unsigned char *)skb_put(skb, packet_size);
        memcpy(ethh->h_dest, priv->dev->dev_addr, ETH_ALEN);
-       memset(ethh->h_source, 0, ETH_ALEN);
+       eth_zero_addr(ethh->h_source);
        ethh->h_proto = htons(ETH_P_ARP);
        skb_set_mac_header(skb, 0);
        for (i = 0; i < packet_size; ++i)       /* fill our packet */
index 10988fbf47ebbeffd17cd8d1fb4d6a1c77c29405..6f332ebdf3b5a812dd34be59a072e497af380975 100644 (file)
@@ -4144,7 +4144,7 @@ static int hw_del_addr(struct ksz_hw *hw, u8 *mac_addr)
 
        for (i = 0; i < hw->addr_list_size; i++) {
                if (ether_addr_equal(hw->address[i], mac_addr)) {
-                       memset(hw->address[i], 0, ETH_ALEN);
+                       eth_zero_addr(hw->address[i]);
                        writel(0, hw->io + ADD_ADDR_INCR * i +
                                KS_ADD_ADDR_0_HI);
                        return 0;
index 716fc37ada5a961677b577b0c693427ff8b32ee6..db80eb1c6d4fc5ebccea52aa86e87a7578ead04f 100644 (file)
@@ -537,7 +537,7 @@ static void netxen_p2_nic_set_multi(struct net_device *netdev)
        u8 null_addr[ETH_ALEN];
        int i;
 
-       memset(null_addr, 0, ETH_ALEN);
+       eth_zero_addr(null_addr);
 
        if (netdev->flags & IFF_PROMISC) {
 
index 8011ef3e7707f783f4caf9f1c16f3d7be3410c4f..25800a1dedcb9fbe0635e80386521dc789575fba 100644 (file)
@@ -460,7 +460,7 @@ static int ql_set_mac_addr(struct ql_adapter *qdev, int set)
                netif_printk(qdev, ifup, KERN_DEBUG, qdev->ndev,
                             "Set Mac addr %pM\n", addr);
        } else {
-               memset(zero_mac_addr, 0, ETH_ALEN);
+               eth_zero_addr(zero_mac_addr);
                addr = &zero_mac_addr[0];
                netif_printk(qdev, ifup, KERN_DEBUG, qdev->ndev,
                             "Clearing MAC address\n");
index 2965c6ae7d6e4692ff491185550548bf985cf681..41047c9143d0a66cde1441311fb5feb3ce0796d0 100644 (file)
@@ -843,7 +843,7 @@ static int smsc911x_phy_loopbacktest(struct net_device *dev)
        unsigned long flags;
 
        /* Initialise tx packet using broadcast destination address */
-       memset(pdata->loopback_tx_pkt, 0xff, ETH_ALEN);
+       eth_broadcast_addr(pdata->loopback_tx_pkt);
 
        /* Use incrementing source address */
        for (i = 6; i < 12; i++)
index a31a8c3c8e7c74c91651a934eac853625805d2ff..9f14d8b515c74360355c9850adc4ecad5e044795 100644 (file)
@@ -1320,7 +1320,7 @@ static struct netcp_addr *netcp_addr_add(struct netcp_intf *netcp,
        if (addr)
                ether_addr_copy(naddr->addr, addr);
        else
-               memset(naddr->addr, 0, ETH_ALEN);
+               eth_zero_addr(naddr->addr);
        list_add_tail(&naddr->node, &netcp->addr_list);
 
        return naddr;
index 0a7f2e77557f63eb8920c0b80c9552ec17e056ec..13214a6492ac5b1eced4d39c21b7736f5dcf19d4 100644 (file)
@@ -1167,7 +1167,7 @@ static int gelic_wl_set_ap(struct net_device *netdev,
        } else {
                pr_debug("%s: clear bssid\n", __func__);
                clear_bit(GELIC_WL_STAT_BSSID_SET, &wl->stat);
-               memset(wl->bssid, 0, ETH_ALEN);
+               eth_zero_addr(wl->bssid);
        }
        spin_unlock_irqrestore(&wl->lock, irqflag);
        pr_debug("%s: ->\n", __func__);
@@ -1189,7 +1189,7 @@ static int gelic_wl_get_ap(struct net_device *netdev,
                memcpy(data->ap_addr.sa_data, wl->active_bssid,
                       ETH_ALEN);
        } else
-               memset(data->ap_addr.sa_data, 0, ETH_ALEN);
+               eth_zero_addr(data->ap_addr.sa_data);
 
        spin_unlock_irqrestore(&wl->lock, irqflag);
        mutex_unlock(&wl->assoc_stat_lock);
index f7e0f0f7c2e27dd19b2cbc674644cd4678074c2c..44ff8d7c64a5ea2c7f70c41659d9626011953dab 100644 (file)
@@ -954,7 +954,7 @@ static void eth_set_mcast_list(struct net_device *dev)
                return;
        }
 
-       memset(diffs, 0, ETH_ALEN);
+       eth_zero_addr(diffs);
 
        addr = NULL;
        netdev_for_each_mc_addr(ha, dev) {
index 0b8393ca8c80134b444e5d3bf69d3ed58552b644..7c4a4151ef0f23fca16b0fd957769c09dc5823d0 100644 (file)
@@ -247,6 +247,9 @@ static netdev_tx_t sp_xmit(struct sk_buff *skb, struct net_device *dev)
 {
        struct sixpack *sp = netdev_priv(dev);
 
+       if (skb->protocol == htons(ETH_P_IP))
+               return ax25_ip_xmit(skb);
+
        spin_lock_bh(&sp->lock);
        /* We were not busy, so we are now... :-) */
        netif_stop_queue(dev);
@@ -302,7 +305,6 @@ static const struct net_device_ops sp_netdev_ops = {
        .ndo_stop               = sp_close,
        .ndo_start_xmit         = sp_xmit,
        .ndo_set_mac_address    = sp_set_mac_address,
-       .ndo_neigh_construct    = ax25_neigh_construct,
 };
 
 static void sp_setup(struct net_device *dev)
@@ -316,7 +318,6 @@ static void sp_setup(struct net_device *dev)
 
        dev->addr_len           = AX25_ADDR_LEN;
        dev->type               = ARPHRD_AX25;
-       dev->neigh_priv_len     = sizeof(struct ax25_neigh_priv);
        dev->tx_queue_len       = 10;
 
        /* Only activated in AX.25 mode */
index 3539ab392f7dc9af3713a6dfd4ec1e978537f470..83c7cce0d172b205f0b1d96405b6b66eea79ea55 100644 (file)
@@ -772,6 +772,9 @@ static int baycom_send_packet(struct sk_buff *skb, struct net_device *dev)
 {
        struct baycom_state *bc = netdev_priv(dev);
 
+       if (skb->protocol == htons(ETH_P_IP))
+               return ax25_ip_xmit(skb);
+
        if (skb->data[0] != 0) {
                do_kiss_params(bc, skb->data, skb->len);
                dev_kfree_skb(skb);
@@ -1109,7 +1112,6 @@ static const struct net_device_ops baycom_netdev_ops = {
        .ndo_do_ioctl        = baycom_ioctl,
        .ndo_start_xmit      = baycom_send_packet,
        .ndo_set_mac_address = baycom_set_mac_address,
-       .ndo_neigh_construct = ax25_neigh_construct,
 };
 
 /*
@@ -1147,7 +1149,6 @@ static void baycom_probe(struct net_device *dev)
        dev->header_ops = &ax25_header_ops;
        
        dev->type = ARPHRD_AX25;           /* AF_AX25 device */
-       dev->neigh_priv_len = sizeof(struct ax25_neigh_priv);
        dev->hard_header_len = AX25_MAX_HEADER_LEN + AX25_BPQ_HEADER_LEN;
        dev->mtu = AX25_DEF_PACLEN;        /* eth_mtu is the default */
        dev->addr_len = AX25_ADDR_LEN;     /* sizeof an ax.25 address */
index bce105b16ed0771460e1a03205c1bb64b213f2bb..63ff08a26da81b5bafc401fbfeeb710a6b595a64 100644 (file)
@@ -251,6 +251,9 @@ static netdev_tx_t bpq_xmit(struct sk_buff *skb, struct net_device *dev)
        struct net_device *orig_dev;
        int size;
 
+       if (skb->protocol == htons(ETH_P_IP))
+               return ax25_ip_xmit(skb);
+
        /*
         * Just to be *really* sure not to send anything if the interface
         * is down, the ethernet device may have gone.
@@ -469,7 +472,6 @@ static const struct net_device_ops bpq_netdev_ops = {
        .ndo_start_xmit      = bpq_xmit,
        .ndo_set_mac_address = bpq_set_mac_address,
        .ndo_do_ioctl        = bpq_ioctl,
-       .ndo_neigh_construct = ax25_neigh_construct,
 };
 
 static void bpq_setup(struct net_device *dev)
@@ -487,7 +489,6 @@ static void bpq_setup(struct net_device *dev)
 #endif
 
        dev->type            = ARPHRD_AX25;
-       dev->neigh_priv_len  = sizeof(struct ax25_neigh_priv);
        dev->hard_header_len = AX25_MAX_HEADER_LEN + AX25_BPQ_HEADER_LEN;
        dev->mtu             = AX25_DEF_PACLEN;
        dev->addr_len        = AX25_ADDR_LEN;
index abab7be77406387fd8442908bfcbe6989d76d083..c3d37777061631d1c34fb1b1e05f36986bb5f6cc 100644 (file)
@@ -433,7 +433,6 @@ module_exit(dmascc_exit);
 static void __init dev_setup(struct net_device *dev)
 {
        dev->type = ARPHRD_AX25;
-       dev->neigh_priv_len = sizeof(struct ax25_neigh_priv);
        dev->hard_header_len = AX25_MAX_HEADER_LEN;
        dev->mtu = 1500;
        dev->addr_len = AX25_ADDR_LEN;
@@ -448,7 +447,6 @@ static const struct net_device_ops scc_netdev_ops = {
        .ndo_start_xmit = scc_send_packet,
        .ndo_do_ioctl = scc_ioctl,
        .ndo_set_mac_address = scc_set_mac_address,
-       .ndo_neigh_construct = ax25_neigh_construct,
 };
 
 static int __init setup_adapter(int card_base, int type, int n)
@@ -922,6 +920,9 @@ static int scc_send_packet(struct sk_buff *skb, struct net_device *dev)
        unsigned long flags;
        int i;
 
+       if (skb->protocol == htons(ETH_P_IP))
+               return ax25_ip_xmit(skb);
+
        /* Temporarily stop the scheduler feeding us packets */
        netif_stop_queue(dev);
 
index 435868a7b69cdcdde15d05988adb1f66f737fa11..49fe59b180a8619f554d5852202df933fee54871 100644 (file)
@@ -404,6 +404,9 @@ static netdev_tx_t hdlcdrv_send_packet(struct sk_buff *skb,
 {
        struct hdlcdrv_state *sm = netdev_priv(dev);
 
+       if (skb->protocol == htons(ETH_P_IP))
+               return ax25_ip_xmit(skb);
+
        if (skb->data[0] != 0) {
                do_kiss_params(sm, skb->data, skb->len);
                dev_kfree_skb(skb);
@@ -626,7 +629,6 @@ static const struct net_device_ops hdlcdrv_netdev = {
        .ndo_start_xmit = hdlcdrv_send_packet,
        .ndo_do_ioctl   = hdlcdrv_ioctl,
        .ndo_set_mac_address = hdlcdrv_set_mac_address,
-       .ndo_neigh_construct = ax25_neigh_construct,
 };
 
 /*
@@ -677,7 +679,6 @@ static void hdlcdrv_setup(struct net_device *dev)
        dev->header_ops = &ax25_header_ops;
        
        dev->type = ARPHRD_AX25;           /* AF_AX25 device */
-       dev->neigh_priv_len = sizeof(struct ax25_neigh_priv);
        dev->hard_header_len = AX25_MAX_HEADER_LEN + AX25_BPQ_HEADER_LEN;
        dev->mtu = AX25_DEF_PACLEN;        /* eth_mtu is the default */
        dev->addr_len = AX25_ADDR_LEN;     /* sizeof an ax.25 address */
index c12ec2c2b594a79e941ea7a9256c3bc5f8cc8c32..17058c490b7991da485546eb52e9177dc7696efc 100644 (file)
@@ -529,6 +529,9 @@ static netdev_tx_t ax_xmit(struct sk_buff *skb, struct net_device *dev)
 {
        struct mkiss *ax = netdev_priv(dev);
 
+       if (skb->protocol == htons(ETH_P_IP))
+               return ax25_ip_xmit(skb);
+
        if (!netif_running(dev))  {
                printk(KERN_ERR "mkiss: %s: xmit call when iface is down\n", dev->name);
                return NETDEV_TX_BUSY;
@@ -641,7 +644,6 @@ static const struct net_device_ops ax_netdev_ops = {
        .ndo_stop            = ax_close,
        .ndo_start_xmit      = ax_xmit,
        .ndo_set_mac_address = ax_set_mac_address,
-       .ndo_neigh_construct = ax25_neigh_construct,
 };
 
 static void ax_setup(struct net_device *dev)
@@ -651,7 +653,6 @@ static void ax_setup(struct net_device *dev)
        dev->hard_header_len = 0;
        dev->addr_len        = 0;
        dev->type            = ARPHRD_AX25;
-       dev->neigh_priv_len  = sizeof(struct ax25_neigh_priv);
        dev->tx_queue_len    = 10;
        dev->header_ops      = &ax25_header_ops;
        dev->netdev_ops      = &ax_netdev_ops;
index b305f51eb42015316b7943f382165ad36c847408..ce88df33fe17b20237b3f4f2e0c9e1ca7b4b63a3 100644 (file)
@@ -1550,7 +1550,6 @@ static const struct net_device_ops scc_netdev_ops = {
        .ndo_set_mac_address = scc_net_set_mac_address,
        .ndo_get_stats       = scc_net_get_stats,
        .ndo_do_ioctl        = scc_net_ioctl,
-       .ndo_neigh_construct = ax25_neigh_construct,
 };
 
 /* ----> Initialize device <----- */
@@ -1568,7 +1567,6 @@ static void scc_net_setup(struct net_device *dev)
        dev->flags      = 0;
 
        dev->type = ARPHRD_AX25;
-       dev->neigh_priv_len = sizeof(struct ax25_neigh_priv);
        dev->hard_header_len = AX25_MAX_HEADER_LEN + AX25_BPQ_HEADER_LEN;
        dev->mtu = AX25_DEF_PACLEN;
        dev->addr_len = AX25_ADDR_LEN;
@@ -1641,6 +1639,9 @@ static netdev_tx_t scc_net_tx(struct sk_buff *skb, struct net_device *dev)
        unsigned long flags;
        char kisscmd;
 
+       if (skb->protocol == htons(ETH_P_IP))
+               return ax25_ip_xmit(skb);
+
        if (skb->len > scc->stat.bufsize || skb->len < 2) {
                scc->dev_stat.tx_dropped++;     /* bogus frame */
                dev_kfree_skb(skb);
index 89d9da7a0c51eebf7fa4b338d21f8a85119ac3eb..1a4729c36aa49d93f8e536cd98d4731df704621d 100644 (file)
@@ -597,6 +597,9 @@ static netdev_tx_t yam_send_packet(struct sk_buff *skb,
 {
        struct yam_port *yp = netdev_priv(dev);
 
+       if (skb->protocol == htons(ETH_P_IP))
+               return ax25_ip_xmit(skb);
+
        skb_queue_tail(&yp->send_queue, skb);
        dev->trans_start = jiffies;
        return NETDEV_TX_OK;
@@ -1100,7 +1103,6 @@ static const struct net_device_ops yam_netdev_ops = {
        .ndo_start_xmit      = yam_send_packet,
        .ndo_do_ioctl        = yam_ioctl,
        .ndo_set_mac_address = yam_set_mac_address,
-       .ndo_neigh_construct = ax25_neigh_construct,
 };
 
 static void yam_setup(struct net_device *dev)
@@ -1129,7 +1131,6 @@ static void yam_setup(struct net_device *dev)
        dev->header_ops = &ax25_header_ops;
 
        dev->type = ARPHRD_AX25;
-       dev->neigh_priv_len = sizeof(struct ax25_neigh_priv);
        dev->hard_header_len = AX25_MAX_HEADER_LEN;
        dev->mtu = AX25_MTU;
        dev->addr_len = AX25_ADDR_LEN;
index ba2f5e710af12cc7587f0503ea8dc177d2aba4ed..15731d1db918c32f6dc341800155340c0e62a7a2 100644 (file)
@@ -47,6 +47,7 @@
 #include <linux/netpoll.h>
 #include <linux/inet.h>
 #include <linux/configfs.h>
+#include <linux/etherdevice.h>
 
 MODULE_AUTHOR("Maintainer: Matt Mackall <mpm@selenic.com>");
 MODULE_DESCRIPTION("Console driver for network interfaces");
@@ -185,7 +186,7 @@ static struct netconsole_target *alloc_param_target(char *target_config)
        nt->np.local_port = 6665;
        nt->np.remote_port = 6666;
        mutex_init(&nt->mutex);
-       memset(nt->np.remote_mac, 0xff, ETH_ALEN);
+       eth_broadcast_addr(nt->np.remote_mac);
 
        /* Parse parameters and setup netpoll */
        err = netpoll_parse_options(&nt->np, target_config);
@@ -604,7 +605,7 @@ static struct config_item *make_netconsole_target(struct config_group *group,
        nt->np.local_port = 6665;
        nt->np.remote_port = 6666;
        mutex_init(&nt->mutex);
-       memset(nt->np.remote_mac, 0xff, ETH_ALEN);
+       eth_broadcast_addr(nt->np.remote_mac);
 
        /* Initialize the config_item member */
        config_item_init_type_name(&nt->item, name, &netconsole_target_type);
index 8cfc3bb0c6a672a288784ab0dd5f09597265c39d..4e2b26a88b15f03ba8302d5d7a83d1a5b1a4d4ea 100644 (file)
@@ -641,7 +641,7 @@ static void catc_set_multicast_list(struct net_device *netdev)
        u8 broadcast[ETH_ALEN];
        u8 rx = RxEnable | RxPolarity | RxMultiCast;
 
-       memset(broadcast, 0xff, ETH_ALEN);
+       eth_broadcast_addr(broadcast);
        memset(catc->multicast, 0, 64);
 
        catc_multicast(broadcast, catc->multicast);
@@ -880,7 +880,7 @@ static int catc_probe(struct usb_interface *intf, const struct usb_device_id *id
                
                dev_dbg(dev, "Filling the multicast list.\n");
          
-               memset(broadcast, 0xff, ETH_ALEN);
+               eth_broadcast_addr(broadcast);
                catc_multicast(broadcast, catc->multicast);
                catc_multicast(netdev->dev_addr, catc->multicast);
                catc_write_mem(catc, 0xfa80, catc->multicast, 64);
index 96fc8a5bde8416a471ed4cd07e657025bc222fab..e4b7a47a825c7f686e48992b23d3f1ee30555d71 100644 (file)
@@ -394,7 +394,7 @@ static struct sk_buff *cdc_mbim_process_dgram(struct usbnet *dev, u8 *buf, size_
        skb_put(skb, ETH_HLEN);
        skb_reset_mac_header(skb);
        eth_hdr(skb)->h_proto = proto;
-       memset(eth_hdr(skb)->h_source, 0, ETH_ALEN);
+       eth_zero_addr(eth_hdr(skb)->h_source);
        memcpy(eth_hdr(skb)->h_dest, dev->net->dev_addr, ETH_ALEN);
 
        /* add datagram */
index 8f37efd2d2fbb3ec05fcde896b8b9e88136c2f35..5714107533bb4292b94c85d064726ac4f89f496b 100644 (file)
@@ -201,7 +201,7 @@ static int vl600_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
                                        &buf->data[sizeof(*ethhdr) + 0x12],
                                        ETH_ALEN);
                } else {
-                       memset(ethhdr->h_source, 0, ETH_ALEN);
+                       eth_zero_addr(ethhdr->h_source);
                        memcpy(ethhdr->h_dest, dev->net->dev_addr, ETH_ALEN);
 
                        /* Inbound IPv6 packets have an IPv4 ethertype (0x800)
index 602dc6668c3af7ce9f6cc4ddd61437ba2f6adf29..f603f362504bce0c1cb2656e1d29232eb05db846 100644 (file)
@@ -108,7 +108,7 @@ static int qmi_wwan_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
        skb_push(skb, ETH_HLEN);
        skb_reset_mac_header(skb);
        eth_hdr(skb)->h_proto = proto;
-       memset(eth_hdr(skb)->h_source, 0, ETH_ALEN);
+       eth_zero_addr(eth_hdr(skb)->h_source);
 fix_dest:
        memcpy(eth_hdr(skb)->h_dest, dev->net->dev_addr, ETH_ALEN);
        return 1;
index e71a2ce7a4487a5386331e26023e5538512f14bd..627443283e1d7ab9022cda91c4acd07deff6f84f 100644 (file)
@@ -2676,7 +2676,7 @@ static void wifi_setup(struct net_device *dev)
        dev->addr_len           = ETH_ALEN;
        dev->tx_queue_len       = 100; 
 
-       memset(dev->broadcast,0xFF, ETH_ALEN);
+       eth_broadcast_addr(dev->broadcast);
 
        dev->flags              = IFF_BROADCAST|IFF_MULTICAST;
 }
@@ -3273,7 +3273,7 @@ static void airo_handle_link(struct airo_info *ai)
                }
 
                /* Send event to user space */
-               memset(wrqu.ap_addr.sa_data, '\0', ETH_ALEN);
+               eth_zero_addr(wrqu.ap_addr.sa_data);
                wrqu.ap_addr.sa_family = ARPHRD_ETHER;
                wireless_send_event(ai->dev, SIOCGIWAP, &wrqu, NULL);
        }
index da92bfa76b7cf1d37e9ea819edf00c59d84e350b..49219c5089639574a471be4befa951da71e620c3 100644 (file)
@@ -1166,7 +1166,7 @@ static int at76_start_monitor(struct at76_priv *priv)
        int ret;
 
        memset(&scan, 0, sizeof(struct at76_req_scan));
-       memset(scan.bssid, 0xff, ETH_ALEN);
+       eth_broadcast_addr(scan.bssid);
 
        scan.channel = priv->channel;
        scan.scan_type = SCAN_TYPE_PASSIVE;
@@ -1427,7 +1427,7 @@ static int at76_startup_device(struct at76_priv *priv)
        at76_wait_completion(priv, CMD_STARTUP);
 
        /* remove BSSID from previous run */
-       memset(priv->bssid, 0, ETH_ALEN);
+       eth_zero_addr(priv->bssid);
 
        priv->scanning = false;
 
@@ -1973,7 +1973,7 @@ static int at76_hw_scan(struct ieee80211_hw *hw,
        ieee80211_stop_queues(hw);
 
        memset(&scan, 0, sizeof(struct at76_req_scan));
-       memset(scan.bssid, 0xFF, ETH_ALEN);
+       eth_broadcast_addr(scan.bssid);
 
        if (req->n_ssids) {
                scan.scan_type = SCAN_TYPE_ACTIVE;
index d6d2f0f00caad18ec00ba69f5635c79f161b2ba7..6c364bb989241f555963f5898ef1f001d2fa7cfd 100644 (file)
@@ -1182,7 +1182,7 @@ static void ath10k_control_ibss(struct ath10k_vif *arvif,
                if (is_zero_ether_addr(arvif->bssid))
                        return;
 
-               memset(arvif->bssid, 0, ETH_ALEN);
+               eth_zero_addr(arvif->bssid);
 
                return;
        }
index bc9cb356fa697fd67efcb186f7e28e890bbe3287..57a80e89822d7b36ffce951c98e9f12d158942cb 100644 (file)
@@ -528,7 +528,7 @@ ath5k_update_bssid_mask_and_opmode(struct ath5k_hw *ah,
         * together with the BSSID mask when matching addresses.
         */
        iter_data.hw_macaddr = common->macaddr;
-       memset(&iter_data.mask, 0xff, ETH_ALEN);
+       eth_broadcast_addr(iter_data.mask);
        iter_data.found_active = false;
        iter_data.need_set_hw_addr = true;
        iter_data.opmode = NL80211_IFTYPE_UNSPECIFIED;
index 85da63a67faf56f35f92615f3bae5cda67504c4d..e2978037d8588c3cb58e6dc48bd7968da0263a46 100644 (file)
@@ -2033,7 +2033,7 @@ static int ath6kl_wow_sta(struct ath6kl *ar, struct ath6kl_vif *vif)
        int ret;
 
        /* Setup unicast pkt pattern */
-       memset(mac_mask, 0xff, ETH_ALEN);
+       eth_broadcast_addr(mac_mask);
        ret = ath6kl_wmi_add_wow_pattern_cmd(ar->wmi,
                                vif->fw_vif_idx, WOW_LIST_ID,
                                ETH_ALEN, 0, ndev->dev_addr,
index b42ba46b50307d09e9972150297e7df0a7eb5c8e..1af3fed5a72caa203e9cbda00f677905ef966863 100644 (file)
@@ -105,7 +105,7 @@ static void ath6kl_sta_cleanup(struct ath6kl *ar, u8 i)
 
        memset(&ar->ap_stats.sta[sta->aid - 1], 0,
               sizeof(struct wmi_per_sta_stat));
-       memset(sta->mac, 0, ETH_ALEN);
+       eth_zero_addr(sta->mac);
        memset(sta->wpa_ie, 0, ATH6KL_MAX_IE);
        sta->aid = 0;
        sta->sta_flags = 0;
index 92d5a6c5a2253b6fbc54e2ad4cb79d15b7b0e45b..564923c0df87cdad5226da74a0d9e575cc66bfd4 100644 (file)
@@ -149,7 +149,7 @@ static void ath9k_htc_set_mac_bssid_mask(struct ath9k_htc_priv *priv,
         * when matching addresses.
         */
        iter_data.hw_macaddr = NULL;
-       memset(&iter_data.mask, 0xff, ETH_ALEN);
+       eth_broadcast_addr(iter_data.mask);
 
        if (vif)
                ath9k_htc_bssid_iter(&iter_data, vif->addr, vif);
index 9ede991b8d767cfd2268a9137dcaa57d171af174..93ed99a72542da796d85ad4cfc55d975fd7e1e2d 100644 (file)
@@ -994,7 +994,7 @@ void ath9k_calculate_iter_data(struct ath_softc *sc,
         * BSSID mask when matching addresses.
         */
        memset(iter_data, 0, sizeof(*iter_data));
-       memset(&iter_data->mask, 0xff, ETH_ALEN);
+       eth_broadcast_addr(iter_data->mask);
        iter_data->slottime = ATH9K_SLOT_TIME_9;
 
        list_for_each_entry(avp, &ctx->vifs, list)
@@ -1139,7 +1139,7 @@ void ath9k_calculate_summary_state(struct ath_softc *sc,
                        ctx->primary_sta = iter_data.primary_sta;
                } else {
                        ctx->primary_sta = NULL;
-                       memset(common->curbssid, 0, ETH_ALEN);
+                       eth_zero_addr(common->curbssid);
                        common->curaid = 0;
                        ath9k_hw_write_associd(sc->sc_ah);
                        if (ath9k_hw_mci_is_enabled(sc->sc_ah))
index 55db9f03eb2a3f25d702f88b7bde5b7d16b64441..6a1f03c271c1c04074ec76fcad031f5bce954382 100644 (file)
@@ -1004,7 +1004,7 @@ static void frag_rx_path(struct atmel_private *priv,
                        atmel_copy_to_host(priv->dev, (void *)&netcrc, rx_packet_loc + msdu_size, 4);
                        if ((crc ^ 0xffffffff) != netcrc) {
                                priv->dev->stats.rx_crc_errors++;
-                               memset(priv->frag_source, 0xff, ETH_ALEN);
+                               eth_broadcast_addr(priv->frag_source);
                        }
                }
 
@@ -1022,7 +1022,7 @@ static void frag_rx_path(struct atmel_private *priv,
                        atmel_copy_to_host(priv->dev, (void *)&netcrc, rx_packet_loc + msdu_size, 4);
                        if ((crc ^ 0xffffffff) != netcrc) {
                                priv->dev->stats.rx_crc_errors++;
-                               memset(priv->frag_source, 0xff, ETH_ALEN);
+                               eth_broadcast_addr(priv->frag_source);
                                more_frags = 1; /* don't send broken assembly */
                        }
                }
@@ -1031,7 +1031,7 @@ static void frag_rx_path(struct atmel_private *priv,
                priv->frag_no++;
 
                if (!more_frags) { /* last one */
-                       memset(priv->frag_source, 0xff, ETH_ALEN);
+                       eth_broadcast_addr(priv->frag_source);
                        if (!(skb = dev_alloc_skb(priv->frag_len + 14))) {
                                priv->dev->stats.rx_dropped++;
                        } else {
@@ -1127,7 +1127,7 @@ static void rx_done_irq(struct atmel_private *priv)
                        atmel_copy_to_host(priv->dev, (unsigned char *)&priv->rx_buf, rx_packet_loc + 24, msdu_size);
 
                        /* we use the same buffer for frag reassembly and control packets */
-                       memset(priv->frag_source, 0xff, ETH_ALEN);
+                       eth_broadcast_addr(priv->frag_source);
 
                        if (priv->do_rx_crc) {
                                /* last 4 octets is crc */
@@ -1379,7 +1379,7 @@ static int atmel_close(struct net_device *dev)
                wrqu.data.length = 0;
                wrqu.data.flags = 0;
                wrqu.ap_addr.sa_family = ARPHRD_ETHER;
-               memset(wrqu.ap_addr.sa_data, 0, ETH_ALEN);
+               eth_zero_addr(wrqu.ap_addr.sa_data);
                wireless_send_event(priv->dev, SIOCGIWAP, &wrqu, NULL);
        }
 
@@ -1555,7 +1555,7 @@ struct net_device *init_atmel_card(unsigned short irq, unsigned long port,
        priv->last_qual = jiffies;
        priv->last_beacon_timestamp = 0;
        memset(priv->frag_source, 0xff, sizeof(priv->frag_source));
-       memset(priv->BSSID, 0, ETH_ALEN);
+       eth_zero_addr(priv->BSSID);
        priv->CurrentBSSID[0] = 0xFF; /* Initialize to something invalid.... */
        priv->station_was_associated = 0;
 
@@ -2760,7 +2760,7 @@ static void atmel_scan(struct atmel_private *priv, int specific_ssid)
                u8 SSID_size;
        } cmd;
 
-       memset(cmd.BSSID, 0xff, ETH_ALEN);
+       eth_broadcast_addr(cmd.BSSID);
 
        if (priv->fast_scan) {
                cmd.SSID_size = priv->SSID_size;
@@ -4049,7 +4049,7 @@ static int reset_atmel_card(struct net_device *dev)
                wrqu.data.length = 0;
                wrqu.data.flags = 0;
                wrqu.ap_addr.sa_family = ARPHRD_ETHER;
-               memset(wrqu.ap_addr.sa_data, 0, ETH_ALEN);
+               eth_zero_addr(wrqu.ap_addr.sa_data);
                wireless_send_event(priv->dev, SIOCGIWAP, &wrqu, NULL);
        }
 
index ccbdb05b28cd7e2dc457afe9443e35ac2ca3fc21..31c7e4d41a9ab6d7439e45940ebb859dae7ae157 100644 (file)
@@ -4132,7 +4132,7 @@ static void b43_op_bss_info_changed(struct ieee80211_hw *hw,
                if (conf->bssid)
                        memcpy(wl->bssid, conf->bssid, ETH_ALEN);
                else
-                       memset(wl->bssid, 0, ETH_ALEN);
+                       eth_zero_addr(wl->bssid);
        }
 
        if (b43_status(dev) >= B43_STAT_INITIALIZED) {
@@ -5051,7 +5051,7 @@ static void b43_op_remove_interface(struct ieee80211_hw *hw,
        wl->operating = false;
 
        b43_adjust_opmode(dev);
-       memset(wl->mac_addr, 0, ETH_ALEN);
+       eth_zero_addr(wl->mac_addr);
        b43_upload_card_macaddress(dev);
 
        mutex_unlock(&wl->mutex);
@@ -5067,8 +5067,8 @@ static int b43_op_start(struct ieee80211_hw *hw)
        /* Kill all old instance specific information to make sure
         * the card won't use it in the short timeframe between start
         * and mac80211 reconfiguring it. */
-       memset(wl->bssid, 0, ETH_ALEN);
-       memset(wl->mac_addr, 0, ETH_ALEN);
+       eth_zero_addr(wl->bssid);
+       eth_zero_addr(wl->mac_addr);
        wl->filter_flags = 0;
        wl->radiotap_enabled = false;
        b43_qos_clear(wl);
index 4e58c0069830b698b0689203172a9a8f4d458e4b..c77b7f59505cc2eb95c13219e04b18862e42ae72 100644 (file)
@@ -2866,7 +2866,7 @@ static void b43legacy_op_bss_info_changed(struct ieee80211_hw *hw,
                if (conf->bssid)
                        memcpy(wl->bssid, conf->bssid, ETH_ALEN);
                else
-                       memset(wl->bssid, 0, ETH_ALEN);
+                       eth_zero_addr(wl->bssid);
        }
 
        if (b43legacy_status(dev) >= B43legacy_STAT_INITIALIZED) {
@@ -3470,7 +3470,7 @@ static void b43legacy_op_remove_interface(struct ieee80211_hw *hw,
 
        spin_lock_irqsave(&wl->irq_lock, flags);
        b43legacy_adjust_opmode(dev);
-       memset(wl->mac_addr, 0, ETH_ALEN);
+       eth_zero_addr(wl->mac_addr);
        b43legacy_upload_card_macaddress(dev);
        spin_unlock_irqrestore(&wl->irq_lock, flags);
 
@@ -3487,8 +3487,8 @@ static int b43legacy_op_start(struct ieee80211_hw *hw)
        /* Kill all old instance specific information to make sure
         * the card won't use it in the short timeframe between start
         * and mac80211 reconfiguring it. */
-       memset(wl->bssid, 0, ETH_ALEN);
-       memset(wl->mac_addr, 0, ETH_ALEN);
+       eth_zero_addr(wl->bssid);
+       eth_zero_addr(wl->mac_addr);
        wl->filter_flags = 0;
        wl->beacon0_uploaded = false;
        wl->beacon1_uploaded = false;
index b59b8c6c42abeb1e17834b1dcd9af4a51b354b4e..06727a61b438f19dc551f442f16d082f2deb9a19 100644 (file)
@@ -700,7 +700,7 @@ s32 brcmf_notify_escan_complete(struct brcmf_cfg80211_info *cfg,
                /* Do a scan abort to stop the driver's scan engine */
                brcmf_dbg(SCAN, "ABORT scan in firmware\n");
                memset(&params_le, 0, sizeof(params_le));
-               memset(params_le.bssid, 0xFF, ETH_ALEN);
+               eth_broadcast_addr(params_le.bssid);
                params_le.bss_type = DOT11_BSSTYPE_ANY;
                params_le.scan_type = 0;
                params_le.channel_num = cpu_to_le32(1);
@@ -866,7 +866,7 @@ static void brcmf_escan_prep(struct brcmf_cfg80211_info *cfg,
        char *ptr;
        struct brcmf_ssid_le ssid_le;
 
-       memset(params_le->bssid, 0xFF, ETH_ALEN);
+       eth_broadcast_addr(params_le->bssid);
        params_le->bss_type = DOT11_BSSTYPE_ANY;
        params_le->scan_type = 0;
        params_le->channel_num = 0;
@@ -1375,8 +1375,8 @@ brcmf_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *ndev,
                                   BRCMF_ASSOC_PARAMS_FIXED_SIZE;
                memcpy(profile->bssid, params->bssid, ETH_ALEN);
        } else {
-               memset(join_params.params_le.bssid, 0xFF, ETH_ALEN);
-               memset(profile->bssid, 0, ETH_ALEN);
+               eth_broadcast_addr(join_params.params_le.bssid);
+               eth_zero_addr(profile->bssid);
        }
 
        /* Channel */
@@ -1850,7 +1850,7 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev,
        if (sme->bssid)
                memcpy(&ext_join_params->assoc_le.bssid, sme->bssid, ETH_ALEN);
        else
-               memset(&ext_join_params->assoc_le.bssid, 0xFF, ETH_ALEN);
+               eth_broadcast_addr(ext_join_params->assoc_le.bssid);
 
        if (cfg->channel) {
                ext_join_params->assoc_le.chanspec_num = cpu_to_le32(1);
@@ -1895,7 +1895,7 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev,
        if (sme->bssid)
                memcpy(join_params.params_le.bssid, sme->bssid, ETH_ALEN);
        else
-               memset(join_params.params_le.bssid, 0xFF, ETH_ALEN);
+               eth_broadcast_addr(join_params.params_le.bssid);
 
        if (cfg->channel) {
                join_params.params_le.chanspec_list[0] = cpu_to_le16(chanspec);
index 910fbb561469e80b46147f8c18cbb14f3cd85e14..eb1325371d3a3aa9eba03e5ba83e65135f218f4e 100644 (file)
@@ -236,7 +236,7 @@ void brcmf_flowring_delete(struct brcmf_flowring *flow, u8 flowid)
        brcmf_flowring_block(flow, flowid, false);
        hash_idx = ring->hash_id;
        flow->hash[hash_idx].ifidx = BRCMF_FLOWRING_INVALID_IFIDX;
-       memset(flow->hash[hash_idx].mac, 0, ETH_ALEN);
+       eth_zero_addr(flow->hash[hash_idx].mac);
        flow->rings[flowid] = NULL;
 
        skb = skb_dequeue(&ring->skblist);
index effb48ebd86450c41d7a3a4d46b85df4f049b946..98d82ec52de1d571af8f5645e7f2d266c6d09dc8 100644 (file)
@@ -697,7 +697,7 @@ static s32 brcmf_p2p_escan(struct brcmf_p2p_info *p2p, u32 num_chans,
        else
                sparams->scan_type = 1;
 
-       memset(&sparams->bssid, 0xFF, ETH_ALEN);
+       eth_broadcast_addr(sparams->bssid);
        if (ssid.SSID_len)
                memcpy(sparams->ssid_le.SSID, ssid.SSID, ssid.SSID_len);
        sparams->ssid_le.SSID_len = cpu_to_le32(ssid.SSID_len);
index 4a47c7f8a246dac5c2fd3770163341adbeeec73b..89bc18cd6700176406a090ea4ff1047546470e82 100644 (file)
@@ -293,7 +293,7 @@ void cw1200_remove_interface(struct ieee80211_hw *dev,
        }
        priv->vif = NULL;
        priv->mode = NL80211_IFTYPE_MONITOR;
-       memset(priv->mac_addr, 0, ETH_ALEN);
+       eth_zero_addr(priv->mac_addr);
        memset(&priv->p2p_ps_modeinfo, 0, sizeof(priv->p2p_ps_modeinfo));
        cw1200_free_keys(priv);
        cw1200_setup_mac(priv);
index 0bd541175ecda7d9277e4abd33b6b6b4148bdd8c..d28bd49cb5fd16132623630542788b448b2e8542 100644 (file)
@@ -1429,7 +1429,7 @@ void cw1200_link_id_gc_work(struct work_struct *work)
                                priv->link_id_map &= ~mask;
                                priv->sta_asleep_mask &= ~mask;
                                priv->pspoll_mask &= ~mask;
-                               memset(map_link.mac_addr, 0, ETH_ALEN);
+                               eth_zero_addr(map_link.mac_addr);
                                spin_unlock_bh(&priv->ps_state_lock);
                                reset.link_id = i + 1;
                                wsm_reset(priv, &reset);
index 8bde776894695effab540ae5ee7e0f2e3abee691..055e11d353caf4c679688f45c35e8f02de4bce42 100644 (file)
@@ -174,8 +174,8 @@ netdev_tx_t hostap_data_start_xmit(struct sk_buff *skb,
                /* send broadcast and multicast frames to broadcast RA, if
                 * configured; otherwise, use unicast RA of the WDS link */
                if ((local->wds_type & HOSTAP_WDS_BROADCAST_RA) &&
-                   skb->data[0] & 0x01)
-                       memset(&hdr.addr1, 0xff, ETH_ALEN);
+                   is_multicast_ether_addr(skb->data))
+                       eth_broadcast_addr(hdr.addr1);
                else if (iface->type == HOSTAP_INTERFACE_WDS)
                        memcpy(&hdr.addr1, iface->u.wds.remote_addr,
                               ETH_ALEN);
index fd8d83dd4f62ab09b22126c4b330af1ef9b571d9..c995ace153ee6ecd53dff68145543889f6bbb424 100644 (file)
@@ -309,7 +309,7 @@ void hostap_deauth_all_stas(struct net_device *dev, struct ap_data *ap,
        int i;
 
        PDEBUG(DEBUG_AP, "%s: Deauthenticate all stations\n", dev->name);
-       memset(addr, 0xff, ETH_ALEN);
+       eth_broadcast_addr(addr);
 
        resp = cpu_to_le16(WLAN_REASON_PREV_AUTH_NOT_VALID);
 
@@ -1015,8 +1015,8 @@ static void prism2_send_mgmt(struct net_device *dev,
                memcpy(hdr->addr3, dev->dev_addr, ETH_ALEN); /* SA */
        } else if (ieee80211_is_ctl(hdr->frame_control)) {
                /* control:ACK does not have addr2 or addr3 */
-               memset(hdr->addr2, 0, ETH_ALEN);
-               memset(hdr->addr3, 0, ETH_ALEN);
+               eth_zero_addr(hdr->addr2);
+               eth_zero_addr(hdr->addr3);
        } else {
                memcpy(hdr->addr2, dev->dev_addr, ETH_ALEN); /* SA */
                memcpy(hdr->addr3, dev->dev_addr, ETH_ALEN); /* BSSID */
@@ -1601,7 +1601,7 @@ static void handle_assoc(local_info_t *local, struct sk_buff *skb,
                memcpy(prev_ap, pos, ETH_ALEN);
                pos++; pos++; pos++; left -= 6;
        } else
-               memset(prev_ap, 0, ETH_ALEN);
+               eth_zero_addr(prev_ap);
 
        if (left >= 2) {
                unsigned int ileft;
index de7c4ffec3096b07ccaece961666b0bdde51ea27..7635ac4f6679625962d3003b6996c93c481b070f 100644 (file)
@@ -442,7 +442,7 @@ static void handle_info_queue_linkstatus(local_info_t *local)
        } else {
                netif_carrier_off(local->dev);
                netif_carrier_off(local->ddev);
-               memset(wrqu.ap_addr.sa_data, 0, ETH_ALEN);
+               eth_zero_addr(wrqu.ap_addr.sa_data);
        }
        wrqu.ap_addr.sa_family = ARPHRD_ETHER;
 
index 8f9f3e9fbfce1bdb818b9d4ea5b1c1fa6edc0969..01de1a3bf94ef0965d03dfd9c6a23d5fd2f744b6 100644 (file)
@@ -224,7 +224,7 @@ int prism2_wds_del(local_info_t *local, u8 *remote_addr,
 
        if (selected) {
                if (do_not_remove)
-                       memset(selected->u.wds.remote_addr, 0, ETH_ALEN);
+                       eth_zero_addr(selected->u.wds.remote_addr);
                else {
                        hostap_remove_interface(selected->dev, rtnl_locked, 0);
                        local->wds_connections--;
@@ -1087,7 +1087,7 @@ int prism2_sta_deauth(local_info_t *local, u16 reason)
 
        ret = prism2_sta_send_mgmt(local, local->bssid, IEEE80211_STYPE_DEAUTH,
                                   (u8 *) &val, 2);
-       memset(wrqu.ap_addr.sa_data, 0, ETH_ALEN);
+       eth_zero_addr(wrqu.ap_addr.sa_data);
        wireless_send_event(local->dev, SIOCGIWAP, &wrqu, NULL);
        return ret;
 }
index 57904015380f05f28f5b555a8322caef59ab699d..ca25283e1c9201b566b09fcbe02a8aaa6c9c1811 100644 (file)
@@ -4,6 +4,7 @@
 #include <linux/interrupt.h>
 #include <linux/wireless.h>
 #include <linux/netdevice.h>
+#include <linux/etherdevice.h>
 #include <linux/mutex.h>
 #include <net/iw_handler.h>
 #include <net/ieee80211_radiotap.h>
@@ -85,16 +86,16 @@ struct hfa384x_rx_frame {
        /* 802.11 */
        __le16 frame_control;
        __le16 duration_id;
-       u8 addr1[6];
-       u8 addr2[6];
-       u8 addr3[6];
+       u8 addr1[ETH_ALEN];
+       u8 addr2[ETH_ALEN];
+       u8 addr3[ETH_ALEN];
        __le16 seq_ctrl;
-       u8 addr4[6];
+       u8 addr4[ETH_ALEN];
        __le16 data_len;
 
        /* 802.3 */
-       u8 dst_addr[6];
-       u8 src_addr[6];
+       u8 dst_addr[ETH_ALEN];
+       u8 src_addr[ETH_ALEN];
        __be16 len;
 
        /* followed by frame data; max 2304 bytes */
@@ -114,16 +115,16 @@ struct hfa384x_tx_frame {
        /* 802.11 */
        __le16 frame_control; /* parts not used */
        __le16 duration_id;
-       u8 addr1[6];
-       u8 addr2[6]; /* filled by firmware */
-       u8 addr3[6];
+       u8 addr1[ETH_ALEN];
+       u8 addr2[ETH_ALEN]; /* filled by firmware */
+       u8 addr3[ETH_ALEN];
        __le16 seq_ctrl; /* filled by firmware */
-       u8 addr4[6];
+       u8 addr4[ETH_ALEN];
        __le16 data_len;
 
        /* 802.3 */
-       u8 dst_addr[6];
-       u8 src_addr[6];
+       u8 dst_addr[ETH_ALEN];
+       u8 src_addr[ETH_ALEN];
        __be16 len;
 
        /* followed by frame data; max 2304 bytes */
@@ -156,7 +157,7 @@ struct hfa384x_hostscan_request {
 } __packed;
 
 struct hfa384x_join_request {
-       u8 bssid[6];
+       u8 bssid[ETH_ALEN];
        __le16 channel;
 } __packed;
 
@@ -228,7 +229,7 @@ struct hfa384x_scan_result {
        __le16 chid;
        __le16 anl;
        __le16 sl;
-       u8 bssid[6];
+       u8 bssid[ETH_ALEN];
        __le16 beacon_interval;
        __le16 capability;
        __le16 ssid_len;
@@ -241,7 +242,7 @@ struct hfa384x_hostscan_result {
        __le16 chid;
        __le16 anl;
        __le16 sl;
-       u8 bssid[6];
+       u8 bssid[ETH_ALEN];
        __le16 beacon_interval;
        __le16 capability;
        __le16 ssid_len;
@@ -824,7 +825,7 @@ struct local_info {
 #define PRISM2_INFO_PENDING_SCANRESULTS 1
        int prev_link_status; /* previous received LinkStatus info */
        int prev_linkstatus_connected;
-       u8 preferred_ap[6]; /* use this AP if possible */
+       u8 preferred_ap[ETH_ALEN]; /* use this AP if possible */
 
 #ifdef PRISM2_CALLBACK
        void *callback_data; /* Can be used in callbacks; e.g., allocate
index 6fabea0309dd9a208d82be0451e07d24af45ab16..08eb229e7816010f11e702d679cb178b213362d2 100644 (file)
@@ -2147,8 +2147,8 @@ static void isr_indicate_association_lost(struct ipw2100_priv *priv, u32 status)
                return;
        }
 
-       memset(priv->bssid, 0, ETH_ALEN);
-       memset(priv->ieee->bssid, 0, ETH_ALEN);
+       eth_zero_addr(priv->bssid);
+       eth_zero_addr(priv->ieee->bssid);
 
        netif_carrier_off(priv->net_dev);
        netif_stop_queue(priv->net_dev);
@@ -6956,7 +6956,7 @@ static int ipw2100_wx_get_wap(struct net_device *dev,
                wrqu->ap_addr.sa_family = ARPHRD_ETHER;
                memcpy(wrqu->ap_addr.sa_data, priv->bssid, ETH_ALEN);
        } else
-               memset(wrqu->ap_addr.sa_data, 0, ETH_ALEN);
+               eth_zero_addr(wrqu->ap_addr.sa_data);
 
        IPW_DEBUG_WX("Getting WAP BSSID: %pM\n", wrqu->ap_addr.sa_data);
        return 0;
@@ -8300,7 +8300,7 @@ static void ipw2100_wx_event_work(struct work_struct *work)
            priv->status & STATUS_RF_KILL_MASK ||
            ipw2100_get_ordinal(priv, IPW_ORD_STAT_ASSN_AP_BSSID,
                                &priv->bssid, &len)) {
-               memset(wrqu.ap_addr.sa_data, 0, ETH_ALEN);
+               eth_zero_addr(wrqu.ap_addr.sa_data);
        } else {
                /* We now have the BSSID, so can finish setting to the full
                 * associated state */
index 67cad9b05ad821fc720da095aced2a9fe72202b8..39f3e6f5cbcd230a49145d0bf0f589cc85d4abb7 100644 (file)
@@ -1964,7 +1964,7 @@ static void notify_wx_assoc_event(struct ipw_priv *priv)
        if (priv->status & STATUS_ASSOCIATED)
                memcpy(wrqu.ap_addr.sa_data, priv->bssid, ETH_ALEN);
        else
-               memset(wrqu.ap_addr.sa_data, 0, ETH_ALEN);
+               eth_zero_addr(wrqu.ap_addr.sa_data);
        wireless_send_event(priv->net_dev, SIOCGIWAP, &wrqu, NULL);
 }
 
@@ -7400,7 +7400,7 @@ static int ipw_associate_network(struct ipw_priv *priv,
        memcpy(priv->assoc_request.bssid, network->bssid, ETH_ALEN);
 
        if (priv->ieee->iw_mode == IW_MODE_ADHOC) {
-               memset(&priv->assoc_request.dest, 0xFF, ETH_ALEN);
+               eth_broadcast_addr(priv->assoc_request.dest);
                priv->assoc_request.atim_window = cpu_to_le16(network->atim_window);
        } else {
                memcpy(priv->assoc_request.dest, network->bssid, ETH_ALEN);
@@ -8986,7 +8986,7 @@ static int ipw_wx_get_wap(struct net_device *dev,
                wrqu->ap_addr.sa_family = ARPHRD_ETHER;
                memcpy(wrqu->ap_addr.sa_data, priv->bssid, ETH_ALEN);
        } else
-               memset(wrqu->ap_addr.sa_data, 0, ETH_ALEN);
+               eth_zero_addr(wrqu->ap_addr.sa_data);
 
        IPW_DEBUG_WX("Getting WAP BSSID: %pM\n",
                     wrqu->ap_addr.sa_data);
index 2c4fa49686ef1fdfad904b6450efff7151b18f18..887114582583b2e477cdad704b99f3a6e64bc742 100644 (file)
@@ -4634,7 +4634,7 @@ il_mac_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
        il->vif = NULL;
        il->iw_mode = NL80211_IFTYPE_UNSPECIFIED;
        il_teardown_interface(il, vif);
-       memset(il->bssid, 0, ETH_ALEN);
+       eth_zero_addr(il->bssid);
 
        D_MAC80211("leave\n");
        mutex_unlock(&il->mutex);
index 2620dd0c45f9638c949fd34b7482533b13c33126..33bbdde0046fa29575f7fd72c9e2d1a1af144bd1 100644 (file)
@@ -66,6 +66,7 @@
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/slab.h>
+#include <linux/etherdevice.h>
 
 #include <net/mac80211.h>
 
@@ -491,7 +492,7 @@ void iwl_mvm_power_vif_assoc(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
 
        if (memcmp(vif->bss_conf.bssid, mvmvif->uapsd_misbehaving_bssid,
                   ETH_ALEN))
-               memset(mvmvif->uapsd_misbehaving_bssid, 0, ETH_ALEN);
+               eth_zero_addr(mvmvif->uapsd_misbehaving_bssid);
 }
 
 static void iwl_mvm_power_uapsd_misbehav_ap_iterator(void *_data, u8 *mac,
index 569b64ecc6075f1fa028091b7b319c20fbda01c9..8079560f496581600cb658c4fa09d8e5d1faed81 100644 (file)
@@ -667,7 +667,7 @@ static int lbs_setup_firmware(struct lbs_private *priv)
        lbs_deb_enter(LBS_DEB_FW);
 
        /* Read MAC address from firmware */
-       memset(priv->current_addr, 0xff, ETH_ALEN);
+       eth_broadcast_addr(priv->current_addr);
        ret = lbs_update_hw_spec(priv);
        if (ret)
                goto done;
@@ -871,7 +871,7 @@ static int lbs_init_adapter(struct lbs_private *priv)
 
        lbs_deb_enter(LBS_DEB_MAIN);
 
-       memset(priv->current_addr, 0xff, ETH_ALEN);
+       eth_broadcast_addr(priv->current_addr);
 
        priv->connect_status = LBS_DISCONNECTED;
        priv->channel = DEFAULT_AD_HOC_CHANNEL;
index 25c5acc78bd141c218499eae06d1ed1c33f70e83..ed02e4bf2c26f5cc333d88b89347b89e577779bb 100644 (file)
@@ -152,7 +152,7 @@ static int lbtf_setup_firmware(struct lbtf_private *priv)
        /*
         * Read priv address from HW
         */
-       memset(priv->current_addr, 0xff, ETH_ALEN);
+       eth_broadcast_addr(priv->current_addr);
        ret = lbtf_update_hw_spec(priv);
        if (ret) {
                ret = -1;
@@ -199,7 +199,7 @@ out:
 static int lbtf_init_adapter(struct lbtf_private *priv)
 {
        lbtf_deb_enter(LBTF_DEB_MAIN);
-       memset(priv->current_addr, 0xff, ETH_ALEN);
+       eth_broadcast_addr(priv->current_addr);
        mutex_init(&priv->lock);
 
        priv->vif = NULL;
index 4a4c6586a8d2dcda2b6f49a5b767bcc48304e138..c1947c5915eb535f8d5606bbdfb5f00a192a8fda 100644 (file)
@@ -1908,7 +1908,7 @@ static void mac80211_hwsim_sw_scan_complete(struct ieee80211_hw *hw,
 
        printk(KERN_DEBUG "hwsim sw_scan_complete\n");
        hwsim->scanning = false;
-       memset(hwsim->scan_addr, 0, ETH_ALEN);
+       eth_zero_addr(hwsim->scan_addr);
 
        mutex_unlock(&hwsim->mutex);
 }
@@ -2264,7 +2264,7 @@ static int mac80211_hwsim_new_radio(struct genl_info *info,
        skb_queue_head_init(&data->pending);
 
        SET_IEEE80211_DEV(hw, data->dev);
-       memset(addr, 0, ETH_ALEN);
+       eth_zero_addr(addr);
        addr[0] = 0x02;
        addr[3] = idx >> 8;
        addr[4] = idx;
@@ -2597,7 +2597,7 @@ static void hwsim_mon_setup(struct net_device *dev)
        ether_setup(dev);
        dev->tx_queue_len = 0;
        dev->type = ARPHRD_IEEE80211_RADIOTAP;
-       memset(dev->dev_addr, 0, ETH_ALEN);
+       eth_zero_addr(dev->dev_addr);
        dev->dev_addr[0] = 0x12;
 }
 
index 41c8e25df9544021278a0998c6b89fa3469d4c98..7c3ca2f50186d968db55fe84651568145c4b0295 100644 (file)
@@ -1563,7 +1563,7 @@ mwifiex_cfg80211_del_station(struct wiphy *wiphy, struct net_device *dev,
 
        wiphy_dbg(wiphy, "%s: mac address %pM\n", __func__, params->mac);
 
-       memset(deauth_mac, 0, ETH_ALEN);
+       eth_zero_addr(deauth_mac);
 
        spin_lock_irqsave(&priv->sta_list_spinlock, flags);
        sta_node = mwifiex_get_sta_entry(priv, params->mac);
@@ -1786,7 +1786,7 @@ mwifiex_cfg80211_disconnect(struct wiphy *wiphy, struct net_device *dev,
        wiphy_dbg(wiphy, "info: successfully disconnected from %pM:"
                " reason code %d\n", priv->cfg_bssid, reason_code);
 
-       memset(priv->cfg_bssid, 0, ETH_ALEN);
+       eth_zero_addr(priv->cfg_bssid);
        priv->hs2_enabled = false;
 
        return 0;
@@ -2046,7 +2046,7 @@ mwifiex_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev,
                dev_dbg(priv->adapter->dev,
                        "info: association to bssid %pM failed\n",
                        priv->cfg_bssid);
-               memset(priv->cfg_bssid, 0, ETH_ALEN);
+               eth_zero_addr(priv->cfg_bssid);
 
                if (ret > 0)
                        cfg80211_connect_result(priv->netdev, priv->cfg_bssid,
@@ -2194,7 +2194,7 @@ mwifiex_cfg80211_leave_ibss(struct wiphy *wiphy, struct net_device *dev)
        if (mwifiex_deauthenticate(priv, NULL))
                return -EFAULT;
 
-       memset(priv->cfg_bssid, 0, ETH_ALEN);
+       eth_zero_addr(priv->cfg_bssid);
 
        return 0;
 }
index b77ba743e1c498c1bae30b11ae0b571937b971c8..0978b1cc58b699810395f0b5c628ed88a0f94e6f 100644 (file)
@@ -76,7 +76,7 @@ int mwifiex_init_priv(struct mwifiex_private *priv)
        u32 i;
 
        priv->media_connected = false;
-       memset(priv->curr_addr, 0xff, ETH_ALEN);
+       eth_broadcast_addr(priv->curr_addr);
 
        priv->pkt_tx_ctrl = 0;
        priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED;
@@ -299,7 +299,7 @@ static void mwifiex_init_adapter(struct mwifiex_adapter *adapter)
        adapter->ext_scan = false;
        adapter->key_api_major_ver = 0;
        adapter->key_api_minor_ver = 0;
-       memset(adapter->perm_addr, 0xff, ETH_ALEN);
+       eth_broadcast_addr(adapter->perm_addr);
        adapter->iface_limit.sta_intf = MWIFIEX_MAX_STA_NUM;
        adapter->iface_limit.uap_intf = MWIFIEX_MAX_UAP_NUM;
        adapter->iface_limit.p2p_intf = MWIFIEX_MAX_P2P_NUM;
index 80ffe74124969a2410e2a1ce382d0f521f035238..64c4223a1e1ee919783493487f2c449d8c8693bd 100644 (file)
@@ -135,7 +135,7 @@ mwifiex_reset_connect_state(struct mwifiex_private *priv, u16 reason_code)
                cfg80211_disconnected(priv->netdev, reason_code, NULL, 0,
                                      GFP_KERNEL);
        }
-       memset(priv->cfg_bssid, 0, ETH_ALEN);
+       eth_zero_addr(priv->cfg_bssid);
 
        mwifiex_stop_net_dev_queue(priv->netdev, adapter);
        if (netif_carrier_ok(priv->netdev))
index ef717acec8b76f3fc45cd1b210cccd5b3948f7d7..0cd4f6bed9fc4f6535bdb5e8e02578db13d5bb68 100644 (file)
@@ -730,7 +730,7 @@ mwifiex_wmm_add_buf_txqueue(struct mwifiex_private *priv,
        } else {
                memcpy(ra, skb->data, ETH_ALEN);
                if (ra[0] & 0x01 || mwifiex_is_skb_mgmt_frame(skb))
-                       memset(ra, 0xff, ETH_ALEN);
+                       eth_broadcast_addr(ra);
                ra_list = mwifiex_wmm_get_queue_raptr(priv, tid_down, ra);
        }
 
index f9b1218c761a4b7a187c239239365fe077649624..95921167b53f74a8577710a44afcd1f71b06142a 100644 (file)
@@ -1277,7 +1277,7 @@ static inline void mwl8k_save_beacon(struct ieee80211_hw *hw,
        struct mwl8k_priv *priv = hw->priv;
 
        priv->capture_beacon = false;
-       memset(priv->capture_bssid, 0, ETH_ALEN);
+       eth_zero_addr(priv->capture_bssid);
 
        /*
         * Use GFP_ATOMIC as rxq_process is called from
index 6abdaf0aa052253800697eb1631d100683ba2ec7..1d4dae422106c673351439e3f680feeff2adb06b 100644 (file)
@@ -168,7 +168,7 @@ static int orinoco_ioctl_setwap(struct net_device *dev,
        if (is_zero_ether_addr(ap_addr->sa_data) ||
            is_broadcast_ether_addr(ap_addr->sa_data)) {
                priv->bssid_fixed = 0;
-               memset(priv->desired_bssid, 0, ETH_ALEN);
+               eth_zero_addr(priv->desired_bssid);
 
                /* "off" means keep existing connection */
                if (ap_addr->sa_data[0] == 0) {
index 5367d510b22d7862360eaf04b7a994cca701e7b7..275408eaf95e6d54f006b853475229ea105ee9dd 100644 (file)
@@ -671,7 +671,7 @@ int p54_upload_key(struct p54_common *priv, u8 algo, int slot, u8 idx, u8 len,
        if (addr)
                memcpy(rxkey->mac, addr, ETH_ALEN);
        else
-               memset(rxkey->mac, ~0, ETH_ALEN);
+               eth_broadcast_addr(rxkey->mac);
 
        switch (algo) {
        case P54_CRYPTO_WEP:
index b9250d75d2539d827aec114a83e8056faec389aa..e79674f73dc5766cda5bfae2c1762a5aeb98f863 100644 (file)
@@ -182,7 +182,7 @@ static int p54_start(struct ieee80211_hw *dev)
        if (err)
                goto out;
 
-       memset(priv->bssid, ~0, ETH_ALEN);
+       eth_broadcast_addr(priv->bssid);
        priv->mode = NL80211_IFTYPE_MONITOR;
        err = p54_setup_mac(priv);
        if (err) {
@@ -274,8 +274,8 @@ static void p54_remove_interface(struct ieee80211_hw *dev,
                wait_for_completion_interruptible_timeout(&priv->beacon_comp, HZ);
        }
        priv->mode = NL80211_IFTYPE_MONITOR;
-       memset(priv->mac_addr, 0, ETH_ALEN);
-       memset(priv->bssid, 0, ETH_ALEN);
+       eth_zero_addr(priv->mac_addr);
+       eth_zero_addr(priv->bssid);
        p54_setup_mac(priv);
        mutex_unlock(&priv->conf_mutex);
 }
@@ -794,7 +794,7 @@ struct ieee80211_hw *p54_init_common(size_t priv_data_len)
        init_completion(&priv->beacon_comp);
        INIT_DELAYED_WORK(&priv->work, p54_work);
 
-       memset(&priv->mc_maclist[0], ~0, ETH_ALEN);
+       eth_broadcast_addr(priv->mc_maclist[0]);
        priv->curchan = NULL;
        p54_reset_stats(priv);
        return dev;
index 8330fa33e50b1e2f933f813ee187c407184780ae..477f86354dc5a7ff8a324717a16093cd9fc55f81 100644 (file)
@@ -808,7 +808,7 @@ static int ray_dev_init(struct net_device *dev)
 
        /* copy mac and broadcast addresses to linux device */
        memcpy(dev->dev_addr, &local->sparm.b4.a_mac_addr, ADDRLEN);
-       memset(dev->broadcast, 0xff, ETH_ALEN);
+       eth_broadcast_addr(dev->broadcast);
 
        dev_dbg(&link->dev, "ray_dev_init ending\n");
        return 0;
index 60d44ce9c0173b48af894b14264e2f761c34de44..d72ff8e7125d4525d1761c60d3828dba22b63296 100644 (file)
@@ -199,13 +199,13 @@ enum ndis_80211_pmkid_cand_list_flag_bits {
 
 struct ndis_80211_auth_request {
        __le32 length;
-       u8 bssid[6];
+       u8 bssid[ETH_ALEN];
        u8 padding[2];
        __le32 flags;
 } __packed;
 
 struct ndis_80211_pmkid_candidate {
-       u8 bssid[6];
+       u8 bssid[ETH_ALEN];
        u8 padding[2];
        __le32 flags;
 } __packed;
@@ -248,7 +248,7 @@ struct ndis_80211_conf {
 
 struct ndis_80211_bssid_ex {
        __le32 length;
-       u8 mac[6];
+       u8 mac[ETH_ALEN];
        u8 padding[2];
        struct ndis_80211_ssid ssid;
        __le32 privacy;
@@ -283,7 +283,7 @@ struct ndis_80211_key {
        __le32 size;
        __le32 index;
        __le32 length;
-       u8 bssid[6];
+       u8 bssid[ETH_ALEN];
        u8 padding[6];
        u8 rsc[8];
        u8 material[32];
@@ -292,7 +292,7 @@ struct ndis_80211_key {
 struct ndis_80211_remove_key {
        __le32 size;
        __le32 index;
-       u8 bssid[6];
+       u8 bssid[ETH_ALEN];
        u8 padding[2];
 } __packed;
 
@@ -310,7 +310,7 @@ struct ndis_80211_assoc_info {
        struct req_ie {
                __le16 capa;
                __le16 listen_interval;
-               u8 cur_ap_address[6];
+               u8 cur_ap_address[ETH_ALEN];
        } req_ie;
        __le32 req_ie_length;
        __le32 offset_req_ies;
@@ -338,7 +338,7 @@ struct ndis_80211_capability {
 } __packed;
 
 struct ndis_80211_bssid_info {
-       u8 bssid[6];
+       u8 bssid[ETH_ALEN];
        u8 pmkid[16];
 } __packed;
 
@@ -1037,7 +1037,7 @@ static int get_bssid(struct usbnet *usbdev, u8 bssid[ETH_ALEN])
                              bssid, &len);
 
        if (ret != 0)
-               memset(bssid, 0, ETH_ALEN);
+               eth_zero_addr(bssid);
 
        return ret;
 }
@@ -1391,7 +1391,7 @@ static int add_wep_key(struct usbnet *usbdev, const u8 *key, int key_len,
        priv->encr_keys[index].len = key_len;
        priv->encr_keys[index].cipher = cipher;
        memcpy(&priv->encr_keys[index].material, key, key_len);
-       memset(&priv->encr_keys[index].bssid, 0xff, ETH_ALEN);
+       eth_broadcast_addr(priv->encr_keys[index].bssid);
 
        return 0;
 }
@@ -1466,7 +1466,7 @@ static int add_wpa_key(struct usbnet *usbdev, const u8 *key, int key_len,
        } else {
                /* group key */
                if (priv->infra_mode == NDIS_80211_INFRA_ADHOC)
-                       memset(ndis_key.bssid, 0xff, ETH_ALEN);
+                       eth_broadcast_addr(ndis_key.bssid);
                else
                        get_bssid(usbdev, ndis_key.bssid);
        }
@@ -1486,7 +1486,7 @@ static int add_wpa_key(struct usbnet *usbdev, const u8 *key, int key_len,
        if (flags & NDIS_80211_ADDKEY_PAIRWISE_KEY)
                memcpy(&priv->encr_keys[index].bssid, ndis_key.bssid, ETH_ALEN);
        else
-               memset(&priv->encr_keys[index].bssid, 0xff, ETH_ALEN);
+               eth_broadcast_addr(priv->encr_keys[index].bssid);
 
        if (flags & NDIS_80211_ADDKEY_TRANSMIT_KEY)
                priv->encr_tx_key_index = index;
@@ -2280,7 +2280,7 @@ static int rndis_disconnect(struct wiphy *wiphy, struct net_device *dev,
        netdev_dbg(usbdev->net, "cfg80211.disconnect(%d)\n", reason_code);
 
        priv->connected = false;
-       memset(priv->bssid, 0, ETH_ALEN);
+       eth_zero_addr(priv->bssid);
 
        return deauthenticate(usbdev);
 }
@@ -2392,7 +2392,7 @@ static int rndis_leave_ibss(struct wiphy *wiphy, struct net_device *dev)
        netdev_dbg(usbdev->net, "cfg80211.leave_ibss()\n");
 
        priv->connected = false;
-       memset(priv->bssid, 0, ETH_ALEN);
+       eth_zero_addr(priv->bssid);
 
        return deauthenticate(usbdev);
 }
@@ -2857,7 +2857,7 @@ static void rndis_wlan_do_link_down_work(struct usbnet *usbdev)
 
        if (priv->connected) {
                priv->connected = false;
-               memset(priv->bssid, 0, ETH_ALEN);
+               eth_zero_addr(priv->bssid);
 
                deauthenticate(usbdev);
 
index a31a12775f1a0ff114c63e9ee17dfddc31eee273..3b3a88b53b119909112a806ee71ab4d4bfa67a79 100644 (file)
@@ -195,7 +195,7 @@ static void rtl_op_stop(struct ieee80211_hw *hw)
        if (!(support_remote_wakeup &&
              rtlhal->enter_pnp_sleep)) {
                mac->link_state = MAC80211_NOLINK;
-               memset(mac->bssid, 0, 6);
+               eth_zero_addr(mac->bssid);
                mac->vendor = PEER_UNKNOWN;
 
                /* reset sec info */
@@ -357,7 +357,7 @@ static void rtl_op_remove_interface(struct ieee80211_hw *hw,
        mac->p2p = 0;
        mac->vif = NULL;
        mac->link_state = MAC80211_NOLINK;
-       memset(mac->bssid, 0, ETH_ALEN);
+       eth_zero_addr(mac->bssid);
        mac->vendor = PEER_UNKNOWN;
        mac->opmode = NL80211_IFTYPE_UNSPECIFIED;
        rtlpriv->cfg->ops->set_network_type(hw, mac->opmode);
@@ -1157,7 +1157,7 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
                        if (ppsc->p2p_ps_info.p2p_ps_mode > P2P_PS_NONE)
                                rtl_p2p_ps_cmd(hw, P2P_PS_DISABLE);
                        mac->link_state = MAC80211_NOLINK;
-                       memset(mac->bssid, 0, ETH_ALEN);
+                       eth_zero_addr(mac->bssid);
                        mac->vendor = PEER_UNKNOWN;
                        mac->mode = 0;
 
index d4ba009ac9aa62b7d9c24404dda707a132030291..d1e9a13be910b584d5e17394822ba3c1ff2a9ba4 100644 (file)
@@ -468,7 +468,7 @@ static void wl1251_op_stop(struct ieee80211_hw *hw)
        wl1251_tx_flush(wl);
        wl1251_power_off(wl);
 
-       memset(wl->bssid, 0, ETH_ALEN);
+       eth_zero_addr(wl->bssid);
        wl->listen_int = 1;
        wl->bss_type = MAX_BSS_TYPE;
 
@@ -547,7 +547,7 @@ static void wl1251_op_remove_interface(struct ieee80211_hw *hw,
        mutex_lock(&wl->mutex);
        wl1251_debug(DEBUG_MAC80211, "mac80211 remove interface");
        wl->vif = NULL;
-       memset(wl->bssid, 0, ETH_ALEN);
+       eth_zero_addr(wl->bssid);
        mutex_unlock(&wl->mutex);
 }
 
index c26fc2106e5bfc3f44f8c7d2cda483824b0ea284..68919f8d4310455fad623381ee16e2f1c96dac69 100644 (file)
@@ -367,7 +367,7 @@ void wl12xx_free_link(struct wl1271 *wl, struct wl12xx_vif *wlvif, u8 *hlid)
        wl->links[*hlid].allocated_pkts = 0;
        wl->links[*hlid].prev_freed_pkts = 0;
        wl->links[*hlid].ba_bitmap = 0;
-       memset(wl->links[*hlid].addr, 0, ETH_ALEN);
+       eth_zero_addr(wl->links[*hlid].addr);
 
        /*
         * At this point op_tx() will not add more packets to the queues. We
@@ -1293,7 +1293,7 @@ int wl1271_cmd_build_arp_rsp(struct wl1271 *wl, struct wl12xx_vif *wlvif)
        hdr->frame_control = cpu_to_le16(fc);
        memcpy(hdr->addr1, vif->bss_conf.bssid, ETH_ALEN);
        memcpy(hdr->addr2, vif->addr, ETH_ALEN);
-       memset(hdr->addr3, 0xff, ETH_ALEN);
+       eth_broadcast_addr(hdr->addr3);
 
        ret = wl1271_cmd_template_set(wl, wlvif->role_id, CMD_TEMPL_ARP_RSP,
                                      skb->data, skb->len, 0,
index f38227afe0998a668c40e2194def6128895bb077..4ae98e2ad719ff4533bb8430cdec633663745bfb 100644 (file)
@@ -438,7 +438,7 @@ struct xenvif *xenvif_alloc(struct device *parent, domid_t domid,
         * stolen by an Ethernet bridge for STP purposes.
         * (FE:FF:FF:FF:FF:FF)
         */
-       memset(dev->dev_addr, 0xFF, ETH_ALEN);
+       eth_broadcast_addr(dev->dev_addr);
        dev->dev_addr[0] &= ~0x01;
 
        netif_carrier_off(dev);
index 45feeba7a3250be44e78a1a70b4a7da529a47edf..16a923a3a43a8825d167b75025baca0b1b5d741c 100644 (file)
@@ -367,11 +367,8 @@ int ax25_kiss_rcv(struct sk_buff *, struct net_device *, struct packet_type *,
                  struct net_device *);
 
 /* ax25_ip.c */
-int ax25_neigh_construct(struct neighbour *neigh);
+netdev_tx_t ax25_ip_xmit(struct sk_buff *skb);
 extern const struct header_ops ax25_header_ops;
-struct ax25_neigh_priv {
-       struct neigh_ops ops;
-};
 
 /* ax25_out.c */
 ax25_cb *ax25_send_frame(struct sk_buff *, int, ax25_address *, ax25_address *,
index 1dcfec8b49f3f4a725b853f8ce9ee202bab5c7f1..f196552ec3c41e13f2891f3a29a43844d56c2574 100644 (file)
@@ -792,5 +792,5 @@ void vlan_setup(struct net_device *dev)
        dev->destructor         = vlan_dev_free;
        dev->ethtool_ops        = &vlan_ethtool_ops;
 
-       memset(dev->broadcast, 0, ETH_ALEN);
+       eth_zero_addr(dev->broadcast);
 }
index d1c55d8dd0a2538eaabe403ceeb26896c00adf66..8ad3ec2610b6499b92b2f3bc97ac02d2d043dd45 100644 (file)
@@ -141,7 +141,7 @@ static void __aarp_send_query(struct aarp_entry *a)
        eah->pa_src_net  = sat->s_net;
        eah->pa_src_node = sat->s_node;
 
-       memset(eah->hw_dst, '\0', ETH_ALEN);
+       eth_zero_addr(eah->hw_dst);
 
        eah->pa_dst_zero = 0;
        eah->pa_dst_net  = a->target_addr.s_net;
@@ -189,7 +189,7 @@ static void aarp_send_reply(struct net_device *dev, struct atalk_addr *us,
        eah->pa_src_node = us->s_node;
 
        if (!sha)
-               memset(eah->hw_dst, '\0', ETH_ALEN);
+               eth_zero_addr(eah->hw_dst);
        else
                ether_addr_copy(eah->hw_dst, sha);
 
@@ -239,7 +239,7 @@ static void aarp_send_probe(struct net_device *dev, struct atalk_addr *us)
        eah->pa_src_net  = us->s_net;
        eah->pa_src_node = us->s_node;
 
-       memset(eah->hw_dst, '\0', ETH_ALEN);
+       eth_zero_addr(eah->hw_dst);
 
        eah->pa_dst_zero = 0;
        eah->pa_dst_net  = us->s_net;
index 4b98f897044aa6a364392bc1ec5b68a2a672a2d2..cd3b37989057fd0b1c5a8b1f49a224fe96d7ba87 100644 (file)
@@ -2001,7 +2001,7 @@ lec_vcc_added(struct lec_priv *priv, const struct atmlec_ioc *ioc_data,
                if (entry == NULL)
                        goto out;
                memcpy(entry->atm_addr, ioc_data->atm_addr, ATM_ESA_LEN);
-               memset(entry->mac_addr, 0, ETH_ALEN);
+               eth_zero_addr(entry->mac_addr);
                entry->recv_vcc = vcc;
                entry->old_recv_push = old_push;
                entry->status = ESI_UNKNOWN;
@@ -2086,7 +2086,7 @@ lec_vcc_added(struct lec_priv *priv, const struct atmlec_ioc *ioc_data,
        entry->vcc = vcc;
        entry->old_push = old_push;
        memcpy(entry->atm_addr, ioc_data->atm_addr, ATM_ESA_LEN);
-       memset(entry->mac_addr, 0, ETH_ALEN);
+       eth_zero_addr(entry->mac_addr);
        entry->status = ESI_UNKNOWN;
        hlist_add_head(&entry->next, &priv->lec_arp_empty_ones);
        entry->timer.expires = jiffies + priv->vcc_timeout_period;
index 523bce72f698ef2a34cfc66da4dbe69cde954fe9..4fd6af47383a014b72b3377fc1556c6bff18e304 100644 (file)
 #include "resources.h"
 #include "signaling.h"
 
-#undef WAIT_FOR_DEMON          /* #define this if system calls on SVC sockets
-                                  should block until the demon runs.
-                                  Danger: may cause nasty hangs if the demon
-                                  crashes. */
-
 struct atm_vcc *sigd = NULL;
-#ifdef WAIT_FOR_DEMON
-static DECLARE_WAIT_QUEUE_HEAD(sigd_sleep);
-#endif
 
 static void sigd_put_skb(struct sk_buff *skb)
 {
-#ifdef WAIT_FOR_DEMON
-       DECLARE_WAITQUEUE(wait, current);
-
-       add_wait_queue(&sigd_sleep, &wait);
-       while (!sigd) {
-               set_current_state(TASK_UNINTERRUPTIBLE);
-               pr_debug("atmsvc: waiting for signaling daemon...\n");
-               schedule();
-       }
-       current->state = TASK_RUNNING;
-       remove_wait_queue(&sigd_sleep, &wait);
-#else
        if (!sigd) {
                pr_debug("atmsvc: no signaling daemon\n");
                kfree_skb(skb);
                return;
        }
-#endif
        atm_force_charge(sigd, skb->truesize);
        skb_queue_tail(&sk_atm(sigd)->sk_receive_queue, skb);
        sk_atm(sigd)->sk_data_ready(sk_atm(sigd));
@@ -261,8 +240,5 @@ int sigd_attach(struct atm_vcc *vcc)
        vcc_insert_socket(sk_atm(vcc));
        set_bit(ATM_VF_META, &vcc->flags);
        set_bit(ATM_VF_READY, &vcc->flags);
-#ifdef WAIT_FOR_DEMON
-       wake_up(&sigd_sleep);
-#endif
        return 0;
 }
index e030c64ebfb77bfc41ca6edf6b3211b1765485ff..8b35af4ef93e5d29f5fa12306a6cfb61ce7cc84e 100644 (file)
@@ -100,7 +100,7 @@ static int ax25_hard_header(struct sk_buff *skb, struct net_device *dev,
        return -AX25_HEADER_LEN;        /* Unfinished header */
 }
 
-static int ax25_neigh_xmit(struct sk_buff *skb)
+netdev_tx_t ax25_ip_xmit(struct sk_buff *skb)
 {
        struct sk_buff *ourskb;
        unsigned char *bp  = skb->data;
@@ -210,56 +210,7 @@ put:
        if (route)
                ax25_put_route(route);
 
-       return 1;
-}
-
-static int ax25_neigh_output(struct neighbour *neigh, struct sk_buff *skb)
-{
-       /* Except for calling ax25_neigh_xmit instead of
-        * dev_queue_xmit this is neigh_resolve_output.
-        */
-       int rc = 0;
-
-       if (!neigh_event_send(neigh, skb)) {
-               int err;
-               struct net_device *dev = neigh->dev;
-               unsigned int seq;
-
-               do {
-                       __skb_pull(skb, skb_network_offset(skb));
-                       seq = read_seqbegin(&neigh->ha_lock);
-                       err = dev_hard_header(skb, dev, ntohs(skb->protocol),
-                                             neigh->ha, NULL, skb->len);
-               } while (read_seqretry(&neigh->ha_lock, seq));
-
-               if (err >= 0) {
-                       ax25_neigh_xmit(skb);
-               } else
-                       goto out_kfree_skb;
-       }
-out:
-       return rc;
-
-out_kfree_skb:
-       rc = -EINVAL;
-       kfree_skb(skb);
-       goto out;
-}
-
-int ax25_neigh_construct(struct neighbour *neigh)
-{
-       /* This trouble could be saved if ax25 would right a proper
-        * dev_queue_xmit function.
-        */
-       struct ax25_neigh_priv *priv = neighbour_priv(neigh);
-
-       if (neigh->tbl->family != AF_INET)
-               return -EINVAL;
-
-       priv->ops = *neigh->ops;
-       priv->ops.output = ax25_neigh_output;
-       priv->ops.connected_output = ax25_neigh_output;
-       return 0;
+       return NETDEV_TX_OK;
 }
 
 #else  /* INET */
@@ -271,9 +222,10 @@ static int ax25_hard_header(struct sk_buff *skb, struct net_device *dev,
        return -AX25_HEADER_LEN;
 }
 
-int ax25_neigh_construct(struct neighbour *neigh)
+netdev_tx_t ax25_ip_xmit(sturct sk_buff *skb)
 {
-       return 0;
+       kfree_skb(skb);
+       return NETDEV_TX_OK;
 }
 #endif
 
@@ -282,5 +234,5 @@ const struct header_ops ax25_header_ops = {
 };
 
 EXPORT_SYMBOL(ax25_header_ops);
-EXPORT_SYMBOL(ax25_neigh_construct);
+EXPORT_SYMBOL(ax25_ip_xmit);
 
index 4b488ec261054830c6f45bfe3a6a3a9cfd65f316..6ceb5d36a32bdc375e635d34085a9b016568e16a 100644 (file)
@@ -218,7 +218,7 @@ static const struct net_device_ops bnep_netdev_ops = {
 void bnep_net_setup(struct net_device *dev)
 {
 
-       memset(dev->broadcast, 0xff, ETH_ALEN);
+       eth_broadcast_addr(dev->broadcast);
        dev->addr_len = ETH_ALEN;
 
        ether_setup(dev);
index 8dbdf6c910b7e5ba44827000e70e6bf15e97a1ce..f3bad41d725f449f91d0b1b4f7119a9c9660e976 100644 (file)
@@ -104,7 +104,7 @@ int eth_header(struct sk_buff *skb, struct net_device *dev,
         */
 
        if (dev->flags & (IFF_LOOPBACK | IFF_NOARP)) {
-               memset(eth->h_dest, 0, ETH_ALEN);
+               eth_zero_addr(eth->h_dest);
                return ETH_HLEN;
        }
 
@@ -357,7 +357,7 @@ void ether_setup(struct net_device *dev)
        dev->flags              = IFF_BROADCAST|IFF_MULTICAST;
        dev->priv_flags         |= IFF_TX_SKB_SHARING;
 
-       memset(dev->broadcast, 0xFF, ETH_ALEN);
+       eth_broadcast_addr(dev->broadcast);
 
 }
 EXPORT_SYMBOL(ether_setup);
index 781b3a226ba73204aa9ff68923ae2385a88e7205..4b552873b55603a648f37bbd497efbb43bd869a4 100644 (file)
@@ -74,7 +74,7 @@ static int l2tp_eth_dev_init(struct net_device *dev)
 
        priv->dev = dev;
        eth_hw_addr_random(dev);
-       memset(&dev->broadcast[0], 0xff, 6);
+       eth_broadcast_addr(dev->broadcast);
        dev->qdisc_tx_busylock = &l2tp_eth_tx_busylock;
        return 0;
 }
index dd4ff36c557a44158ef64cd18aa090600fec1faf..74f509c500f2ea56edf02247f034d2134581ab00 100644 (file)
@@ -1488,7 +1488,7 @@ static void mpath_set_pinfo(struct mesh_path *mpath, u8 *next_hop,
        if (next_hop_sta)
                memcpy(next_hop, next_hop_sta->sta.addr, ETH_ALEN);
        else
-               memset(next_hop, 0, ETH_ALEN);
+               eth_zero_addr(next_hop);
 
        memset(pinfo, 0, sizeof(*pinfo));
 
index b606b53a49a7d92e178eb502f18469bd9da7a5cd..f9b07588baf5d331606092522b589a9bf4a52844 100644 (file)
@@ -1742,7 +1742,7 @@ int ieee80211_ibss_leave(struct ieee80211_sub_if_data *sdata)
 
        ieee80211_ibss_disconnect(sdata);
        ifibss->ssid_len = 0;
-       memset(ifibss->bssid, 0, ETH_ALEN);
+       eth_zero_addr(ifibss->bssid);
 
        /* remove beacon */
        kfree(sdata->u.ibss.ie);
index 0c8b2a77d312d5e3ad18f975ce808c44755c820b..49a44bcd8ababbed372e7b26d20ccbf871d34c7b 100644 (file)
@@ -520,7 +520,7 @@ int ieee80211_fill_mesh_addresses(struct ieee80211_hdr *hdr, __le16 *fc,
        } else {
                *fc |= cpu_to_le16(IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS);
                /* RA TA DA SA */
-               memset(hdr->addr1, 0, ETH_ALEN);   /* RA is resolved later */
+               eth_zero_addr(hdr->addr1);   /* RA is resolved later */
                memcpy(hdr->addr2, meshsa, ETH_ALEN);
                memcpy(hdr->addr3, meshda, ETH_ALEN);
                memcpy(hdr->addr4, meshsa, ETH_ALEN);
index 10ac6324c1d014c708749748ce89ef31055561cf..9f6f3562396a9fb9facab4832821fe5d321b506b 100644 (file)
@@ -2033,7 +2033,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
                ieee80211_flush_queues(local, sdata, false);
 
        /* clear bssid only after building the needed mgmt frames */
-       memset(ifmgd->bssid, 0, ETH_ALEN);
+       eth_zero_addr(ifmgd->bssid);
 
        /* remove AP and TDLS peers */
        sta_info_flush(sdata);
@@ -2464,7 +2464,7 @@ static void ieee80211_destroy_auth_data(struct ieee80211_sub_if_data *sdata,
                del_timer_sync(&sdata->u.mgd.timer);
                sta_info_destroy_addr(sdata, auth_data->bss->bssid);
 
-               memset(sdata->u.mgd.bssid, 0, ETH_ALEN);
+               eth_zero_addr(sdata->u.mgd.bssid);
                ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BSSID);
                sdata->u.mgd.flags = 0;
                mutex_lock(&sdata->local->mtx);
@@ -2777,7 +2777,7 @@ static void ieee80211_destroy_assoc_data(struct ieee80211_sub_if_data *sdata,
                del_timer_sync(&sdata->u.mgd.timer);
                sta_info_destroy_addr(sdata, assoc_data->bss->bssid);
 
-               memset(sdata->u.mgd.bssid, 0, ETH_ALEN);
+               eth_zero_addr(sdata->u.mgd.bssid);
                ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BSSID);
                sdata->u.mgd.flags = 0;
                mutex_lock(&sdata->local->mtx);
@@ -4474,7 +4474,7 @@ int ieee80211_mgd_auth(struct ieee80211_sub_if_data *sdata,
        return 0;
 
  err_clear:
-       memset(ifmgd->bssid, 0, ETH_ALEN);
+       eth_zero_addr(ifmgd->bssid);
        ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BSSID);
        ifmgd->auth_data = NULL;
  err_free:
@@ -4817,7 +4817,7 @@ int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata,
 
        return 0;
  err_clear:
-       memset(ifmgd->bssid, 0, ETH_ALEN);
+       eth_zero_addr(ifmgd->bssid);
        ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BSSID);
        ifmgd->assoc_data = NULL;
  err_free:
index e24fc585c8834782295558481f0f592be743e6dc..6309b9c0bcd5ac821f141ade56a2f8f3c089c486 100644 (file)
@@ -533,7 +533,7 @@ int cfg80211_ibss_wext_giwap(struct net_device *dev,
        else if (wdev->wext.ibss.bssid)
                memcpy(ap_addr->sa_data, wdev->wext.ibss.bssid, ETH_ALEN);
        else
-               memset(ap_addr->sa_data, 0, ETH_ALEN);
+               eth_zero_addr(ap_addr->sa_data);
 
        wdev_unlock(wdev);
 
index d78fd8b54515e630b67bf38d710b2b698f703c4c..96fe32889f5e2ce072e02080480ee9b0aede5310 100644 (file)
@@ -5683,8 +5683,8 @@ static int nl80211_parse_random_mac(struct nlattr **attrs,
        int i;
 
        if (!attrs[NL80211_ATTR_MAC] && !attrs[NL80211_ATTR_MAC_MASK]) {
-               memset(mac_addr, 0, ETH_ALEN);
-               memset(mac_addr_mask, 0, ETH_ALEN);
+               eth_zero_addr(mac_addr);
+               eth_zero_addr(mac_addr_mask);
                mac_addr[0] = 0x2;
                mac_addr_mask[0] = 0x3;
 
index b17b3692f8c239d918a072d2fab9031eb91073b4..a00ee8897dc67047f5d2a295d1eb3dcc42c33673 100644 (file)
@@ -7,6 +7,7 @@
 #include <linux/tracepoint.h>
 
 #include <linux/rtnetlink.h>
+#include <linux/etherdevice.h>
 #include <net/cfg80211.h>
 #include "core.h"
 
@@ -15,7 +16,7 @@
        if (given_mac)                                               \
                memcpy(__entry->entry_mac, given_mac, ETH_ALEN);     \
        else                                                         \
-               memset(__entry->entry_mac, 0, ETH_ALEN);             \
+               eth_zero_addr(__entry->entry_mac);                   \
        } while (0)
 #define MAC_PR_FMT "%pM"
 #define MAC_PR_ARG(entry_mac) (__entry->entry_mac)
@@ -1077,7 +1078,7 @@ TRACE_EVENT(rdev_auth,
                if (req->bss)
                        MAC_ASSIGN(bssid, req->bss->bssid);
                else
-                       memset(__entry->bssid, 0, ETH_ALEN);
+                       eth_zero_addr(__entry->bssid);
                __entry->auth_type = req->auth_type;
        ),
        TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: " MAC_PR_FMT,
@@ -1103,7 +1104,7 @@ TRACE_EVENT(rdev_assoc,
                if (req->bss)
                        MAC_ASSIGN(bssid, req->bss->bssid);
                else
-                       memset(__entry->bssid, 0, ETH_ALEN);
+                       eth_zero_addr(__entry->bssid);
                MAC_ASSIGN(prev_bssid, req->prev_bssid);
                __entry->use_mfp = req->use_mfp;
                __entry->flags = req->flags;
@@ -1153,7 +1154,7 @@ TRACE_EVENT(rdev_disassoc,
                if (req->bss)
                        MAC_ASSIGN(bssid, req->bss->bssid);
                else
-                       memset(__entry->bssid, 0, ETH_ALEN);
+                       eth_zero_addr(__entry->bssid);
                __entry->reason_code = req->reason_code;
                __entry->local_state_change = req->local_state_change;
        ),
index 368611c0573997e45f433c68a0a2c0e9de17270b..a4e8af3321d2ba5e07cd316b3ea8b65d1aecb204 100644 (file)
@@ -322,7 +322,7 @@ int cfg80211_mgd_wext_giwap(struct net_device *dev,
        if (wdev->current_bss)
                memcpy(ap_addr->sa_data, wdev->current_bss->pub.bssid, ETH_ALEN);
        else
-               memset(ap_addr->sa_data, 0, ETH_ALEN);
+               eth_zero_addr(ap_addr->sa_data);
        wdev_unlock(wdev);
 
        return 0;