Use eth_<foo>_addr instead of memset
Subsystems (30)
cover Use eth_<foo>_addr instead of memset
Joe Perches (14):
etherdevice: Add eth_<foo>_addr CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS code
ethernet: Use eth_<foo>_addr instead of memset
net: usb: Use eth_<foo>_addr instead of memset
wireless: Use eth_<foo>_addr instead of memset
netconsole: Use eth_<foo>_addr instead of memset
xen: Use eth_<foo>_addr instead of memset
8021q: Use eth_<foo>_addr instead of memset
appletalk: Use eth_<foo>_addr instead of memset
atm: Use eth_<foo>_addr instead of memset
bluetooth: Use eth_<foo>_addr instead of memset
ethernet: Use eth_<foo>_addr instead of memset
mac80211: Use eth_<foo>_addr instead of memset
wireless: Use eth_<foo>_addr instead of memset
l2tp: Use eth_<foo>_addr instead of memset
drivers/net/ethernet/amd/pcnet32.c | 2 +- .../net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 2 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 6 ++-- drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 2 +- drivers/net/ethernet/cisco/enic/enic_main.c | 8 +++--- drivers/net/ethernet/emulex/benet/be_cmds.c | 2 +- drivers/net/ethernet/emulex/benet/be_main.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 +-- drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 4 +-- drivers/net/ethernet/mellanox/mlx4/en_selftest.c | 2 +- drivers/net/ethernet/micrel/ksz884x.c | 2 +- drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c | 2 +- drivers/net/ethernet/qlogic/qlge/qlge_main.c | 2 +- drivers/net/ethernet/smsc/smsc911x.c | 2 +- drivers/net/ethernet/ti/netcp_core.c | 2 +- drivers/net/ethernet/toshiba/ps3_gelic_wireless.c | 4 +-- drivers/net/ethernet/xscale/ixp4xx_eth.c | 2 +- drivers/net/netconsole.c | 5 ++-- drivers/net/usb/catc.c | 4 +-- drivers/net/usb/cdc_mbim.c | 2 +- drivers/net/usb/lg-vl600.c | 2 +- drivers/net/usb/qmi_wwan.c | 2 +- drivers/net/wireless/airo.c | 4 +-- drivers/net/wireless/at76c50x-usb.c | 6 ++-- drivers/net/wireless/ath/ath10k/mac.c | 2 +- drivers/net/wireless/ath/ath5k/base.c | 2 +- drivers/net/wireless/ath/ath6kl/cfg80211.c | 2 +- drivers/net/wireless/ath/ath6kl/main.c | 2 +- drivers/net/wireless/ath/ath9k/htc_drv_main.c | 2 +- drivers/net/wireless/ath/ath9k/main.c | 4 +-- drivers/net/wireless/atmel.c | 16 +++++------ drivers/net/wireless/b43/main.c | 8 +++--- drivers/net/wireless/b43legacy/main.c | 8 +++--- drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 12 ++++---- drivers/net/wireless/brcm80211/brcmfmac/flowring.c | 2 +- drivers/net/wireless/brcm80211/brcmfmac/p2p.c | 2 +- drivers/net/wireless/cw1200/sta.c | 2 +- drivers/net/wireless/cw1200/txrx.c | 2 +- drivers/net/wireless/hostap/hostap_80211_tx.c | 4 +-- drivers/net/wireless/hostap/hostap_ap.c | 8 +++--- drivers/net/wireless/hostap/hostap_info.c | 2 +- drivers/net/wireless/hostap/hostap_main.c | 4 +-- drivers/net/wireless/hostap/hostap_wlan.h | 33 +++++++++++----------- drivers/net/wireless/ipw2x00/ipw2100.c | 8 +++--- drivers/net/wireless/ipw2x00/ipw2200.c | 6 ++-- drivers/net/wireless/iwlegacy/common.c | 2 +- drivers/net/wireless/iwlwifi/mvm/power.c | 3 +- drivers/net/wireless/libertas/main.c | 4 +-- drivers/net/wireless/libertas_tf/main.c | 4 +-- drivers/net/wireless/mac80211_hwsim.c | 6 ++-- drivers/net/wireless/mwifiex/cfg80211.c | 8 +++--- drivers/net/wireless/mwifiex/init.c | 4 +-- drivers/net/wireless/mwifiex/sta_event.c | 2 +- drivers/net/wireless/mwifiex/wmm.c | 2 +- drivers/net/wireless/mwl8k.c | 2 +- drivers/net/wireless/orinoco/wext.c | 2 +- drivers/net/wireless/p54/fwio.c | 2 +- drivers/net/wireless/p54/main.c | 8 +++--- drivers/net/wireless/ray_cs.c | 2 +- drivers/net/wireless/rndis_wlan.c | 28 +++++++++--------- drivers/net/wireless/rtlwifi/core.c | 6 ++-- drivers/net/wireless/ti/wl1251/main.c | 4 +-- drivers/net/wireless/ti/wlcore/cmd.c | 4 +-- drivers/net/xen-netback/interface.c | 2 +- include/linux/etherdevice.h | 12 +++++++- net/8021q/vlan_dev.c | 2 +- net/appletalk/aarp.c | 6 ++-- net/atm/lec.c | 4 +-- net/bluetooth/bnep/netdev.c | 2 +- net/ethernet/eth.c | 4 +-- net/l2tp/l2tp_eth.c | 2 +- net/mac80211/cfg.c | 2 +- net/mac80211/ibss.c | 2 +- net/mac80211/mesh.c | 2 +- net/mac80211/mlme.c | 10 +++---- net/wireless/ibss.c | 2 +- net/wireless/nl80211.c | 4 +-- net/wireless/trace.h | 9 +++--- net/wireless/wext-sme.c | 2 +- 79 files changed, 190 insertions(+), 176 deletions(-)
Signature · 7 lines
2.1.2 _______________________________________________ ath10k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath10k
PATCH 1/14 etherdevice: Add eth_<foo>_addr CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS code
Make the memset possibly more efficient with the appropriate CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS #ifdef
--- include/linux/etherdevice.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)
include/linux/etherdevice.h +11 -1
@@ -192,7 +192,12 @@ static inline void eth_random_addr(u8 *addr)*/ static inline void eth_broadcast_addr (u8 *addr) { +#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS ) + *(u32 *)addr =0xffffffff ; + *(u16 *)(addr +4 ) =0xffff ; +#else memset (addr,0xff ,ETH_ALEN ); +#endif }/**
@@ -203,7 +208,12 @@ static inline void eth_broadcast_addr(u8 *addr)*/ static inline void eth_zero_addr (u8 *addr) { -memset (addr,0x00 ,ETH_ALEN ); +#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS ) + *(u32 *)addr =0 ; + *(u16 *)(addr +4 ) =0 ; +#else +memset (addr,0 ,ETH_ALEN ); +#endif }/**
Signature · 1 line
2.1.2
Re: [PATCH net-next 01/14] etherdevice: Add eth_<foo>_addr CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS code
Quoted 14 lines · Joe Perches
Make the memset possibly more efficient with the appropriate
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS#ifdefSigned-off-by Joe Perches <[email protected]>--- include/linux/etherdevice.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)include/linux/etherdevice.h +0
-0@@ -192,7 +192,12 @@ static inline void eth_random_addr(u8 *addr)*/
include/linux/etherdevice.h static inline void eth_random_addr(u8 *addr) · line 202
Quoted 10 lines
include/linux/etherdevice.h +5
-0static inline void eth_broadcast_addr (u8 *addr) { +#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS ) + *(u32 *)addr =0xffffffff ; + *(u16 *)(addr +4 ) =0xffff ; +#else memset (addr,0xff ,ETH_ALEN ); +#endif }
I am pretty sure compiler already does an inline, and might chose to emit equivalent instructions for :
*(u16 *) addr = 0xffff;
*(u32 *)(addr + 2) = 0xffffffff;
if (addr % 4) is known to be 2
Re: [PATCH net-next 01/14] etherdevice: Add eth_<foo>_addr CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS code
Quoted 3 lines · Eric Dumazet
Quoted 2 lines · Joe Perches
Make the memset possibly more efficient with the appropriate
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS#ifdef
[]
Quoted 1 line
include/linux/etherdevice.h
Quoted 1 line
include/linux/etherdevice.h +0
-0
[]
Quoted 18 lines
include/linux/etherdevice.h static inline void eth_random_addr(u8 *addr) · line 202
Quoted 12 lines
include/linux/etherdevice.h +5
-0@@ -192,7 +192,12 @@ static inline void eth_random_addr(u8 *addr)*/ static inline void eth_broadcast_addr (u8 *addr) { +#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS ) + *(u32 *)addr =0xffffffff ; + *(u16 *)(addr +4 ) =0xffff ; +#else memset (addr,0xff ,ETH_ALEN ); +#endif }I am pretty sure compiler already does an inline, and might chose to emit equivalent instructions for :
*(u16 *) addr =0xffff;
*(u32 *)(addr + 2) =0xffffffff;
Quoted 1 line
if (addr % 4) is known to be 2
(cross-compiled on x86)
At least for arm gcc 4.6.3, it emits different code for net/l2tp/l2tp_eth.o
old:
- 1cc0: e3a010ff mov r1, #255 ; 0xff - 1cc4: e3a02006 mov r2, #6 - 1cc8: e3c33001 bic r3, r3, #1 - 1ccc: e3833002 orr r3, r3, #2 - 1cd0: e5c53000 strb r3, [r5] - 1cd4: ebfffffe bl 0 <memset> - 1cc8: e3c33001 bic r3, r3, #1
new:
+ 1cc0: e3a02f8a mov r2, #552 ; 0x228 + 1cc4: e3c33001 bic r3, r3, #1 + 1cc8: e3833002 orr r3, r3, #2 + 1ccc: e5c53000 strb r3, [r5] + 1cd0: e3e03000 mvn r3, #0 + 1cd4: e5843224 str r3, [r4, #548] ; 0x224 + 1cd8: e18430b2 strh r3, [r4, r2]
Re: [PATCH net-next 01/14] etherdevice: Add eth_<foo>_addr CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS code
Quoted 2 lines · Joe Perches
At least for arm gcc 4.6.3, it emits different code for
net/l2tp/l2tp_eth.o
Then it looks like arm gcc or arm linux memset() should be improved.
Tracking all memset(x, y, 6) and replace them by some custom version seems not very generic to me, when something better can be done.
Re: [PATCH net-next 01/14] etherdevice: Add eth_<foo>_addr CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS code
Quoted 6 lines · Eric Dumazet
Quoted 2 lines · Joe Perches
At least for arm gcc 4.6.3, it emits different code for
net/l2tp/l2tp_eth.oThen it looks like arm gcc or arm linux
memset()should be improved.
Perhaps you can take that up with the gcc folk.
I think it appropriate to improve the actual emitted code for the compiler I use.
(it seems this code isn't fast-path anywhere though)
Quoted 2 lines
Tracking all
memset(x, y, 6)and replace them by some custom version seems not very generic to me, when something better can be done.
There's the same argument for the ether_addr_equal and ether_addr_copy functions.
iow: memcmp, memcpy too
cheers, Joe
David Miller
maintainerRe: [PATCH net-next 01/14] etherdevice: Add eth_<foo>_addr CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS code
From: Joe Perches <[email protected]>
Date: Tue, 03 Mar 2015 11:07:51 -0800
Quoted 6 lines · Eric Dumazet
Quoted 5 lines · Joe Perches
Quoted 3 lines
At least for arm gcc 4.6.3, it emits different code for
net/l2tp/l2tp_eth.o
Quoted 6 lines
Quoted 1 line
Then it looks like arm gcc or arm linux
memset()should be improved.Perhaps you can take that up with the gcc folk.
I think it appropriate to improve the actual emitted code for the compiler I use.
In the long term, this is poor time spent. If you fixed GCC everyone would benefit in the world, not just kernel builders.
Furthermore, none of this crap is in the fast path of anything.
I'm not applying this series, it's basis is not well founded yet you keep trying to argue otherwise.
Re: [PATCH net-next 01/14] etherdevice: Add eth_<foo>_addr CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS code
Quoted 15 lines · David Miller
From: Joe Perches <[email protected]>
Date: Tue, 03 Mar 2015 11:07:51 -0800Quoted 6 lines · Eric Dumazet
Quoted 5 lines · Joe Perches
Quoted 3 lines
At least for arm gcc 4.6.3, it emits different code for
net/l2tp/l2tp_eth.oQuoted 6 lines
Quoted 1 line
Then it looks like arm gcc or arm linux
memset()should be improved.Perhaps you can take that up with the gcc folk.
I think it appropriate to improve the actual emitted code for the compiler I use.
Quoted 7 lines
In the long term, this is poor time spent. If you fixed GCC everyone would benefit in the world, not just kernel builders.
Furthermore, none of this crap is in the fast path of anything.
I'm not applying this series, it's basis is not well founded yet you keep trying to argue otherwise.
Until such time as the linux crosstools compilers are updated, (they seem stuck on 4.6.3 from 3 years ago)
https://www.kernel.org/pub/tools/crosstool/
I think the series is a trivial, small improvement.
I believe that's the only "argument" I've made.
Your choice to apply it or not, but if the series isn't appropriate, likely the existence of both eth_zero_addr and eth_broadcast_addr is suspect too.
cheers, Joe
Re: [PATCH net-next 01/14] etherdevice: Add eth_<foo>_addr CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS code
Quoted 11 lines · Joe Perches
Until such time as the linux crosstools compilers are updated, (they seem stuck on 4.6.3 from 3 years ago)
https://www.kernel.org/pub/tools/crosstool/
I think the series is a trivial, small improvement.I believe that's the only "argument" I've made.
Your choice to apply it or not, but if the series isn't appropriate, likely the existence of both
eth_zero_addrandeth_broadcast_addris suspect too.
Please not that my objection was on patch 1/14 itself :
Using if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) in a slow path, instead of leaving the existing memset() in place.
If people likes eth_broadcast_addr(), I have nothing against this.
Commit 6d57e9078e880a3dd232d579f42ac437a8f1ef7b ("etherdevice: introduce help function eth_zero_addr()") was fine.
David Miller
maintainerRe: [PATCH net-next 01/14] etherdevice: Add eth_<foo>_addr CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS code
In reply to Joe PerchesFrom: Joe Perches <[email protected]>
Date: Tue, 03 Mar 2015 11:41:09 -0800
Quoted 4 lines
Until such time as the linux crosstools compilers are updated, (they seem stuck on 4.6.3 from 3 years ago)
https://www.kernel.org/pub/tools/crosstool/
I think the series is a trivial, small improvement.
You are even admitting that even for your specific case you are using 3+ year old compiler technology.
These are slow paths, so correctness is the most important aspect.
Converting these locations to consistently use eth_*() is fine, but then "optimizing" a 6 by memset for configuration paths when the compiler should be more than capable of doing this just fine is not convincing at all to me.
Re: [PATCH net-next 01/14] etherdevice: Add eth_<foo>_addr CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS code
Quoted 10 lines · David Miller
From: Joe Perches <[email protected]>
Date: Tue, 03 Mar 2015 11:41:09 -0800Quoted 4 lines
Until such time as the linux crosstools compilers are updated, (they seem stuck on 4.6.3 from 3 years ago)
https://www.kernel.org/pub/tools/crosstool/
I think the series is a trivial, small improvement.You are even admitting that even for your specific case you are using 3+ year old compiler technology.
That's what I said. How is it an "admission"? Those are the kernel.org "recommended" cross-compilers.
Quoted 6 lines
These are slow paths, so correctness is the most important aspect.
Converting these locations to consistently use eth_*() is fine, but then "optimizing" a 6 by memset for configuration paths when the compiler should be more than capable of doing this just fine is not convincing at all to me.
Swell, then perhaps you could simply skip 1/14.
David Miller
maintainerRe: [PATCH net-next 01/14] etherdevice: Add eth_<foo>_addr CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS code
From: Joe Perches <[email protected]>
Date: Tue, 03 Mar 2015 12:04:28 -0800
Quoted 10 lines · David Miller
Quoted 7 lines
From: Joe Perches <[email protected]>
Date: Tue, 03 Mar 2015 11:41:09 -0800Converting these locations to consistently use eth_*() is fine, but then "optimizing" a 6 by memset for configuration paths when the compiler should be more than capable of doing this just fine is not convincing at all to me.
Swell, then perhaps you could simply skip 1/14.
Yes, that's reasonable, applied to net-next.
David Miller
maintainerRe: [PATCH net-next 01/14] etherdevice: Add eth_<foo>_addr CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS code
In reply to Eric DumazetFrom: Eric Dumazet <[email protected]>
Date: Tue, 03 Mar 2015 10:42:05 -0800
Quoted 9 lines · Joe Perches
Quoted 3 lines
At least for arm gcc 4.6.3, it emits different code for
net/l2tp/l2tp_eth.oThen it looks like arm gcc or arm linux
memset()should be improved.Tracking all
memset(x, y, 6)and replace them by some custom version seems not very generic to me, when something better can be done.
+1, and none of this stuff is on the fast path anyways.
I think I'll skip this series fornow.
PATCH 2/14 ethernet: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesUse the built-in function instead of memset.
--- drivers/net/ethernet/amd/pcnet32.c | 2 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 2 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 6 +++--- drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 2 +- drivers/net/ethernet/cisco/enic/enic_main.c | 8 ++++---- drivers/net/ethernet/emulex/benet/be_cmds.c | 2 +- drivers/net/ethernet/emulex/benet/be_main.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++-- drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 4 ++-- drivers/net/ethernet/mellanox/mlx4/en_selftest.c | 2 +- drivers/net/ethernet/micrel/ksz884x.c | 2 +- drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c | 2 +- drivers/net/ethernet/qlogic/qlge/qlge_main.c | 2 +- drivers/net/ethernet/smsc/smsc911x.c | 2 +- drivers/net/ethernet/ti/netcp_core.c | 2 +- drivers/net/ethernet/toshiba/ps3_gelic_wireless.c | 4 ++-- drivers/net/ethernet/xscale/ixp4xx_eth.c | 2 +- 17 files changed, 25 insertions(+), 25 deletions(-)
drivers/net/ethernet/amd/pcnet32.c +1 -1
@@ -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);
drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c +1 -1
@@ -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 );
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +3 -3
@@ -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" );
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c +1 -1
@@ -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 ))
drivers/net/ethernet/cisco/enic/enic_main.c +4 -4
@@ -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; }
drivers/net/ethernet/emulex/benet/be_cmds.c +1 -1
@@ -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))
drivers/net/ethernet/emulex/benet/be_main.c +1 -1
@@ -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,
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +2 -2
@@ -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 ;
drivers/net/ethernet/mellanox/mlx4/en_netdev.c +2 -2
@@ -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);
drivers/net/ethernet/mellanox/mlx4/en_selftest.c +1 -1
@@ -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 */
drivers/net/ethernet/micrel/ksz884x.c +1 -1
@@ -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 ;
drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c +1 -1
@@ -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 ) {
drivers/net/ethernet/qlogic/qlge/qlge_main.c +1 -1
@@ -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" );
drivers/net/ethernet/smsc/smsc911x.c +1 -1
@@ -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++)
drivers/net/ethernet/ti/netcp_core.c +1 -1
@@ -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;
drivers/net/ethernet/toshiba/ps3_gelic_wireless.c +2 -2
@@ -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);
drivers/net/ethernet/xscale/ixp4xx_eth.c +1 -1
@@ -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) {
Signature · 1 line
2.1.2
Re: [PATCH net-next 02/14] ethernet: Use eth_<foo>_addr instead of memset
Quoted 3 lines · Joe Perches
Use the built-in function instead of memset.
Signed-off-by Joe Perches <[email protected]>
for the changes to Intel's ixgbe driver...
Quoted 19 lines
--- drivers/net/ethernet/amd/pcnet32.c | 2 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 2 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 6 +++--- drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 2 +- drivers/net/ethernet/cisco/enic/enic_main.c | 8 ++++---- drivers/net/ethernet/emulex/benet/be_cmds.c | 2 +- drivers/net/ethernet/emulex/benet/be_main.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++-- drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 4 ++-- drivers/net/ethernet/mellanox/mlx4/en_selftest.c | 2 +- drivers/net/ethernet/micrel/ksz884x.c | 2 +- drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c | 2 +- drivers/net/ethernet/qlogic/qlge/qlge_main.c | 2 +- drivers/net/ethernet/smsc/smsc911x.c | 2 +- drivers/net/ethernet/ti/netcp_core.c | 2 +- drivers/net/ethernet/toshiba/ps3_gelic_wireless.c | 4 ++-- drivers/net/ethernet/xscale/ixp4xx_eth.c | 2 +- 17 files changed, 25 insertions(+), 25 deletions(-)
...
Quoted 22 lines
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +2
-2@@ -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 ;
Re: [PATCH net-next 02/14] ethernet: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesQuoted 3 lines · Joe Perches
Use the built-in function instead of memset.
Signed-off-by Joe Perches <[email protected]>
for pcnet32.c
Quoted 33 lines
--- drivers/net/ethernet/amd/pcnet32.c | 2 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 2 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 6 +++--- drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 2 +- drivers/net/ethernet/cisco/enic/enic_main.c | 8 ++++---- drivers/net/ethernet/emulex/benet/be_cmds.c | 2 +- drivers/net/ethernet/emulex/benet/be_main.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++-- drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 4 ++-- drivers/net/ethernet/mellanox/mlx4/en_selftest.c | 2 +- drivers/net/ethernet/micrel/ksz884x.c | 2 +- drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c | 2 +- drivers/net/ethernet/qlogic/qlge/qlge_main.c | 2 +- drivers/net/ethernet/smsc/smsc911x.c | 2 +- drivers/net/ethernet/ti/netcp_core.c | 2 +- drivers/net/ethernet/toshiba/ps3_gelic_wireless.c | 4 ++-- drivers/net/ethernet/xscale/ixp4xx_eth.c | 2 +- 17 files changed, 25 insertions(+), 25 deletions(-)drivers/net/ethernet/amd/pcnet32.c +1
-1@@ -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);
PATCH 3/14 net: usb: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesUse the built-in function instead of memset.
--- drivers/net/usb/catc.c | 4 ++-- drivers/net/usb/cdc_mbim.c | 2 +- drivers/net/usb/lg-vl600.c | 2 +- drivers/net/usb/qmi_wwan.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-)
drivers/net/usb/catc.c +2 -2
@@ -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 *iddev_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 );
drivers/net/usb/cdc_mbim.c +1 -1
@@ -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 */
drivers/net/usb/lg-vl600.c +1 -1
@@ -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)
drivers/net/usb/qmi_wwan.c +1 -1
@@ -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 ;
Signature · 1 line
2.1.2
PATCH 4/14 wireless: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesUse the built-in function instead of memset.
Miscellanea:
Add #include <linux/etherdevice.h> where appropriate Use ETH_ALEN instead of 6
--- drivers/net/wireless/airo.c | 4 +-- drivers/net/wireless/at76c50x-usb.c | 6 ++-- drivers/net/wireless/ath/ath10k/mac.c | 2 +- drivers/net/wireless/ath/ath5k/base.c | 2 +- drivers/net/wireless/ath/ath6kl/cfg80211.c | 2 +- drivers/net/wireless/ath/ath6kl/main.c | 2 +- drivers/net/wireless/ath/ath9k/htc_drv_main.c | 2 +- drivers/net/wireless/ath/ath9k/main.c | 4 +-- drivers/net/wireless/atmel.c | 16 +++++------ drivers/net/wireless/b43/main.c | 8 +++--- drivers/net/wireless/b43legacy/main.c | 8 +++--- drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 12 ++++---- drivers/net/wireless/brcm80211/brcmfmac/flowring.c | 2 +- drivers/net/wireless/brcm80211/brcmfmac/p2p.c | 2 +- drivers/net/wireless/cw1200/sta.c | 2 +- drivers/net/wireless/cw1200/txrx.c | 2 +- drivers/net/wireless/hostap/hostap_80211_tx.c | 4 +-- drivers/net/wireless/hostap/hostap_ap.c | 8 +++--- drivers/net/wireless/hostap/hostap_info.c | 2 +- drivers/net/wireless/hostap/hostap_main.c | 4 +-- drivers/net/wireless/hostap/hostap_wlan.h | 33 +++++++++++----------- drivers/net/wireless/ipw2x00/ipw2100.c | 8 +++--- drivers/net/wireless/ipw2x00/ipw2200.c | 6 ++-- drivers/net/wireless/iwlegacy/common.c | 2 +- drivers/net/wireless/iwlwifi/mvm/power.c | 3 +- drivers/net/wireless/libertas/main.c | 4 +-- drivers/net/wireless/libertas_tf/main.c | 4 +-- drivers/net/wireless/mac80211_hwsim.c | 6 ++-- drivers/net/wireless/mwifiex/cfg80211.c | 8 +++--- drivers/net/wireless/mwifiex/init.c | 4 +-- drivers/net/wireless/mwifiex/sta_event.c | 2 +- drivers/net/wireless/mwifiex/wmm.c | 2 +- drivers/net/wireless/mwl8k.c | 2 +- drivers/net/wireless/orinoco/wext.c | 2 +- drivers/net/wireless/p54/fwio.c | 2 +- drivers/net/wireless/p54/main.c | 8 +++--- drivers/net/wireless/ray_cs.c | 2 +- drivers/net/wireless/rndis_wlan.c | 28 +++++++++--------- drivers/net/wireless/rtlwifi/core.c | 6 ++-- drivers/net/wireless/ti/wl1251/main.c | 4 +-- drivers/net/wireless/ti/wlcore/cmd.c | 4 +-- 41 files changed, 118 insertions(+), 116 deletions(-)
drivers/net/wireless/airo.c +2 -2
@@ -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 ); }
drivers/net/wireless/at76c50x-usb.c +3 -3
@@ -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 ;
drivers/net/wireless/ath/ath10k/mac.c +1 -1
@@ -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 ; }
drivers/net/wireless/ath/ath5k/base.c +1 -1
@@ -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 ;
drivers/net/wireless/ath/ath6kl/cfg80211.c +1 -1
@@ -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,
drivers/net/wireless/ath/ath6kl/main.c +1 -1
@@ -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 ;
drivers/net/wireless/ath/ath9k/htc_drv_main.c +1 -1
@@ -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);
drivers/net/wireless/ath/ath9k/main.c +2 -2
@@ -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))
drivers/net/wireless/atmel.c +8 -8
@@ -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 ); }
drivers/net/wireless/b43/main.c +4 -4
@@ -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);
drivers/net/wireless/b43legacy/main.c +4 -4
@@ -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;
drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c +6 -6
@@ -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 (¶ms_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);
drivers/net/wireless/brcm80211/brcmfmac/flowring.c +1 -1
@@ -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);
drivers/net/wireless/brcm80211/brcmfmac/p2p.c +1 -1
@@ -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);
drivers/net/wireless/cw1200/sta.c +1 -1
@@ -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);
drivers/net/wireless/cw1200/txrx.c +1 -1
@@ -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);
drivers/net/wireless/hostap/hostap_80211_tx.c +2 -2
@@ -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 );
drivers/net/wireless/hostap/hostap_ap.c +4 -4
@@ -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;
drivers/net/wireless/hostap/hostap_info.c +1 -1
@@ -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 ;
drivers/net/wireless/hostap/hostap_main.c +2 -2
@@ -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; }
drivers/net/wireless/hostap/hostap_wlan.h +17 -16
@@ -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 1int 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
drivers/net/wireless/ipw2x00/ipw2100.c +4 -4
@@ -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 */
drivers/net/wireless/ipw2x00/ipw2200.c +3 -3
@@ -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);
drivers/net/wireless/iwlegacy/common.c +1 -1
@@ -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);
drivers/net/wireless/iwlwifi/mvm/power.c +2 -1
@@ -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,
drivers/net/wireless/libertas/main.c +2 -2
@@ -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 ;
drivers/net/wireless/libertas_tf/main.c +2 -2
@@ -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 ;
drivers/net/wireless/mac80211_hwsim.c +3 -3
@@ -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 ; }
drivers/net/wireless/mwifiex/cfg80211.c +4 -4
@@ -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 ; }
drivers/net/wireless/mwifiex/init.c +2 -2
@@ -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 ;
drivers/net/wireless/mwifiex/sta_event.c +1 -1
@@ -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))
drivers/net/wireless/mwifiex/wmm.c +1 -1
@@ -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); }
drivers/net/wireless/mwl8k.c +1 -1
@@ -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
drivers/net/wireless/orinoco/wext.c +1 -1
@@ -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 ) {
drivers/net/wireless/p54/fwio.c +1 -1
@@ -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 :
drivers/net/wireless/p54/main.c +4 -4
@@ -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;
drivers/net/wireless/ray_cs.c +1 -1
@@ -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 ;
drivers/net/wireless/rndis_wlan.c +14 -14
@@ -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);
drivers/net/wireless/rtlwifi/core.c +3 -3
@@ -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 ;
drivers/net/wireless/ti/wl1251/main.c +2 -2
@@ -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); }
drivers/net/wireless/ti/wlcore/cmd.c +2 -2
@@ -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,
Signature · 7 lines
2.1.2 _______________________________________________ ath10k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath10k
PATCH 5/14 netconsole: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesUse the built-in function instead of memset.
Miscellanea:
Add #include <linux/etherdevice.h>
--- drivers/net/netconsole.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
drivers/net/netconsole.c +3 -2
@@ -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 <[email protected]>" );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);
Signature · 1 line
2.1.2
PATCH 6/14 xen: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesUse the built-in function instead of memset.
--- drivers/net/xen-netback/interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/xen-netback/interface.c +1 -1
@@ -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);
Signature · 1 line
2.1.2
Re: [PATCH net-next 06/14] xen: Use eth_<foo>_addr instead of memset
Quoted 3 lines · Joe Perches
Use the built-in function instead of memset.
Signed-off-by Joe Perches <[email protected]>
Re: [PATCH net-next 06/14] xen: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesQuoted 3 lines · Joe Perches
Use the built-in function instead of memset.
Signed-off-by Joe Perches <[email protected]>
Re: [PATCH net-next 06/14] xen: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesQuoted 3 lines · Joe Perches
Use the built-in function instead of memset.
Signed-off-by Joe Perches <[email protected]>
Quoted 19 lines
--- drivers/net/xen-netback/interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/net/xen-netback/interface.c +1
-1@@ -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);Signature · 1 line
2.1.2
Re: [PATCH net-next 06/14] xen: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesQuoted 3 lines · Joe Perches
Use the built-in function instead of memset.
Signed-off-by Joe Perches <[email protected]>
Quoted 19 lines
--- drivers/net/xen-netback/interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/net/xen-netback/interface.c +1
-1@@ -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);Signature · 1 line
2.1.2
PATCH 7/14 8021q: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesUse the built-in function instead of memset.
--- net/8021q/vlan_dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
net/8021q/vlan_dev.c +1 -1
@@ -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); }
Signature · 1 line
2.1.2
PATCH 8/14 appletalk: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesUse the built-in function instead of memset.
--- net/appletalk/aarp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
net/appletalk/aarp.c +3 -3
@@ -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;
Signature · 1 line
2.1.2
PATCH 9/14 atm: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesUse the built-in function instead of memset.
--- net/atm/lec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
net/atm/lec.c +2 -2
@@ -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;
Signature · 1 line
2.1.2
PATCH 10/14 bluetooth: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesUse the built-in function instead of memset.
--- net/bluetooth/bnep/netdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
net/bluetooth/bnep/netdev.c +1 -1
@@ -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);
Signature · 1 line
2.1.2
Re: [PATCH net-next 10/14] bluetooth: Use eth_<foo>_addr instead of memset
Hi Joe,
Quoted 12 lines
Use the built-in function instead of memset.
Signed-off-by Joe Perches <[email protected]>---
net/bluetooth/bnep/netdev.c| 2 +-1 file changed, 1 insertion(+), 1 deletion(-)net/bluetooth/bnep/netdev.c +0
-0
net/bluetooth/bnep/netdev.c static const struct net_device_ops bnep_netdev_ops = { · line 222
Quoted 6 lines
net/bluetooth/bnep/netdev.c +1
-1@@ -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 ;
Regards
Marcel
PATCH 11/14 ethernet: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesUse the built-in function instead of memset.
--- net/ethernet/eth.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
net/ethernet/eth.c +2 -2
@@ -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);
Signature · 1 line
2.1.2
PATCH 12/14 mac80211: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesUse the built-in function instead of memset.
--- net/mac80211/cfg.c | 2 +- net/mac80211/ibss.c | 2 +- net/mac80211/mesh.c | 2 +- net/mac80211/mlme.c | 10 +++++----- 4 files changed, 8 insertions(+), 8 deletions(-)
net/mac80211/cfg.c +1 -1
@@ -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));
net/mac80211/ibss.c +1 -1
@@ -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);
net/mac80211/mesh.c +1 -1
@@ -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 );
net/mac80211/mlme.c +5 -5
@@ -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:
Signature · 1 line
2.1.2
PATCH 13/14 wireless: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesUse the built-in function instead of memset.
--- net/wireless/ibss.c | 2 +- net/wireless/nl80211.c | 4 ++-- net/wireless/trace.h | 9 +++++---- net/wireless/wext-sme.c | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-)
net/wireless/ibss.c +1 -1
@@ -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);
net/wireless/nl80211.c +2 -2
@@ -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 ;
net/wireless/trace.h +5 -4
@@ -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; ),
net/wireless/wext-sme.c +1 -1
@@ -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 ;
Signature · 1 line
2.1.2
Johannes Berg
maintainerRe: [PATCH net-next 13/14] wireless: Use eth_<foo>_addr instead of memset
Quoted 1 line · Joe Perches
Use the built-in function instead of memset.
Please don't use <foo> in the title, especially not if the patch only introduces usage of eth_zero_addr(). It's easier to look for in the commit log without it.
Other than that, I guess I'll apply this, but I really wish there was a way to distinguish more easily which of these require alignment and which don't.
eth_zero_addr() doesn,t but is_zero_ether_addr() does. So does ether_addr_copy(). Frankly, it's getting a bit confusing, so I can't really fault anyone for using memset()/memcpy().
johannes
Re: [PATCH net-next 13/14] wireless: Use eth_<foo>_addr instead of memset
Quoted 10 lines · Johannes Berg
Quoted 1 line · Joe Perches
Use the built-in function instead of memset.
Please don't use <foo> in the title, especially not if the patch only introduces usage of
eth_zero_addr(). It's easier to look for in the commit log without it.Other than that, I guess I'll apply this, but I really wish there was a way to distinguish more easily which of these require alignment and which don't.
My guess is the eth_zero_addr and eth_broadcast functions are always taking aligned(2) arguments, just like all the is_<foo>_ether_addr functions.
Quoted 3 lines
eth_zero_addr()doesn,t butis_zero_ether_addr()does. So doesether_addr_copy(). Frankly, it's getting a bit confusing, so I can't really fault anyone for using memset()/memcpy().
I suspect more than anything else all these are historic.
Johannes Berg
maintainerRe: [PATCH net-next 13/14] wireless: Use eth_<foo>_addr instead of memset
Quoted 8 lines
Quoted 4 lines
Other than that, I guess I'll apply this, but I really wish there was a way to distinguish more easily which of these require alignment and which don't.
My guess is the
eth_zero_addrandeth_broadcastfunctions are always taking aligned(2) arguments, just like all the is_<foo>_ether_addr functions.
Err, are you serious??? That *clearly* isn't true, and if it was then this patch wouldn't be safe at all.
Quoted 5 lines
Quoted 3 lines
eth_zero_addr()doesn,t butis_zero_ether_addr()does. So doesether_addr_copy(). Frankly, it's getting a bit confusing, so I can't really fault anyone for using memset()/memcpy().I suspect more than anything else all these are historic.
I'd expect a mix here, certainly. Not all of them are really old though.
johannes
Re: [PATCH net-next 13/14] wireless: Use eth_<foo>_addr instead of memset
Quoted 9 lines · Johannes Berg
Quoted 7 lines
Quoted 3 lines
Other than that, I guess I'll apply this, but I really wish there was a way to distinguish more easily which of these require alignment and which don't.
My guess is the
eth_zero_addrandeth_broadcastfunctions are always taking aligned(2) arguments, just like all the is_<foo>_ether_addr functions.Err, are you serious???
Yes.
Quoted 2 lines
That *clearly* isn't true, and if it was then
this patch wouldn't be safe at all.
And why is that?
Until patch 1 of this series, eth_zero_addr and eth_broadcast_addr was just an inline for a memset.
Even after patch 1, it's effectively still memset.
Johannes Berg
maintainerRe: [PATCH net-next 13/14] wireless: Use eth_<foo>_addr instead of memset
Quoted 11 lines · Joe Perches
Quoted 5 lines
Quoted 3 lines
My guess is the
eth_zero_addrandeth_broadcastfunctions are always taking aligned(2) arguments, just like all the is_<foo>_ether_addr functions.Err, are you serious???
Yes.
Quoted 2 lines
That *clearly* isn't true, and if it was then
this patch wouldn't be safe at all.
Quoted 6 lines
And why is that?
Until patch 1 of this series,
eth_zero_addrandeth_broadcast_addrwas just an inline for a memset.Even after patch 1, it's effectively still memset.
Exactly. It therefore *doesn't* require an aligned(2) argument, unlike what you stated above, hence my question if you're serious (and perhaps looking at some other code that I don't have).
My argument/complaint is that it isn't obvious from these which ones do require aligned(2) argument. Therefore, it's not obvious without going back to the definitions where the conversion is safe and where it isn't. Clearly, for example, memcmp() cannot always be replaced with ether_addr_equal().
johannes
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH net-next 13/14] wireless: Use eth_<foo>_addr instead of memset
Quoted 15 lines · Johannes Berg
Quoted 13 lines · Joe Perches
Quoted 5 lines
Quoted 3 lines
My guess is the
eth_zero_addrandeth_broadcastfunctions are always taking aligned(2) arguments, just like all the is_<foo>_ether_addr functions.Err, are you serious???
Yes.
Quoted 2 lines
That *clearly* isn't true, and if it was then
this patch wouldn't be safe at all.And why is that?
Quoted 8 lines
Quoted 4 lines
Until patch 1 of this series,
eth_zero_addrandeth_broadcast_addrwas just an inline for a memset.Even after patch 1, it's effectively still memset.
Exactly. It therefore *doesn't* require an aligned(2) argument, unlike what you stated above, hence my question if you're serious (and perhaps looking at some other code that I don't have).
Nope, you simply misunderstood what I did write.
What I said was that the arguments were likely
already aligned(2), not that the alignment was
a requirement.
Johannes Berg
maintainerRe: [PATCH net-next 13/14] wireless: Use eth_<foo>_addr instead of memset
Quoted 5 lines · Joe Perches
Nope, you simply misunderstood what I did write.
What I said was that the arguments were likely
already aligned(2), not that the alignment was
a requirement.
Fair enough. That's not actually true/guaranteed though as far as this patch is concerned.
johannes
David Miller
maintainerRe: [PATCH net-next 13/14] wireless: Use eth_<foo>_addr instead of memset
In reply to Johannes BergFrom: Johannes Berg <[email protected]>
Date: Tue, 03 Mar 2015 09:16:57 +0100
Quoted 3 lines
Other than that, I guess I'll apply this, but I really wish there was a way to distinguish more easily which of these require alignment and which don't.
You can't apply "this" without the dependency patch #1.
Therefore this should probably all go through my tree.
Re: [PATCH net-next 13/14] wireless: Use eth_<foo>_addr instead of memset
Quoted 10 lines · David Miller
From: Johannes Berg <[email protected]>
Date: Tue, 03 Mar 2015 09:16:57 +0100Quoted 3 lines
Other than that, I guess I'll apply this, but I really wish there was a way to distinguish more easily which of these require alignment and which don't.
You can't apply "this" without the dependency patch #1.
Therefore this should probably all go through my tree.
Hey David.
The eth_<foo>_addr functions already exist so
1/14 isn't a dependency.
It's just a trivial improvement on existing code
with CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS and
at least the arm 4.6.3 compiler.
David Miller
maintainerRe: [PATCH net-next 13/14] wireless: Use eth_<foo>_addr instead of memset
From: Joe Perches <[email protected]>
Date: Tue, 03 Mar 2015 11:03:17 -0800
Quoted 12 lines · David Miller
Quoted 10 lines
From: Johannes Berg <[email protected]>
Date: Tue, 03 Mar 2015 09:16:57 +0100Quoted 3 lines
Other than that, I guess I'll apply this, but I really wish there was a way to distinguish more easily which of these require alignment and which don't.
You can't apply "this" without the dependency patch #1.
Therefore this should probably all go through my tree.
Quoted 8 lines
Hey David.
The eth_<foo>_addr functions already exist so
1/14 isn't a dependency.It's just a trivial improvement on existing code
withCONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESSand
at least the arm 4.6.3 compiler.
You're right. But I think we're skipping this series for now, see my other reply.
If GCC can't emit as good an inline memset as we can come up with for 6 byte constant lengths, that's a GCC bug that should be fixed.
Johannes Berg
maintainerRe: [PATCH net-next 13/14] wireless: Use eth_<foo>_addr instead of memset
In reply to David MillerQuoted 8 lines · David Miller
From: Johannes Berg <[email protected]>
Date: Tue, 03 Mar 2015 09:16:57 +0100Quoted 3 lines
Other than that, I guess I'll apply this, but I really wish there was a way to distinguish more easily which of these require alignment and which don't.
You can't apply "this" without the dependency patch #1.
Actually, this is the first time I see patch #1, but since it depends on HAVE_EFFICIENT_UNALIGNED_ACCESS it doesn't really matter, the functions already exist.
I'm not even sure that the memset in patch #1 really gets more efficient with the u32/u16 write (and if it does, why doesn't the compiler know it) so I guess I'm not even sure I see much point in patch #1, but that doesn't really matter.
Anyway, I don't mind if you want to take this directly either, just let me know.
johannes
PATCH 14/14 l2tp: Use eth_<foo>_addr instead of memset
In reply to Joe PerchesUse the built-in function instead of memset.
--- net/l2tp/l2tp_eth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
net/l2tp/l2tp_eth.c +1 -1
@@ -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 ; }
Signature · 1 line
2.1.2