* [PATCH V2 0/3] networking: Use ETH_ALEN where appropriate @ 2013-08-01 20:14 Joe Perches 2013-08-01 20:14 ` [PATCH V2 1/3] uapi: Convert some uses of 6 to ETH_ALEN Joe Perches ` (2 more replies) 0 siblings, 3 replies; 19+ messages in thread From: Joe Perches @ 2013-08-01 20:14 UTC (permalink / raw) To: netdev Cc: linux-kernel, linux-arm-kernel, linuxppc-dev, linux-usb, linux-media, netfilter-devel, virtualization, wimax Convert the uses mac addresses to ETH_ALEN so it's easier to find and verify where mac addresses need to be __aligned(2) Change from initial submission: - Remove include/acpi/actbl2.h conversion It's a file copied from outside ACPI sources Joe Perches (3): uapi: Convert some uses of 6 to ETH_ALEN include: Convert ethernet mac address declarations to use ETH_ALEN ethernet: Convert mac address uses of 6 to ETH_ALEN drivers/net/ethernet/8390/ax88796.c | 4 +- drivers/net/ethernet/amd/pcnet32.c | 6 +-- drivers/net/ethernet/broadcom/cnic_if.h | 6 +-- drivers/net/ethernet/dec/tulip/tulip_core.c | 8 +-- drivers/net/ethernet/i825xx/sun3_82586.h | 4 +- drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 2 +- drivers/net/ethernet/nuvoton/w90p910_ether.c | 4 +- drivers/net/ethernet/pasemi/pasemi_mac.c | 13 ++--- drivers/net/ethernet/pasemi/pasemi_mac.h | 4 +- drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c | 4 +- drivers/net/ethernet/qlogic/qlge/qlge.h | 2 +- include/linux/dm9000.h | 4 +- include/linux/fs_enet_pd.h | 3 +- include/linux/ieee80211.h | 59 +++++++++++----------- include/linux/mlx4/device.h | 11 ++-- include/linux/mlx4/qp.h | 5 +- include/linux/mv643xx_eth.h | 3 +- include/linux/sh_eth.h | 3 +- include/linux/smsc911x.h | 3 +- include/linux/uwb/spec.h | 5 +- include/media/tveeprom.h | 4 +- include/net/irda/irlan_common.h | 3 +- include/uapi/linux/dn.h | 3 +- include/uapi/linux/if_bridge.h | 3 +- include/uapi/linux/netfilter_bridge/ebt_802_3.h | 5 +- include/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h | 3 +- include/uapi/linux/virtio_net.h | 2 +- include/uapi/linux/wimax/i2400m.h | 4 +- 28 files changed, 100 insertions(+), 80 deletions(-) -- 1.8.1.2.459.gbcd45b4.dirty ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH V2 1/3] uapi: Convert some uses of 6 to ETH_ALEN 2013-08-01 20:14 [PATCH V2 0/3] networking: Use ETH_ALEN where appropriate Joe Perches @ 2013-08-01 20:14 ` Joe Perches 2013-08-01 20:14 ` [PATCH V2 2/3] include: Convert ethernet mac address declarations to use ETH_ALEN Joe Perches 2013-08-01 20:14 ` [PATCH V2 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN Joe Perches 2 siblings, 0 replies; 19+ messages in thread From: Joe Perches @ 2013-08-01 20:14 UTC (permalink / raw) To: netdev Cc: Bart De Schuymer, Rusty Russell, Michael S. Tsirkin, Inaky Perez-Gonzalez, linux-wimax, linux-kernel, netfilter-devel, virtualization, wimax Use the #define where appropriate. Add #include <linux/if_ether.h> where appropriate too. Signed-off-by: Joe Perches <joe@perches.com> --- include/uapi/linux/dn.h | 3 ++- include/uapi/linux/if_bridge.h | 3 ++- include/uapi/linux/netfilter_bridge/ebt_802_3.h | 5 +++-- include/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h | 3 ++- include/uapi/linux/virtio_net.h | 2 +- include/uapi/linux/wimax/i2400m.h | 4 ++-- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/include/uapi/linux/dn.h b/include/uapi/linux/dn.h index 9c50445..5fbdd3d 100644 --- a/include/uapi/linux/dn.h +++ b/include/uapi/linux/dn.h @@ -2,6 +2,7 @@ #define _LINUX_DN_H #include <linux/types.h> +#include <linux/if_ether.h> /* @@ -120,7 +121,7 @@ struct linkinfo_dn { * Ethernet address format (for DECnet) */ union etheraddress { - __u8 dne_addr[6]; /* Full ethernet address */ + __u8 dne_addr[ETH_ALEN]; /* Full ethernet address */ struct { __u8 dne_hiord[4]; /* DECnet HIORD prefix */ __u8 dne_nodeaddr[2]; /* DECnet node address */ diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h index 2d70d79..39f621a 100644 --- a/include/uapi/linux/if_bridge.h +++ b/include/uapi/linux/if_bridge.h @@ -14,6 +14,7 @@ #define _UAPI_LINUX_IF_BRIDGE_H #include <linux/types.h> +#include <linux/if_ether.h> #define SYSFS_BRIDGE_ATTR "bridge" #define SYSFS_BRIDGE_FDB "brforward" @@ -88,7 +89,7 @@ struct __port_info { }; struct __fdb_entry { - __u8 mac_addr[6]; + __u8 mac_addr[ETH_ALEN]; __u8 port_no; __u8 is_local; __u32 ageing_timer_value; diff --git a/include/uapi/linux/netfilter_bridge/ebt_802_3.h b/include/uapi/linux/netfilter_bridge/ebt_802_3.h index 5bf8491..f37522a 100644 --- a/include/uapi/linux/netfilter_bridge/ebt_802_3.h +++ b/include/uapi/linux/netfilter_bridge/ebt_802_3.h @@ -2,6 +2,7 @@ #define _UAPI__LINUX_BRIDGE_EBT_802_3_H #include <linux/types.h> +#include <linux/if_ether.h> #define EBT_802_3_SAP 0x01 #define EBT_802_3_TYPE 0x02 @@ -42,8 +43,8 @@ struct hdr_ni { }; struct ebt_802_3_hdr { - __u8 daddr[6]; - __u8 saddr[6]; + __u8 daddr[ETH_ALEN]; + __u8 saddr[ETH_ALEN]; __be16 len; union { struct hdr_ui ui; diff --git a/include/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h b/include/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h index c6a204c..eac0f65 100644 --- a/include/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h +++ b/include/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h @@ -2,6 +2,7 @@ #define _IPT_CLUSTERIP_H_target #include <linux/types.h> +#include <linux/if_ether.h> enum clusterip_hashmode { CLUSTERIP_HASHMODE_SIP = 0, @@ -22,7 +23,7 @@ struct ipt_clusterip_tgt_info { __u32 flags; /* only relevant for new ones */ - __u8 clustermac[6]; + __u8 clustermac[ETH_ALEN]; __u16 num_total_nodes; __u16 num_local_nodes; __u16 local_nodes[CLUSTERIP_MAX_NODES]; diff --git a/include/uapi/linux/virtio_net.h b/include/uapi/linux/virtio_net.h index 227d4ce..172a7f0 100644 --- a/include/uapi/linux/virtio_net.h +++ b/include/uapi/linux/virtio_net.h @@ -60,7 +60,7 @@ struct virtio_net_config { /* The config defining mac address (if VIRTIO_NET_F_MAC) */ - __u8 mac[6]; + __u8 mac[ETH_ALEN]; /* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */ __u16 status; /* Maximum number of each of transmit and receive queues; diff --git a/include/uapi/linux/wimax/i2400m.h b/include/uapi/linux/wimax/i2400m.h index 62d3561..fd198bc 100644 --- a/include/uapi/linux/wimax/i2400m.h +++ b/include/uapi/linux/wimax/i2400m.h @@ -122,7 +122,7 @@ #define __LINUX__WIMAX__I2400M_H__ #include <linux/types.h> - +#include <linux/if_ether.h> /* * Host Device Interface (HDI) common to all busses @@ -487,7 +487,7 @@ struct i2400m_tlv_l4_message_versions { struct i2400m_tlv_detailed_device_info { struct i2400m_tlv_hdr hdr; __u8 reserved1[400]; - __u8 mac_address[6]; + __u8 mac_address[ETH_ALEN]; __u8 reserved2[2]; } __attribute__((packed)); -- 1.8.1.2.459.gbcd45b4.dirty ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH V2 2/3] include: Convert ethernet mac address declarations to use ETH_ALEN 2013-08-01 20:14 [PATCH V2 0/3] networking: Use ETH_ALEN where appropriate Joe Perches 2013-08-01 20:14 ` [PATCH V2 1/3] uapi: Convert some uses of 6 to ETH_ALEN Joe Perches @ 2013-08-01 20:14 ` Joe Perches 2013-08-01 20:14 ` [PATCH V2 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN Joe Perches 2 siblings, 0 replies; 19+ messages in thread From: Joe Perches @ 2013-08-01 20:14 UTC (permalink / raw) To: netdev Cc: Pantelis Antoniou, Vitaly Bordug, Steve Glendinning, Mauro Carvalho Chehab, Samuel Ortiz, David S. Miller, linux-kernel, linuxppc-dev, linux-usb, linux-media It's convenient to have ethernet mac addresses use ETH_ALEN to be able to grep for them a bit easier and also to ensure that the addresses are __aligned(2). Add #include <linux/if_ether.h> as necessary. Signed-off-by: Joe Perches <joe@perches.com> Acked-by: Mauro Carvalho Chehab <m.chehab@samsung.com> --- include/linux/dm9000.h | 4 ++- include/linux/fs_enet_pd.h | 3 ++- include/linux/ieee80211.h | 59 +++++++++++++++++++++-------------------- include/linux/mlx4/device.h | 11 ++++---- include/linux/mlx4/qp.h | 5 ++-- include/linux/mv643xx_eth.h | 3 ++- include/linux/sh_eth.h | 3 ++- include/linux/smsc911x.h | 3 ++- include/linux/uwb/spec.h | 5 ++-- include/media/tveeprom.h | 4 ++- include/net/irda/irlan_common.h | 3 ++- 11 files changed, 58 insertions(+), 45 deletions(-) diff --git a/include/linux/dm9000.h b/include/linux/dm9000.h index 96e8769..841925f 100644 --- a/include/linux/dm9000.h +++ b/include/linux/dm9000.h @@ -14,6 +14,8 @@ #ifndef __DM9000_PLATFORM_DATA #define __DM9000_PLATFORM_DATA __FILE__ +#include <linux/if_ether.h> + /* IO control flags */ #define DM9000_PLATF_8BITONLY (0x0001) @@ -27,7 +29,7 @@ struct dm9000_plat_data { unsigned int flags; - unsigned char dev_addr[6]; + unsigned char dev_addr[ETH_ALEN]; /* allow replacement IO routines */ diff --git a/include/linux/fs_enet_pd.h b/include/linux/fs_enet_pd.h index 51b7934..343d82a 100644 --- a/include/linux/fs_enet_pd.h +++ b/include/linux/fs_enet_pd.h @@ -18,6 +18,7 @@ #include <linux/string.h> #include <linux/of_mdio.h> +#include <linux/if_ether.h> #include <asm/types.h> #define FS_ENET_NAME "fs_enet" @@ -135,7 +136,7 @@ struct fs_platform_info { const struct fs_mii_bus_info *bus_info; int rx_ring, tx_ring; /* number of buffers on rx */ - __u8 macaddr[6]; /* mac address */ + __u8 macaddr[ETH_ALEN]; /* mac address */ int rx_copybreak; /* limit we copy small frames */ int use_napi; /* use NAPI */ int napi_weight; /* NAPI weight */ diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index b0dc87a..4e101af 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h @@ -16,6 +16,7 @@ #define LINUX_IEEE80211_H #include <linux/types.h> +#include <linux/if_ether.h> #include <asm/byteorder.h> /* @@ -209,28 +210,28 @@ static inline u16 ieee80211_sn_sub(u16 sn1, u16 sn2) struct ieee80211_hdr { __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]; } __packed __aligned(2); struct ieee80211_hdr_3addr { __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; } __packed __aligned(2); struct ieee80211_qos_hdr { __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; __le16 qos_ctrl; } __packed __aligned(2); @@ -608,8 +609,8 @@ struct ieee80211s_hdr { u8 flags; u8 ttl; __le32 seqnum; - u8 eaddr1[6]; - u8 eaddr2[6]; + u8 eaddr1[ETH_ALEN]; + u8 eaddr2[ETH_ALEN]; } __packed __aligned(2); /* Mesh flags */ @@ -758,7 +759,7 @@ struct ieee80211_rann_ie { u8 rann_flags; u8 rann_hopcount; u8 rann_ttl; - u8 rann_addr[6]; + u8 rann_addr[ETH_ALEN]; __le32 rann_seq; __le32 rann_interval; __le32 rann_metric; @@ -802,9 +803,9 @@ enum ieee80211_vht_opmode_bits { struct ieee80211_mgmt { __le16 frame_control; __le16 duration; - u8 da[6]; - u8 sa[6]; - u8 bssid[6]; + u8 da[ETH_ALEN]; + u8 sa[ETH_ALEN]; + u8 bssid[ETH_ALEN]; __le16 seq_ctrl; union { struct { @@ -833,7 +834,7 @@ struct ieee80211_mgmt { struct { __le16 capab_info; __le16 listen_interval; - u8 current_ap[6]; + u8 current_ap[ETH_ALEN]; /* followed by SSID and Supported rates */ u8 variable[0]; } __packed reassoc_req; @@ -966,21 +967,21 @@ struct ieee80211_vendor_ie { struct ieee80211_rts { __le16 frame_control; __le16 duration; - u8 ra[6]; - u8 ta[6]; + u8 ra[ETH_ALEN]; + u8 ta[ETH_ALEN]; } __packed __aligned(2); struct ieee80211_cts { __le16 frame_control; __le16 duration; - u8 ra[6]; + u8 ra[ETH_ALEN]; } __packed __aligned(2); struct ieee80211_pspoll { __le16 frame_control; __le16 aid; - u8 bssid[6]; - u8 ta[6]; + u8 bssid[ETH_ALEN]; + u8 ta[ETH_ALEN]; } __packed __aligned(2); /* TDLS */ @@ -989,14 +990,14 @@ struct ieee80211_pspoll { struct ieee80211_tdls_lnkie { u8 ie_type; /* Link Identifier IE */ u8 ie_len; - u8 bssid[6]; - u8 init_sta[6]; - u8 resp_sta[6]; + u8 bssid[ETH_ALEN]; + u8 init_sta[ETH_ALEN]; + u8 resp_sta[ETH_ALEN]; } __packed; struct ieee80211_tdls_data { - u8 da[6]; - u8 sa[6]; + u8 da[ETH_ALEN]; + u8 sa[ETH_ALEN]; __be16 ether_type; u8 payload_type; u8 category; @@ -1090,8 +1091,8 @@ struct ieee80211_p2p_noa_attr { struct ieee80211_bar { __le16 frame_control; __le16 duration; - __u8 ra[6]; - __u8 ta[6]; + __u8 ra[ETH_ALEN]; + __u8 ta[ETH_ALEN]; __le16 control; __le16 start_seq_num; } __packed; diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h index 6aebdfe..09ef2f4 100644 --- a/include/linux/mlx4/device.h +++ b/include/linux/mlx4/device.h @@ -33,6 +33,7 @@ #ifndef MLX4_DEVICE_H #define MLX4_DEVICE_H +#include <linux/if_ether.h> #include <linux/pci.h> #include <linux/completion.h> #include <linux/radix-tree.h> @@ -620,7 +621,7 @@ struct mlx4_eth_av { u8 dgid[16]; u32 reserved4[2]; __be16 vlan; - u8 mac[6]; + u8 mac[ETH_ALEN]; }; union mlx4_ext_av { @@ -914,10 +915,10 @@ enum mlx4_net_trans_promisc_mode { }; struct mlx4_spec_eth { - u8 dst_mac[6]; - u8 dst_mac_msk[6]; - u8 src_mac[6]; - u8 src_mac_msk[6]; + u8 dst_mac[ETH_ALEN]; + u8 dst_mac_msk[ETH_ALEN]; + u8 src_mac[ETH_ALEN]; + u8 src_mac_msk[ETH_ALEN]; u8 ether_type_enable; __be16 ether_type; __be16 vlan_id_msk; diff --git a/include/linux/mlx4/qp.h b/include/linux/mlx4/qp.h index 262deac..6d35147 100644 --- a/include/linux/mlx4/qp.h +++ b/include/linux/mlx4/qp.h @@ -34,6 +34,7 @@ #define MLX4_QP_H #include <linux/types.h> +#include <linux/if_ether.h> #include <linux/mlx4/device.h> @@ -143,7 +144,7 @@ struct mlx4_qp_path { u8 feup; u8 fvl_rx; u8 reserved4[2]; - u8 dmac[6]; + u8 dmac[ETH_ALEN]; }; enum { /* fl */ @@ -318,7 +319,7 @@ struct mlx4_wqe_datagram_seg { __be32 dqpn; __be32 qkey; __be16 vlan; - u8 mac[6]; + u8 mac[ETH_ALEN]; }; struct mlx4_wqe_lso_seg { diff --git a/include/linux/mv643xx_eth.h b/include/linux/mv643xx_eth.h index 6e8215b..61a0da3 100644 --- a/include/linux/mv643xx_eth.h +++ b/include/linux/mv643xx_eth.h @@ -6,6 +6,7 @@ #define __LINUX_MV643XX_ETH_H #include <linux/mbus.h> +#include <linux/if_ether.h> #define MV643XX_ETH_SHARED_NAME "mv643xx_eth" #define MV643XX_ETH_NAME "mv643xx_eth_port" @@ -48,7 +49,7 @@ struct mv643xx_eth_platform_data { * Use this MAC address if it is valid, overriding the * address that is already in the hardware. */ - u8 mac_addr[6]; + u8 mac_addr[ETH_ALEN]; /* * If speed is 0, autonegotiation is enabled. diff --git a/include/linux/sh_eth.h b/include/linux/sh_eth.h index fc30571..6205eeb 100644 --- a/include/linux/sh_eth.h +++ b/include/linux/sh_eth.h @@ -2,6 +2,7 @@ #define __ASM_SH_ETH_H__ #include <linux/phy.h> +#include <linux/if_ether.h> enum {EDMAC_LITTLE_ENDIAN, EDMAC_BIG_ENDIAN}; enum { @@ -18,7 +19,7 @@ struct sh_eth_plat_data { phy_interface_t phy_interface; void (*set_mdio_gate)(void *addr); - unsigned char mac_addr[6]; + unsigned char mac_addr[ETH_ALEN]; unsigned no_ether_link:1; unsigned ether_link_active_low:1; unsigned needs_init:1; diff --git a/include/linux/smsc911x.h b/include/linux/smsc911x.h index 4dde70e..eec3efd 100644 --- a/include/linux/smsc911x.h +++ b/include/linux/smsc911x.h @@ -22,6 +22,7 @@ #define __LINUX_SMSC911X_H__ #include <linux/phy.h> +#include <linux/if_ether.h> /* platform_device configuration data, should be assigned to * the platform_device's dev.platform_data */ @@ -31,7 +32,7 @@ struct smsc911x_platform_config { unsigned int flags; unsigned int shift; phy_interface_t phy_interface; - unsigned char mac[6]; + unsigned char mac[ETH_ALEN]; }; /* Constants for platform_device irq polarity configuration */ diff --git a/include/linux/uwb/spec.h b/include/linux/uwb/spec.h index b52e44f..0df24bf 100644 --- a/include/linux/uwb/spec.h +++ b/include/linux/uwb/spec.h @@ -32,6 +32,7 @@ #include <linux/types.h> #include <linux/bitmap.h> +#include <linux/if_ether.h> #define i1480_FW 0x00000303 /* #define i1480_FW 0x00000302 */ @@ -130,7 +131,7 @@ enum { UWB_DRP_BACKOFF_WIN_MAX = 16 }; * it is also used to define headers sent down and up the wire/radio). */ struct uwb_mac_addr { - u8 data[6]; + u8 data[ETH_ALEN]; } __attribute__((packed)); @@ -568,7 +569,7 @@ struct uwb_rc_evt_confirm { /* Device Address Management event. [WHCI] section 3.1.3.2. */ struct uwb_rc_evt_dev_addr_mgmt { struct uwb_rceb rceb; - u8 baAddr[6]; + u8 baAddr[ETH_ALEN]; u8 bResultCode; } __attribute__((packed)); diff --git a/include/media/tveeprom.h b/include/media/tveeprom.h index 4a1191a..f7119ee 100644 --- a/include/media/tveeprom.h +++ b/include/media/tveeprom.h @@ -12,6 +12,8 @@ enum tveeprom_audio_processor { TVEEPROM_AUDPROC_OTHER, }; +#include <linux/if_ether.h> + struct tveeprom { u32 has_radio; /* If has_ir == 0, then it is unknown what the IR capabilities are, @@ -40,7 +42,7 @@ struct tveeprom { u32 revision; u32 serial_number; char rev_str[5]; - u8 MAC_address[6]; + u8 MAC_address[ETH_ALEN]; }; void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee, diff --git a/include/net/irda/irlan_common.h b/include/net/irda/irlan_common.h index 0af8b8d..550c2d6 100644 --- a/include/net/irda/irlan_common.h +++ b/include/net/irda/irlan_common.h @@ -32,6 +32,7 @@ #include <linux/types.h> #include <linux/skbuff.h> #include <linux/netdevice.h> +#include <linux/if_ether.h> #include <net/irda/irttp.h> @@ -161,7 +162,7 @@ struct irlan_provider_cb { int access_type; /* Access type */ __u16 send_arb_val; - __u8 mac_address[6]; /* Generated MAC address for peer device */ + __u8 mac_address[ETH_ALEN]; /* Generated MAC address for peer device */ }; /* -- 1.8.1.2.459.gbcd45b4.dirty ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH V2 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN 2013-08-01 20:14 [PATCH V2 0/3] networking: Use ETH_ALEN where appropriate Joe Perches 2013-08-01 20:14 ` [PATCH V2 1/3] uapi: Convert some uses of 6 to ETH_ALEN Joe Perches 2013-08-01 20:14 ` [PATCH V2 2/3] include: Convert ethernet mac address declarations to use ETH_ALEN Joe Perches @ 2013-08-01 20:14 ` Joe Perches 2013-08-01 20:31 ` Olof Johansson 2 siblings, 1 reply; 19+ messages in thread From: Joe Perches @ 2013-08-01 20:14 UTC (permalink / raw) To: netdev Cc: Don Fry, Grant Grundler, Sam Creasey, Andrew Gallatin, Wan ZongShun, Olof Johansson, Manish Chopra, Sony Chacko, Rajesh Borundia, Shahed Shaikh, Jitendra Kalsaria, Ron Mercer, linux-driver, linux-kernel, linux-arm-kernel Use the normal #define to help grep find mac addresses and ensure that addresses are aligned. Move one address in pasemi_mac.h for alignment. Signed-off-by: Joe Perches <joe@perches.com> --- drivers/net/ethernet/8390/ax88796.c | 4 ++-- drivers/net/ethernet/amd/pcnet32.c | 6 +++--- drivers/net/ethernet/broadcom/cnic_if.h | 6 +++--- drivers/net/ethernet/dec/tulip/tulip_core.c | 8 +++++--- drivers/net/ethernet/i825xx/sun3_82586.h | 4 ++-- drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 2 +- drivers/net/ethernet/nuvoton/w90p910_ether.c | 4 ++-- drivers/net/ethernet/pasemi/pasemi_mac.c | 13 +++++++------ drivers/net/ethernet/pasemi/pasemi_mac.h | 4 ++-- drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c | 4 ++-- drivers/net/ethernet/qlogic/qlge/qlge.h | 2 +- 11 files changed, 30 insertions(+), 27 deletions(-) diff --git a/drivers/net/ethernet/8390/ax88796.c b/drivers/net/ethernet/8390/ax88796.c index e1d2643..b7232a9 100644 --- a/drivers/net/ethernet/8390/ax88796.c +++ b/drivers/net/ethernet/8390/ax88796.c @@ -707,7 +707,7 @@ static int ax_init_dev(struct net_device *dev) #ifdef CONFIG_AX88796_93CX6 if (ax->plat->flags & AXFLG_HAS_93CX6) { - unsigned char mac_addr[6]; + unsigned char mac_addr[ETH_ALEN]; struct eeprom_93cx6 eeprom; eeprom.data = ei_local; @@ -719,7 +719,7 @@ static int ax_init_dev(struct net_device *dev) (__le16 __force *)mac_addr, sizeof(mac_addr) >> 1); - memcpy(dev->dev_addr, mac_addr, 6); + memcpy(dev->dev_addr, mac_addr, ETH_ALEN); } #endif if (ax->plat->wordlength == 2) { diff --git a/drivers/net/ethernet/amd/pcnet32.c b/drivers/net/ethernet/amd/pcnet32.c index ed21307..2d8e288 100644 --- a/drivers/net/ethernet/amd/pcnet32.c +++ b/drivers/net/ethernet/amd/pcnet32.c @@ -1521,7 +1521,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev) char *chipname; struct net_device *dev; const struct pcnet32_access *a = NULL; - u8 promaddr[6]; + u8 promaddr[ETH_ALEN]; int ret = -ENODEV; /* reset the chip */ @@ -1665,10 +1665,10 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev) } /* read PROM address and compare with CSR address */ - for (i = 0; i < 6; i++) + for (i = 0; i < ETH_ALEN; i++) promaddr[i] = inb(ioaddr + i); - if (memcmp(promaddr, dev->dev_addr, 6) || + if (memcmp(promaddr, dev->dev_addr, ETH_ALEN) || !is_valid_ether_addr(dev->dev_addr)) { if (is_valid_ether_addr(promaddr)) { if (pcnet32_debug & NETIF_MSG_PROBE) { diff --git a/drivers/net/ethernet/broadcom/cnic_if.h b/drivers/net/ethernet/broadcom/cnic_if.h index 82a0312..95aff76 100644 --- a/drivers/net/ethernet/broadcom/cnic_if.h +++ b/drivers/net/ethernet/broadcom/cnic_if.h @@ -238,8 +238,8 @@ struct cnic_sock { u16 src_port; u16 dst_port; u16 vlan_id; - unsigned char old_ha[6]; - unsigned char ha[6]; + unsigned char old_ha[ETH_ALEN]; + unsigned char ha[ETH_ALEN]; u32 mtu; u32 cid; u32 l5_cid; @@ -308,7 +308,7 @@ struct cnic_dev { #define CNIC_F_BNX2_CLASS 3 #define CNIC_F_BNX2X_CLASS 4 atomic_t ref_count; - u8 mac_addr[6]; + u8 mac_addr[ETH_ALEN]; int max_iscsi_conn; int max_fcoe_conn; diff --git a/drivers/net/ethernet/dec/tulip/tulip_core.c b/drivers/net/ethernet/dec/tulip/tulip_core.c index c94152f..4e8cfa2 100644 --- a/drivers/net/ethernet/dec/tulip/tulip_core.c +++ b/drivers/net/ethernet/dec/tulip/tulip_core.c @@ -1304,7 +1304,9 @@ static int tulip_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) { struct tulip_private *tp; /* See note below on the multiport cards. */ - static unsigned char last_phys_addr[6] = {0x00, 'L', 'i', 'n', 'u', 'x'}; + static unsigned char last_phys_addr[ETH_ALEN] = { + 0x00, 'L', 'i', 'n', 'u', 'x' + }; static int last_irq; static int multiport_cnt; /* For four-port boards w/one EEPROM */ int i, irq; @@ -1627,8 +1629,8 @@ static int tulip_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) dev->dev_addr[i] = last_phys_addr[i] + 1; #if defined(CONFIG_SPARC) addr = of_get_property(dp, "local-mac-address", &len); - if (addr && len == 6) - memcpy(dev->dev_addr, addr, 6); + if (addr && len == ETH_ALEN) + memcpy(dev->dev_addr, addr, ETH_ALEN); #endif #if defined(__i386__) || defined(__x86_64__) /* Patch up x86 BIOS bug. */ if (last_irq) diff --git a/drivers/net/ethernet/i825xx/sun3_82586.h b/drivers/net/ethernet/i825xx/sun3_82586.h index 93346f0..79aef68 100644 --- a/drivers/net/ethernet/i825xx/sun3_82586.h +++ b/drivers/net/ethernet/i825xx/sun3_82586.h @@ -133,8 +133,8 @@ struct rfd_struct unsigned char last; /* Bit15,Last Frame on List / Bit14,suspend */ unsigned short next; /* linkoffset to next RFD */ unsigned short rbd_offset; /* pointeroffset to RBD-buffer */ - unsigned char dest[6]; /* ethernet-address, destination */ - unsigned char source[6]; /* ethernet-address, source */ + unsigned char dest[ETH_ALEN]; /* ethernet-address, destination */ + unsigned char source[ETH_ALEN]; /* ethernet-address, source */ unsigned short length; /* 802.3 frame-length */ unsigned short zero_dummy; /* dummy */ }; diff --git a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c index 967bae8..d4cdf4d 100644 --- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c +++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c @@ -244,7 +244,7 @@ struct myri10ge_priv { int fw_ver_minor; int fw_ver_tiny; int adopted_rx_filter_bug; - u8 mac_addr[6]; /* eeprom mac address */ + u8 mac_addr[ETH_ALEN]; /* eeprom mac address */ unsigned long serial_number; int vendor_specific_offset; int fw_multicast_support; diff --git a/drivers/net/ethernet/nuvoton/w90p910_ether.c b/drivers/net/ethernet/nuvoton/w90p910_ether.c index e88bdb1..dcfe58f 100644 --- a/drivers/net/ethernet/nuvoton/w90p910_ether.c +++ b/drivers/net/ethernet/nuvoton/w90p910_ether.c @@ -922,7 +922,7 @@ static void __init get_mac_address(struct net_device *dev) { struct w90p910_ether *ether = netdev_priv(dev); struct platform_device *pdev; - char addr[6]; + char addr[ETH_ALEN]; pdev = ether->pdev; @@ -934,7 +934,7 @@ static void __init get_mac_address(struct net_device *dev) addr[5] = 0xa8; if (is_valid_ether_addr(addr)) - memcpy(dev->dev_addr, &addr, 0x06); + memcpy(dev->dev_addr, &addr, ETH_ALEN); else dev_err(&pdev->dev, "invalid mac address\n"); } diff --git a/drivers/net/ethernet/pasemi/pasemi_mac.c b/drivers/net/ethernet/pasemi/pasemi_mac.c index a5f0b5d..f21ae7b 100644 --- a/drivers/net/ethernet/pasemi/pasemi_mac.c +++ b/drivers/net/ethernet/pasemi/pasemi_mac.c @@ -191,7 +191,7 @@ static int pasemi_get_mac_addr(struct pasemi_mac *mac) struct device_node *dn = pci_device_to_OF_node(pdev); int len; const u8 *maddr; - u8 addr[6]; + u8 addr[ETH_ALEN]; if (!dn) { dev_dbg(&pdev->dev, @@ -201,8 +201,8 @@ static int pasemi_get_mac_addr(struct pasemi_mac *mac) maddr = of_get_property(dn, "local-mac-address", &len); - if (maddr && len == 6) { - memcpy(mac->mac_addr, maddr, 6); + if (maddr && len == ETH_ALEN) { + memcpy(mac->mac_addr, maddr, ETH_ALEN); return 0; } @@ -219,14 +219,15 @@ static int pasemi_get_mac_addr(struct pasemi_mac *mac) return -ENOENT; } - if (sscanf(maddr, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &addr[0], - &addr[1], &addr[2], &addr[3], &addr[4], &addr[5]) != 6) { + if (sscanf(maddr, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + &addr[0], &addr[1], &addr[2], &addr[3], &addr[4], &addr[5]) + != ETH_ALEN) { dev_warn(&pdev->dev, "can't parse mac address, not configuring\n"); return -EINVAL; } - memcpy(mac->mac_addr, addr, 6); + memcpy(mac->mac_addr, addr, ETH_ALEN); return 0; } diff --git a/drivers/net/ethernet/pasemi/pasemi_mac.h b/drivers/net/ethernet/pasemi/pasemi_mac.h index e2f4efa..649fdb4 100644 --- a/drivers/net/ethernet/pasemi/pasemi_mac.h +++ b/drivers/net/ethernet/pasemi/pasemi_mac.h @@ -79,11 +79,11 @@ struct pasemi_mac { int last_cs; int num_cs; u32 dma_if; - u8 type; #define MAC_TYPE_GMAC 1 #define MAC_TYPE_XAUI 2 - u8 mac_addr[6]; + u8 mac_addr[ETH_ALEN]; + u8 type; struct net_lro_mgr lro_mgr; struct net_lro_desc lro_desc[MAX_LRO_DESCRIPTORS]; diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c index 9fbb1cd..8375cbd 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c @@ -536,10 +536,10 @@ static void netxen_p2_nic_set_multi(struct net_device *netdev) { struct netxen_adapter *adapter = netdev_priv(netdev); struct netdev_hw_addr *ha; - u8 null_addr[6]; + u8 null_addr[ETH_ALEN]; int i; - memset(null_addr, 0, 6); + memset(null_addr, 0, ETH_ALEN); if (netdev->flags & IFF_PROMISC) { diff --git a/drivers/net/ethernet/qlogic/qlge/qlge.h b/drivers/net/ethernet/qlogic/qlge/qlge.h index 7e8d682..8994337 100644 --- a/drivers/net/ethernet/qlogic/qlge/qlge.h +++ b/drivers/net/ethernet/qlogic/qlge/qlge.h @@ -2149,7 +2149,7 @@ struct ql_adapter { struct timer_list timer; atomic_t lb_count; /* Keep local copy of current mac address. */ - char current_mac_addr[6]; + char current_mac_addr[ETH_ALEN]; }; /* -- 1.8.1.2.459.gbcd45b4.dirty ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH V2 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN 2013-08-01 20:14 ` [PATCH V2 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN Joe Perches @ 2013-08-01 20:31 ` Olof Johansson 2013-08-01 20:33 ` Russell King - ARM Linux 0 siblings, 1 reply; 19+ messages in thread From: Olof Johansson @ 2013-08-01 20:31 UTC (permalink / raw) To: Joe Perches Cc: Network Development, Don Fry, Grant Grundler, Sam Creasey, Andrew Gallatin, Wan ZongShun, Manish Chopra, Sony Chacko, Rajesh Borundia, Shahed Shaikh, Jitendra Kalsaria, Ron Mercer, linux-driver, linux-kernel, linux-arm-kernel Hi, On Thu, Aug 1, 2013 at 1:14 PM, Joe Perches <joe@perches.com> wrote: > diff --git a/drivers/net/ethernet/pasemi/pasemi_mac.h b/drivers/net/ethernet/pasemi/pasemi_mac.h > index e2f4efa..649fdb4 100644 > --- a/drivers/net/ethernet/pasemi/pasemi_mac.h > +++ b/drivers/net/ethernet/pasemi/pasemi_mac.h > @@ -79,11 +79,11 @@ struct pasemi_mac { > int last_cs; > int num_cs; > u32 dma_if; > - u8 type; > #define MAC_TYPE_GMAC 1 > #define MAC_TYPE_XAUI 2 > > - u8 mac_addr[6]; > + u8 mac_addr[ETH_ALEN]; > + u8 type; Just promote 'type' to u32 instead, saves you from moving the #defines down, etc, etc. -Olof ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH V2 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN 2013-08-01 20:31 ` Olof Johansson @ 2013-08-01 20:33 ` Russell King - ARM Linux 2013-08-01 20:55 ` Joe Perches 0 siblings, 1 reply; 19+ messages in thread From: Russell King - ARM Linux @ 2013-08-01 20:33 UTC (permalink / raw) To: Olof Johansson Cc: Joe Perches, Sam Creasey, Grant Grundler, Wan ZongShun, Rajesh Borundia, Network Development, Sony Chacko, linux-kernel, Manish Chopra, Don Fry, Ron Mercer, Andrew Gallatin, linux-driver, Jitendra Kalsaria, linux-arm-kernel, Shahed Shaikh On Thu, Aug 01, 2013 at 01:31:09PM -0700, Olof Johansson wrote: > Hi, > > On Thu, Aug 1, 2013 at 1:14 PM, Joe Perches <joe@perches.com> wrote: > > > diff --git a/drivers/net/ethernet/pasemi/pasemi_mac.h b/drivers/net/ethernet/pasemi/pasemi_mac.h > > index e2f4efa..649fdb4 100644 > > --- a/drivers/net/ethernet/pasemi/pasemi_mac.h > > +++ b/drivers/net/ethernet/pasemi/pasemi_mac.h > > @@ -79,11 +79,11 @@ struct pasemi_mac { > > int last_cs; > > int num_cs; > > u32 dma_if; > > - u8 type; > > #define MAC_TYPE_GMAC 1 > > #define MAC_TYPE_XAUI 2 > > > > - u8 mac_addr[6]; > > + u8 mac_addr[ETH_ALEN]; > > + u8 type; > > Just promote 'type' to u32 instead, saves you from moving the #defines > down, etc, etc. There's a more fundamental question which has to be asked: what is the point of moving that in the first place? ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH V2 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN 2013-08-01 20:33 ` Russell King - ARM Linux @ 2013-08-01 20:55 ` Joe Perches 2013-08-01 20:58 ` Russell King - ARM Linux 0 siblings, 1 reply; 19+ messages in thread From: Joe Perches @ 2013-08-01 20:55 UTC (permalink / raw) To: Russell King - ARM Linux Cc: Olof Johansson, Sam Creasey, Grant Grundler, Wan ZongShun, Rajesh Borundia, Network Development, Sony Chacko, linux-kernel, Manish Chopra, Don Fry, Ron Mercer, Andrew Gallatin, linux-driver, Jitendra Kalsaria, linux-arm-kernel, Shahed Shaikh On Thu, 2013-08-01 at 21:33 +0100, Russell King - ARM Linux wrote: > On Thu, Aug 01, 2013 at 01:31:09PM -0700, Olof Johansson wrote: > > Hi, Hi all. > > On Thu, Aug 1, 2013 at 1:14 PM, Joe Perches <joe@perches.com> wrote: > > > diff --git a/drivers/net/ethernet/pasemi/pasemi_mac.h b/drivers/net/ethernet/pasemi/pasemi_mac.h [] > > > @@ -79,11 +79,11 @@ struct pasemi_mac { > > > int last_cs; > > > int num_cs; > > > u32 dma_if; > > > - u8 type; > > > #define MAC_TYPE_GMAC 1 > > > #define MAC_TYPE_XAUI 2 > > > > > > - u8 mac_addr[6]; > > > + u8 mac_addr[ETH_ALEN]; > > > + u8 type; > > > > Just promote 'type' to u32 instead, saves you from moving the #defines > > down, etc, etc. type is already u8, why change it? That would also change struct size. > There's a more fundamental question which has to be asked: what is the > point of moving that in the first place? Some is_<foo>_ether_addr tests assume __aligned(2) by a casting char * to u16/be16 * and dereferencing. see patch 0/3 and include/linux/etherdevice.h ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH V2 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN 2013-08-01 20:55 ` Joe Perches @ 2013-08-01 20:58 ` Russell King - ARM Linux 2013-08-01 21:04 ` Joe Perches 0 siblings, 1 reply; 19+ messages in thread From: Russell King - ARM Linux @ 2013-08-01 20:58 UTC (permalink / raw) To: Joe Perches Cc: Olof Johansson, Sam Creasey, Grant Grundler, Wan ZongShun, Rajesh Borundia, Network Development, Sony Chacko, linux-kernel, Manish Chopra, Don Fry, Ron Mercer, Andrew Gallatin, linux-driver, Jitendra Kalsaria, linux-arm-kernel, Shahed Shaikh On Thu, Aug 01, 2013 at 01:55:28PM -0700, Joe Perches wrote: > On Thu, 2013-08-01 at 21:33 +0100, Russell King - ARM Linux wrote: > > On Thu, Aug 01, 2013 at 01:31:09PM -0700, Olof Johansson wrote: > > > Hi, > > Hi all. > > > > On Thu, Aug 1, 2013 at 1:14 PM, Joe Perches <joe@perches.com> wrote: > > > > diff --git a/drivers/net/ethernet/pasemi/pasemi_mac.h b/drivers/net/ethernet/pasemi/pasemi_mac.h > [] > > > > @@ -79,11 +79,11 @@ struct pasemi_mac { > > > > int last_cs; > > > > int num_cs; > > > > u32 dma_if; > > > > - u8 type; > > > > #define MAC_TYPE_GMAC 1 > > > > #define MAC_TYPE_XAUI 2 > > > > > > > > - u8 mac_addr[6]; > > > > + u8 mac_addr[ETH_ALEN]; > > > > + u8 type; > > > > > > Just promote 'type' to u32 instead, saves you from moving the #defines > > > down, etc, etc. > > type is already u8, why change it? > That would also change struct size. > > > There's a more fundamental question which has to be asked: what is the > > point of moving that in the first place? > > Some is_<foo>_ether_addr tests assume __aligned(2) > by a casting char * to u16/be16 * and dereferencing. > > see patch 0/3 and include/linux/etherdevice.h This seems rather obscure - I mean, it's not obvious to driver authors that should be the case. Would it not be better to make this a little more obvious somehow? Maybe __aligned(2) against mac_addr? Or maybe have a debugging check for it? ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH V2 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN 2013-08-01 20:58 ` Russell King - ARM Linux @ 2013-08-01 21:04 ` Joe Perches 2013-08-01 21:06 ` Russell King - ARM Linux 0 siblings, 1 reply; 19+ messages in thread From: Joe Perches @ 2013-08-01 21:04 UTC (permalink / raw) To: Russell King - ARM Linux, David Miller Cc: Olof Johansson, Sam Creasey, Grant Grundler, Wan ZongShun, Rajesh Borundia, Network Development, Sony Chacko, linux-kernel, Manish Chopra, Don Fry, Ron Mercer, Andrew Gallatin, linux-driver, Jitendra Kalsaria, linux-arm-kernel, Shahed Shaikh On Thu, 2013-08-01 at 21:58 +0100, Russell King - ARM Linux wrote: > On Thu, Aug 01, 2013 at 01:55:28PM -0700, Joe Perches wrote: > > On Thu, 2013-08-01 at 21:33 +0100, Russell King - ARM Linux wrote: > > > On Thu, Aug 01, 2013 at 01:31:09PM -0700, Olof Johansson wrote: > > > > On Thu, Aug 1, 2013 at 1:14 PM, Joe Perches <joe@perches.com> wrote: > > > > > diff --git a/drivers/net/ethernet/pasemi/pasemi_mac.h b/drivers/net/ethernet/pasemi/pasemi_mac.h > > [] > > > > > @@ -79,11 +79,11 @@ struct pasemi_mac { > > > > > int last_cs; > > > > > int num_cs; > > > > > u32 dma_if; > > > > > - u8 type; > > > > > #define MAC_TYPE_GMAC 1 > > > > > #define MAC_TYPE_XAUI 2 > > > > > > > > > > - u8 mac_addr[6]; > > > > > + u8 mac_addr[ETH_ALEN]; > > > > > + u8 type; > > > > > > > > Just promote 'type' to u32 instead, saves you from moving the #defines > > > > down, etc, etc. > > > > type is already u8, why change it? > > That would also change struct size. > > > > > There's a more fundamental question which has to be asked: what is the > > > point of moving that in the first place? > > > > Some is_<foo>_ether_addr tests assume __aligned(2) > > by a casting char * to u16/be16 * and dereferencing. > > > > see patch 0/3 and include/linux/etherdevice.h > > This seems rather obscure - I mean, it's not obvious to driver authors > that should be the case. Would it not be better to make this a little > more obvious somehow? Maybe __aligned(2) against mac_addr? Or > maybe have a debugging check for it? That'd be for David Miller (cc'd). I believe he's argued in the past that any alignment check for mac addresses was unnecessary. For all I know it really might not matter because pasemi can successfully dereference a ushort against an odd char pointer. I just noticed it and thought it'd be better moved. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH V2 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN 2013-08-01 21:04 ` Joe Perches @ 2013-08-01 21:06 ` Russell King - ARM Linux 2013-08-01 21:10 ` David Miller 0 siblings, 1 reply; 19+ messages in thread From: Russell King - ARM Linux @ 2013-08-01 21:06 UTC (permalink / raw) To: Joe Perches Cc: David Miller, Olof Johansson, Sam Creasey, Grant Grundler, Wan ZongShun, Rajesh Borundia, Network Development, Sony Chacko, linux-kernel, Manish Chopra, Don Fry, Ron Mercer, Andrew Gallatin, linux-driver, Jitendra Kalsaria, linux-arm-kernel, Shahed Shaikh On Thu, Aug 01, 2013 at 02:04:47PM -0700, Joe Perches wrote: > On Thu, 2013-08-01 at 21:58 +0100, Russell King - ARM Linux wrote: > > This seems rather obscure - I mean, it's not obvious to driver authors > > that should be the case. Would it not be better to make this a little > > more obvious somehow? Maybe __aligned(2) against mac_addr? Or > > maybe have a debugging check for it? > > That'd be for David Miller (cc'd). > > I believe he's argued in the past that any alignment check > for mac addresses was unnecessary. > > For all I know it really might not matter because pasemi > can successfully dereference a ushort against an odd char > pointer. > > I just noticed it and thought it'd be better moved. As can ARM too for years now - either in hardware or via fixup for kernel code. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH V2 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN 2013-08-01 21:06 ` Russell King - ARM Linux @ 2013-08-01 21:10 ` David Miller 2013-08-01 21:24 ` Olof Johansson 0 siblings, 1 reply; 19+ messages in thread From: David Miller @ 2013-08-01 21:10 UTC (permalink / raw) To: linux Cc: joe, olof, sammy, grundler, mcuos.com, rajesh.borundia, netdev, sony.chacko, linux-kernel, manish.chopra, pcnet32, ron.mercer, gallatin, linux-driver, jitendra.kalsaria, linux-arm-kernel, shahed.shaikh From: Russell King - ARM Linux <linux@arm.linux.org.uk> Date: Thu, 1 Aug 2013 22:06:18 +0100 > On Thu, Aug 01, 2013 at 02:04:47PM -0700, Joe Perches wrote: >> On Thu, 2013-08-01 at 21:58 +0100, Russell King - ARM Linux wrote: >> > This seems rather obscure - I mean, it's not obvious to driver authors >> > that should be the case. Would it not be better to make this a little >> > more obvious somehow? Maybe __aligned(2) against mac_addr? Or >> > maybe have a debugging check for it? >> >> That'd be for David Miller (cc'd). >> >> I believe he's argued in the past that any alignment check >> for mac addresses was unnecessary. >> >> For all I know it really might not matter because pasemi >> can successfully dereference a ushort against an odd char >> pointer. >> >> I just noticed it and thought it'd be better moved. > > As can ARM too for years now - either in hardware or via fixup for > kernel code. But probably not a good idea if it's done in a fast path. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH V2 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN 2013-08-01 21:10 ` David Miller @ 2013-08-01 21:24 ` Olof Johansson 2013-08-01 21:31 ` David Miller 0 siblings, 1 reply; 19+ messages in thread From: Olof Johansson @ 2013-08-01 21:24 UTC (permalink / raw) To: David Miller Cc: Russell King - ARM Linux, Joe Perches, Sam Creasey, Grant Grundler, ZongShun Wan, Rajesh Borundia, Network Development, Sony Chacko, linux-kernel, Manish Chopra, Don Fry, Ron Mercer, Andrew Gallatin, linux-driver, Jitendra Kalsaria, linux-arm-kernel, Shahed Shaikh On Thu, Aug 1, 2013 at 2:10 PM, David Miller <davem@davemloft.net> wrote: > From: Russell King - ARM Linux <linux@arm.linux.org.uk> > Date: Thu, 1 Aug 2013 22:06:18 +0100 > >> On Thu, Aug 01, 2013 at 02:04:47PM -0700, Joe Perches wrote: >>> On Thu, 2013-08-01 at 21:58 +0100, Russell King - ARM Linux wrote: >>> > This seems rather obscure - I mean, it's not obvious to driver authors >>> > that should be the case. Would it not be better to make this a little >>> > more obvious somehow? Maybe __aligned(2) against mac_addr? Or >>> > maybe have a debugging check for it? >>> >>> That'd be for David Miller (cc'd). >>> >>> I believe he's argued in the past that any alignment check >>> for mac addresses was unnecessary. >>> >>> For all I know it really might not matter because pasemi >>> can successfully dereference a ushort against an odd char >>> pointer. >>> >>> I just noticed it and thought it'd be better moved. >> >> As can ARM too for years now - either in hardware or via fixup for >> kernel code. > > But probably not a good idea if it's done in a fast path. This particular driver is for the PA Semi chips, and I very much doubt that compatible hardware will ever show up anywhere else; they're fairly dependent on the I/O architecture of the chip and Apple has not brought those aspects forward in their ARM chips, as far as I know. So, you might as well leave the code alone for now. It's not used on fast path, and the system definitely handles unaligned accesses for this -- it has for years already. -Olof ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH V2 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN 2013-08-01 21:24 ` Olof Johansson @ 2013-08-01 21:31 ` David Miller 2013-08-01 23:17 ` [PATCH V3 0/3] networking: Use ETH_ALEN where appropriate Joe Perches 0 siblings, 1 reply; 19+ messages in thread From: David Miller @ 2013-08-01 21:31 UTC (permalink / raw) To: olof Cc: linux, joe, sammy, grundler, mcuos.com, rajesh.borundia, netdev, sony.chacko, linux-kernel, manish.chopra, pcnet32, ron.mercer, gallatin, linux-driver, jitendra.kalsaria, linux-arm-kernel, shahed.shaikh From: Olof Johansson <olof@lixom.net> Date: Thu, 1 Aug 2013 14:24:32 -0700 > So, you might as well leave the code alone for now. It's not used on > fast path, and the system definitely handles unaligned accesses for > this -- it has for years already. Fair enough, Joe please respin. ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH V3 0/3] networking: Use ETH_ALEN where appropriate 2013-08-01 21:31 ` David Miller @ 2013-08-01 23:17 ` Joe Perches 2013-08-01 23:17 ` [PATCH V3 1/3] uapi: Convert some uses of 6 to ETH_ALEN Joe Perches ` (3 more replies) 0 siblings, 4 replies; 19+ messages in thread From: Joe Perches @ 2013-08-01 23:17 UTC (permalink / raw) To: netdev Cc: linux-kernel, linux-arm-kernel, linuxppc-dev, linux-usb, linux-media, netfilter-devel, virtualization, wimax Convert the uses mac addresses to ETH_ALEN so it's easier to find and verify where mac addresses need to be __aligned(2) Change in V2: - Remove include/acpi/actbl2.h conversion It's a file copied from outside ACPI sources Changes in V3: - Don't move the pasemi_mac.h mac address to be aligned(2) Just note that it's unaligned. Joe Perches (3): uapi: Convert some uses of 6 to ETH_ALEN include: Convert ethernet mac address declarations to use ETH_ALEN ethernet: Convert mac address uses of 6 to ETH_ALEN drivers/net/ethernet/8390/ax88796.c | 4 +- drivers/net/ethernet/amd/pcnet32.c | 6 +-- drivers/net/ethernet/broadcom/cnic_if.h | 6 +-- drivers/net/ethernet/dec/tulip/tulip_core.c | 8 +-- drivers/net/ethernet/i825xx/sun3_82586.h | 4 +- drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 2 +- drivers/net/ethernet/nuvoton/w90p910_ether.c | 4 +- drivers/net/ethernet/pasemi/pasemi_mac.c | 13 ++--- drivers/net/ethernet/pasemi/pasemi_mac.h | 2 +- drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c | 4 +- drivers/net/ethernet/qlogic/qlge/qlge.h | 2 +- include/linux/dm9000.h | 4 +- include/linux/fs_enet_pd.h | 3 +- include/linux/ieee80211.h | 59 +++++++++++----------- include/linux/mlx4/device.h | 11 ++-- include/linux/mlx4/qp.h | 5 +- include/linux/mv643xx_eth.h | 3 +- include/linux/sh_eth.h | 3 +- include/linux/smsc911x.h | 3 +- include/linux/uwb/spec.h | 5 +- include/media/tveeprom.h | 4 +- include/net/irda/irlan_common.h | 3 +- include/uapi/linux/dn.h | 3 +- include/uapi/linux/if_bridge.h | 3 +- include/uapi/linux/netfilter_bridge/ebt_802_3.h | 5 +- include/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h | 3 +- include/uapi/linux/virtio_net.h | 2 +- include/uapi/linux/wimax/i2400m.h | 4 +- 28 files changed, 99 insertions(+), 79 deletions(-) -- 1.8.1.2.459.gbcd45b4.dirty ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH V3 1/3] uapi: Convert some uses of 6 to ETH_ALEN 2013-08-01 23:17 ` [PATCH V3 0/3] networking: Use ETH_ALEN where appropriate Joe Perches @ 2013-08-01 23:17 ` Joe Perches 2013-08-01 23:17 ` [PATCH V3 2/3] include: Convert ethernet mac address declarations to use ETH_ALEN Joe Perches ` (2 subsequent siblings) 3 siblings, 0 replies; 19+ messages in thread From: Joe Perches @ 2013-08-01 23:17 UTC (permalink / raw) To: netdev Cc: Bart De Schuymer, Rusty Russell, Michael S. Tsirkin, Inaky Perez-Gonzalez, linux-wimax, linux-kernel, netfilter-devel, virtualization, wimax Use the #define where appropriate. Add #include <linux/if_ether.h> where appropriate too. Signed-off-by: Joe Perches <joe@perches.com> --- include/uapi/linux/dn.h | 3 ++- include/uapi/linux/if_bridge.h | 3 ++- include/uapi/linux/netfilter_bridge/ebt_802_3.h | 5 +++-- include/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h | 3 ++- include/uapi/linux/virtio_net.h | 2 +- include/uapi/linux/wimax/i2400m.h | 4 ++-- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/include/uapi/linux/dn.h b/include/uapi/linux/dn.h index 9c50445..5fbdd3d 100644 --- a/include/uapi/linux/dn.h +++ b/include/uapi/linux/dn.h @@ -2,6 +2,7 @@ #define _LINUX_DN_H #include <linux/types.h> +#include <linux/if_ether.h> /* @@ -120,7 +121,7 @@ struct linkinfo_dn { * Ethernet address format (for DECnet) */ union etheraddress { - __u8 dne_addr[6]; /* Full ethernet address */ + __u8 dne_addr[ETH_ALEN]; /* Full ethernet address */ struct { __u8 dne_hiord[4]; /* DECnet HIORD prefix */ __u8 dne_nodeaddr[2]; /* DECnet node address */ diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h index 2d70d79..39f621a 100644 --- a/include/uapi/linux/if_bridge.h +++ b/include/uapi/linux/if_bridge.h @@ -14,6 +14,7 @@ #define _UAPI_LINUX_IF_BRIDGE_H #include <linux/types.h> +#include <linux/if_ether.h> #define SYSFS_BRIDGE_ATTR "bridge" #define SYSFS_BRIDGE_FDB "brforward" @@ -88,7 +89,7 @@ struct __port_info { }; struct __fdb_entry { - __u8 mac_addr[6]; + __u8 mac_addr[ETH_ALEN]; __u8 port_no; __u8 is_local; __u32 ageing_timer_value; diff --git a/include/uapi/linux/netfilter_bridge/ebt_802_3.h b/include/uapi/linux/netfilter_bridge/ebt_802_3.h index 5bf8491..f37522a 100644 --- a/include/uapi/linux/netfilter_bridge/ebt_802_3.h +++ b/include/uapi/linux/netfilter_bridge/ebt_802_3.h @@ -2,6 +2,7 @@ #define _UAPI__LINUX_BRIDGE_EBT_802_3_H #include <linux/types.h> +#include <linux/if_ether.h> #define EBT_802_3_SAP 0x01 #define EBT_802_3_TYPE 0x02 @@ -42,8 +43,8 @@ struct hdr_ni { }; struct ebt_802_3_hdr { - __u8 daddr[6]; - __u8 saddr[6]; + __u8 daddr[ETH_ALEN]; + __u8 saddr[ETH_ALEN]; __be16 len; union { struct hdr_ui ui; diff --git a/include/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h b/include/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h index c6a204c..eac0f65 100644 --- a/include/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h +++ b/include/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h @@ -2,6 +2,7 @@ #define _IPT_CLUSTERIP_H_target #include <linux/types.h> +#include <linux/if_ether.h> enum clusterip_hashmode { CLUSTERIP_HASHMODE_SIP = 0, @@ -22,7 +23,7 @@ struct ipt_clusterip_tgt_info { __u32 flags; /* only relevant for new ones */ - __u8 clustermac[6]; + __u8 clustermac[ETH_ALEN]; __u16 num_total_nodes; __u16 num_local_nodes; __u16 local_nodes[CLUSTERIP_MAX_NODES]; diff --git a/include/uapi/linux/virtio_net.h b/include/uapi/linux/virtio_net.h index 227d4ce..172a7f0 100644 --- a/include/uapi/linux/virtio_net.h +++ b/include/uapi/linux/virtio_net.h @@ -60,7 +60,7 @@ struct virtio_net_config { /* The config defining mac address (if VIRTIO_NET_F_MAC) */ - __u8 mac[6]; + __u8 mac[ETH_ALEN]; /* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */ __u16 status; /* Maximum number of each of transmit and receive queues; diff --git a/include/uapi/linux/wimax/i2400m.h b/include/uapi/linux/wimax/i2400m.h index 62d3561..fd198bc 100644 --- a/include/uapi/linux/wimax/i2400m.h +++ b/include/uapi/linux/wimax/i2400m.h @@ -122,7 +122,7 @@ #define __LINUX__WIMAX__I2400M_H__ #include <linux/types.h> - +#include <linux/if_ether.h> /* * Host Device Interface (HDI) common to all busses @@ -487,7 +487,7 @@ struct i2400m_tlv_l4_message_versions { struct i2400m_tlv_detailed_device_info { struct i2400m_tlv_hdr hdr; __u8 reserved1[400]; - __u8 mac_address[6]; + __u8 mac_address[ETH_ALEN]; __u8 reserved2[2]; } __attribute__((packed)); -- 1.8.1.2.459.gbcd45b4.dirty ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH V3 2/3] include: Convert ethernet mac address declarations to use ETH_ALEN 2013-08-01 23:17 ` [PATCH V3 0/3] networking: Use ETH_ALEN where appropriate Joe Perches 2013-08-01 23:17 ` [PATCH V3 1/3] uapi: Convert some uses of 6 to ETH_ALEN Joe Perches @ 2013-08-01 23:17 ` Joe Perches 2013-08-01 23:17 ` [PATCH V3 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN Joe Perches 2013-08-02 19:34 ` [PATCH V3 0/3] networking: Use ETH_ALEN where appropriate David Miller 3 siblings, 0 replies; 19+ messages in thread From: Joe Perches @ 2013-08-01 23:17 UTC (permalink / raw) To: netdev Cc: Pantelis Antoniou, Vitaly Bordug, Steve Glendinning, Mauro Carvalho Chehab, Samuel Ortiz, David S. Miller, linux-kernel, linuxppc-dev, linux-usb, linux-media It's convenient to have ethernet mac addresses use ETH_ALEN to be able to grep for them a bit easier and also to ensure that the addresses are __aligned(2). Add #include <linux/if_ether.h> as necessary. Signed-off-by: Joe Perches <joe@perches.com> Acked-by: Mauro Carvalho Chehab <m.chehab@samsung.com> --- include/linux/dm9000.h | 4 ++- include/linux/fs_enet_pd.h | 3 ++- include/linux/ieee80211.h | 59 +++++++++++++++++++++-------------------- include/linux/mlx4/device.h | 11 ++++---- include/linux/mlx4/qp.h | 5 ++-- include/linux/mv643xx_eth.h | 3 ++- include/linux/sh_eth.h | 3 ++- include/linux/smsc911x.h | 3 ++- include/linux/uwb/spec.h | 5 ++-- include/media/tveeprom.h | 4 ++- include/net/irda/irlan_common.h | 3 ++- 11 files changed, 58 insertions(+), 45 deletions(-) diff --git a/include/linux/dm9000.h b/include/linux/dm9000.h index 96e8769..841925f 100644 --- a/include/linux/dm9000.h +++ b/include/linux/dm9000.h @@ -14,6 +14,8 @@ #ifndef __DM9000_PLATFORM_DATA #define __DM9000_PLATFORM_DATA __FILE__ +#include <linux/if_ether.h> + /* IO control flags */ #define DM9000_PLATF_8BITONLY (0x0001) @@ -27,7 +29,7 @@ struct dm9000_plat_data { unsigned int flags; - unsigned char dev_addr[6]; + unsigned char dev_addr[ETH_ALEN]; /* allow replacement IO routines */ diff --git a/include/linux/fs_enet_pd.h b/include/linux/fs_enet_pd.h index 51b7934..343d82a 100644 --- a/include/linux/fs_enet_pd.h +++ b/include/linux/fs_enet_pd.h @@ -18,6 +18,7 @@ #include <linux/string.h> #include <linux/of_mdio.h> +#include <linux/if_ether.h> #include <asm/types.h> #define FS_ENET_NAME "fs_enet" @@ -135,7 +136,7 @@ struct fs_platform_info { const struct fs_mii_bus_info *bus_info; int rx_ring, tx_ring; /* number of buffers on rx */ - __u8 macaddr[6]; /* mac address */ + __u8 macaddr[ETH_ALEN]; /* mac address */ int rx_copybreak; /* limit we copy small frames */ int use_napi; /* use NAPI */ int napi_weight; /* NAPI weight */ diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index b0dc87a..4e101af 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h @@ -16,6 +16,7 @@ #define LINUX_IEEE80211_H #include <linux/types.h> +#include <linux/if_ether.h> #include <asm/byteorder.h> /* @@ -209,28 +210,28 @@ static inline u16 ieee80211_sn_sub(u16 sn1, u16 sn2) struct ieee80211_hdr { __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]; } __packed __aligned(2); struct ieee80211_hdr_3addr { __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; } __packed __aligned(2); struct ieee80211_qos_hdr { __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; __le16 qos_ctrl; } __packed __aligned(2); @@ -608,8 +609,8 @@ struct ieee80211s_hdr { u8 flags; u8 ttl; __le32 seqnum; - u8 eaddr1[6]; - u8 eaddr2[6]; + u8 eaddr1[ETH_ALEN]; + u8 eaddr2[ETH_ALEN]; } __packed __aligned(2); /* Mesh flags */ @@ -758,7 +759,7 @@ struct ieee80211_rann_ie { u8 rann_flags; u8 rann_hopcount; u8 rann_ttl; - u8 rann_addr[6]; + u8 rann_addr[ETH_ALEN]; __le32 rann_seq; __le32 rann_interval; __le32 rann_metric; @@ -802,9 +803,9 @@ enum ieee80211_vht_opmode_bits { struct ieee80211_mgmt { __le16 frame_control; __le16 duration; - u8 da[6]; - u8 sa[6]; - u8 bssid[6]; + u8 da[ETH_ALEN]; + u8 sa[ETH_ALEN]; + u8 bssid[ETH_ALEN]; __le16 seq_ctrl; union { struct { @@ -833,7 +834,7 @@ struct ieee80211_mgmt { struct { __le16 capab_info; __le16 listen_interval; - u8 current_ap[6]; + u8 current_ap[ETH_ALEN]; /* followed by SSID and Supported rates */ u8 variable[0]; } __packed reassoc_req; @@ -966,21 +967,21 @@ struct ieee80211_vendor_ie { struct ieee80211_rts { __le16 frame_control; __le16 duration; - u8 ra[6]; - u8 ta[6]; + u8 ra[ETH_ALEN]; + u8 ta[ETH_ALEN]; } __packed __aligned(2); struct ieee80211_cts { __le16 frame_control; __le16 duration; - u8 ra[6]; + u8 ra[ETH_ALEN]; } __packed __aligned(2); struct ieee80211_pspoll { __le16 frame_control; __le16 aid; - u8 bssid[6]; - u8 ta[6]; + u8 bssid[ETH_ALEN]; + u8 ta[ETH_ALEN]; } __packed __aligned(2); /* TDLS */ @@ -989,14 +990,14 @@ struct ieee80211_pspoll { struct ieee80211_tdls_lnkie { u8 ie_type; /* Link Identifier IE */ u8 ie_len; - u8 bssid[6]; - u8 init_sta[6]; - u8 resp_sta[6]; + u8 bssid[ETH_ALEN]; + u8 init_sta[ETH_ALEN]; + u8 resp_sta[ETH_ALEN]; } __packed; struct ieee80211_tdls_data { - u8 da[6]; - u8 sa[6]; + u8 da[ETH_ALEN]; + u8 sa[ETH_ALEN]; __be16 ether_type; u8 payload_type; u8 category; @@ -1090,8 +1091,8 @@ struct ieee80211_p2p_noa_attr { struct ieee80211_bar { __le16 frame_control; __le16 duration; - __u8 ra[6]; - __u8 ta[6]; + __u8 ra[ETH_ALEN]; + __u8 ta[ETH_ALEN]; __le16 control; __le16 start_seq_num; } __packed; diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h index 6aebdfe..09ef2f4 100644 --- a/include/linux/mlx4/device.h +++ b/include/linux/mlx4/device.h @@ -33,6 +33,7 @@ #ifndef MLX4_DEVICE_H #define MLX4_DEVICE_H +#include <linux/if_ether.h> #include <linux/pci.h> #include <linux/completion.h> #include <linux/radix-tree.h> @@ -620,7 +621,7 @@ struct mlx4_eth_av { u8 dgid[16]; u32 reserved4[2]; __be16 vlan; - u8 mac[6]; + u8 mac[ETH_ALEN]; }; union mlx4_ext_av { @@ -914,10 +915,10 @@ enum mlx4_net_trans_promisc_mode { }; struct mlx4_spec_eth { - u8 dst_mac[6]; - u8 dst_mac_msk[6]; - u8 src_mac[6]; - u8 src_mac_msk[6]; + u8 dst_mac[ETH_ALEN]; + u8 dst_mac_msk[ETH_ALEN]; + u8 src_mac[ETH_ALEN]; + u8 src_mac_msk[ETH_ALEN]; u8 ether_type_enable; __be16 ether_type; __be16 vlan_id_msk; diff --git a/include/linux/mlx4/qp.h b/include/linux/mlx4/qp.h index 262deac..6d35147 100644 --- a/include/linux/mlx4/qp.h +++ b/include/linux/mlx4/qp.h @@ -34,6 +34,7 @@ #define MLX4_QP_H #include <linux/types.h> +#include <linux/if_ether.h> #include <linux/mlx4/device.h> @@ -143,7 +144,7 @@ struct mlx4_qp_path { u8 feup; u8 fvl_rx; u8 reserved4[2]; - u8 dmac[6]; + u8 dmac[ETH_ALEN]; }; enum { /* fl */ @@ -318,7 +319,7 @@ struct mlx4_wqe_datagram_seg { __be32 dqpn; __be32 qkey; __be16 vlan; - u8 mac[6]; + u8 mac[ETH_ALEN]; }; struct mlx4_wqe_lso_seg { diff --git a/include/linux/mv643xx_eth.h b/include/linux/mv643xx_eth.h index 6e8215b..61a0da3 100644 --- a/include/linux/mv643xx_eth.h +++ b/include/linux/mv643xx_eth.h @@ -6,6 +6,7 @@ #define __LINUX_MV643XX_ETH_H #include <linux/mbus.h> +#include <linux/if_ether.h> #define MV643XX_ETH_SHARED_NAME "mv643xx_eth" #define MV643XX_ETH_NAME "mv643xx_eth_port" @@ -48,7 +49,7 @@ struct mv643xx_eth_platform_data { * Use this MAC address if it is valid, overriding the * address that is already in the hardware. */ - u8 mac_addr[6]; + u8 mac_addr[ETH_ALEN]; /* * If speed is 0, autonegotiation is enabled. diff --git a/include/linux/sh_eth.h b/include/linux/sh_eth.h index fc30571..6205eeb 100644 --- a/include/linux/sh_eth.h +++ b/include/linux/sh_eth.h @@ -2,6 +2,7 @@ #define __ASM_SH_ETH_H__ #include <linux/phy.h> +#include <linux/if_ether.h> enum {EDMAC_LITTLE_ENDIAN, EDMAC_BIG_ENDIAN}; enum { @@ -18,7 +19,7 @@ struct sh_eth_plat_data { phy_interface_t phy_interface; void (*set_mdio_gate)(void *addr); - unsigned char mac_addr[6]; + unsigned char mac_addr[ETH_ALEN]; unsigned no_ether_link:1; unsigned ether_link_active_low:1; unsigned needs_init:1; diff --git a/include/linux/smsc911x.h b/include/linux/smsc911x.h index 4dde70e..eec3efd 100644 --- a/include/linux/smsc911x.h +++ b/include/linux/smsc911x.h @@ -22,6 +22,7 @@ #define __LINUX_SMSC911X_H__ #include <linux/phy.h> +#include <linux/if_ether.h> /* platform_device configuration data, should be assigned to * the platform_device's dev.platform_data */ @@ -31,7 +32,7 @@ struct smsc911x_platform_config { unsigned int flags; unsigned int shift; phy_interface_t phy_interface; - unsigned char mac[6]; + unsigned char mac[ETH_ALEN]; }; /* Constants for platform_device irq polarity configuration */ diff --git a/include/linux/uwb/spec.h b/include/linux/uwb/spec.h index b52e44f..0df24bf 100644 --- a/include/linux/uwb/spec.h +++ b/include/linux/uwb/spec.h @@ -32,6 +32,7 @@ #include <linux/types.h> #include <linux/bitmap.h> +#include <linux/if_ether.h> #define i1480_FW 0x00000303 /* #define i1480_FW 0x00000302 */ @@ -130,7 +131,7 @@ enum { UWB_DRP_BACKOFF_WIN_MAX = 16 }; * it is also used to define headers sent down and up the wire/radio). */ struct uwb_mac_addr { - u8 data[6]; + u8 data[ETH_ALEN]; } __attribute__((packed)); @@ -568,7 +569,7 @@ struct uwb_rc_evt_confirm { /* Device Address Management event. [WHCI] section 3.1.3.2. */ struct uwb_rc_evt_dev_addr_mgmt { struct uwb_rceb rceb; - u8 baAddr[6]; + u8 baAddr[ETH_ALEN]; u8 bResultCode; } __attribute__((packed)); diff --git a/include/media/tveeprom.h b/include/media/tveeprom.h index 4a1191a..f7119ee 100644 --- a/include/media/tveeprom.h +++ b/include/media/tveeprom.h @@ -12,6 +12,8 @@ enum tveeprom_audio_processor { TVEEPROM_AUDPROC_OTHER, }; +#include <linux/if_ether.h> + struct tveeprom { u32 has_radio; /* If has_ir == 0, then it is unknown what the IR capabilities are, @@ -40,7 +42,7 @@ struct tveeprom { u32 revision; u32 serial_number; char rev_str[5]; - u8 MAC_address[6]; + u8 MAC_address[ETH_ALEN]; }; void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee, diff --git a/include/net/irda/irlan_common.h b/include/net/irda/irlan_common.h index 0af8b8d..550c2d6 100644 --- a/include/net/irda/irlan_common.h +++ b/include/net/irda/irlan_common.h @@ -32,6 +32,7 @@ #include <linux/types.h> #include <linux/skbuff.h> #include <linux/netdevice.h> +#include <linux/if_ether.h> #include <net/irda/irttp.h> @@ -161,7 +162,7 @@ struct irlan_provider_cb { int access_type; /* Access type */ __u16 send_arb_val; - __u8 mac_address[6]; /* Generated MAC address for peer device */ + __u8 mac_address[ETH_ALEN]; /* Generated MAC address for peer device */ }; /* -- 1.8.1.2.459.gbcd45b4.dirty ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH V3 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN 2013-08-01 23:17 ` [PATCH V3 0/3] networking: Use ETH_ALEN where appropriate Joe Perches 2013-08-01 23:17 ` [PATCH V3 1/3] uapi: Convert some uses of 6 to ETH_ALEN Joe Perches 2013-08-01 23:17 ` [PATCH V3 2/3] include: Convert ethernet mac address declarations to use ETH_ALEN Joe Perches @ 2013-08-01 23:17 ` Joe Perches 2013-08-01 23:30 ` Olof Johansson 2013-08-02 19:34 ` [PATCH V3 0/3] networking: Use ETH_ALEN where appropriate David Miller 3 siblings, 1 reply; 19+ messages in thread From: Joe Perches @ 2013-08-01 23:17 UTC (permalink / raw) To: netdev Cc: Don Fry, Grant Grundler, Sam Creasey, Andrew Gallatin, Wan ZongShun, Olof Johansson, Manish Chopra, Sony Chacko, Rajesh Borundia, Shahed Shaikh, Jitendra Kalsaria, Ron Mercer, linux-driver, linux-kernel, linux-arm-kernel Use the normal #define to help grep find mac addresses and ensure that addresses are aligned. pasemi.h has an unaligned access to mac_addr, unchanged for now. Signed-off-by: Joe Perches <joe@perches.com> --- drivers/net/ethernet/8390/ax88796.c | 4 ++-- drivers/net/ethernet/amd/pcnet32.c | 6 +++--- drivers/net/ethernet/broadcom/cnic_if.h | 6 +++--- drivers/net/ethernet/dec/tulip/tulip_core.c | 8 +++++--- drivers/net/ethernet/i825xx/sun3_82586.h | 4 ++-- drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 2 +- drivers/net/ethernet/nuvoton/w90p910_ether.c | 4 ++-- drivers/net/ethernet/pasemi/pasemi_mac.c | 13 +++++++------ drivers/net/ethernet/pasemi/pasemi_mac.h | 2 +- drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c | 4 ++-- drivers/net/ethernet/qlogic/qlge/qlge.h | 2 +- 11 files changed, 29 insertions(+), 26 deletions(-) diff --git a/drivers/net/ethernet/8390/ax88796.c b/drivers/net/ethernet/8390/ax88796.c index e1d2643..b7232a9 100644 --- a/drivers/net/ethernet/8390/ax88796.c +++ b/drivers/net/ethernet/8390/ax88796.c @@ -707,7 +707,7 @@ static int ax_init_dev(struct net_device *dev) #ifdef CONFIG_AX88796_93CX6 if (ax->plat->flags & AXFLG_HAS_93CX6) { - unsigned char mac_addr[6]; + unsigned char mac_addr[ETH_ALEN]; struct eeprom_93cx6 eeprom; eeprom.data = ei_local; @@ -719,7 +719,7 @@ static int ax_init_dev(struct net_device *dev) (__le16 __force *)mac_addr, sizeof(mac_addr) >> 1); - memcpy(dev->dev_addr, mac_addr, 6); + memcpy(dev->dev_addr, mac_addr, ETH_ALEN); } #endif if (ax->plat->wordlength == 2) { diff --git a/drivers/net/ethernet/amd/pcnet32.c b/drivers/net/ethernet/amd/pcnet32.c index ed21307..2d8e288 100644 --- a/drivers/net/ethernet/amd/pcnet32.c +++ b/drivers/net/ethernet/amd/pcnet32.c @@ -1521,7 +1521,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev) char *chipname; struct net_device *dev; const struct pcnet32_access *a = NULL; - u8 promaddr[6]; + u8 promaddr[ETH_ALEN]; int ret = -ENODEV; /* reset the chip */ @@ -1665,10 +1665,10 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev) } /* read PROM address and compare with CSR address */ - for (i = 0; i < 6; i++) + for (i = 0; i < ETH_ALEN; i++) promaddr[i] = inb(ioaddr + i); - if (memcmp(promaddr, dev->dev_addr, 6) || + if (memcmp(promaddr, dev->dev_addr, ETH_ALEN) || !is_valid_ether_addr(dev->dev_addr)) { if (is_valid_ether_addr(promaddr)) { if (pcnet32_debug & NETIF_MSG_PROBE) { diff --git a/drivers/net/ethernet/broadcom/cnic_if.h b/drivers/net/ethernet/broadcom/cnic_if.h index 82a0312..95aff76 100644 --- a/drivers/net/ethernet/broadcom/cnic_if.h +++ b/drivers/net/ethernet/broadcom/cnic_if.h @@ -238,8 +238,8 @@ struct cnic_sock { u16 src_port; u16 dst_port; u16 vlan_id; - unsigned char old_ha[6]; - unsigned char ha[6]; + unsigned char old_ha[ETH_ALEN]; + unsigned char ha[ETH_ALEN]; u32 mtu; u32 cid; u32 l5_cid; @@ -308,7 +308,7 @@ struct cnic_dev { #define CNIC_F_BNX2_CLASS 3 #define CNIC_F_BNX2X_CLASS 4 atomic_t ref_count; - u8 mac_addr[6]; + u8 mac_addr[ETH_ALEN]; int max_iscsi_conn; int max_fcoe_conn; diff --git a/drivers/net/ethernet/dec/tulip/tulip_core.c b/drivers/net/ethernet/dec/tulip/tulip_core.c index c94152f..4e8cfa2 100644 --- a/drivers/net/ethernet/dec/tulip/tulip_core.c +++ b/drivers/net/ethernet/dec/tulip/tulip_core.c @@ -1304,7 +1304,9 @@ static int tulip_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) { struct tulip_private *tp; /* See note below on the multiport cards. */ - static unsigned char last_phys_addr[6] = {0x00, 'L', 'i', 'n', 'u', 'x'}; + static unsigned char last_phys_addr[ETH_ALEN] = { + 0x00, 'L', 'i', 'n', 'u', 'x' + }; static int last_irq; static int multiport_cnt; /* For four-port boards w/one EEPROM */ int i, irq; @@ -1627,8 +1629,8 @@ static int tulip_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) dev->dev_addr[i] = last_phys_addr[i] + 1; #if defined(CONFIG_SPARC) addr = of_get_property(dp, "local-mac-address", &len); - if (addr && len == 6) - memcpy(dev->dev_addr, addr, 6); + if (addr && len == ETH_ALEN) + memcpy(dev->dev_addr, addr, ETH_ALEN); #endif #if defined(__i386__) || defined(__x86_64__) /* Patch up x86 BIOS bug. */ if (last_irq) diff --git a/drivers/net/ethernet/i825xx/sun3_82586.h b/drivers/net/ethernet/i825xx/sun3_82586.h index 93346f0..79aef68 100644 --- a/drivers/net/ethernet/i825xx/sun3_82586.h +++ b/drivers/net/ethernet/i825xx/sun3_82586.h @@ -133,8 +133,8 @@ struct rfd_struct unsigned char last; /* Bit15,Last Frame on List / Bit14,suspend */ unsigned short next; /* linkoffset to next RFD */ unsigned short rbd_offset; /* pointeroffset to RBD-buffer */ - unsigned char dest[6]; /* ethernet-address, destination */ - unsigned char source[6]; /* ethernet-address, source */ + unsigned char dest[ETH_ALEN]; /* ethernet-address, destination */ + unsigned char source[ETH_ALEN]; /* ethernet-address, source */ unsigned short length; /* 802.3 frame-length */ unsigned short zero_dummy; /* dummy */ }; diff --git a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c index 967bae8..d4cdf4d 100644 --- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c +++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c @@ -244,7 +244,7 @@ struct myri10ge_priv { int fw_ver_minor; int fw_ver_tiny; int adopted_rx_filter_bug; - u8 mac_addr[6]; /* eeprom mac address */ + u8 mac_addr[ETH_ALEN]; /* eeprom mac address */ unsigned long serial_number; int vendor_specific_offset; int fw_multicast_support; diff --git a/drivers/net/ethernet/nuvoton/w90p910_ether.c b/drivers/net/ethernet/nuvoton/w90p910_ether.c index e88bdb1..dcfe58f 100644 --- a/drivers/net/ethernet/nuvoton/w90p910_ether.c +++ b/drivers/net/ethernet/nuvoton/w90p910_ether.c @@ -922,7 +922,7 @@ static void __init get_mac_address(struct net_device *dev) { struct w90p910_ether *ether = netdev_priv(dev); struct platform_device *pdev; - char addr[6]; + char addr[ETH_ALEN]; pdev = ether->pdev; @@ -934,7 +934,7 @@ static void __init get_mac_address(struct net_device *dev) addr[5] = 0xa8; if (is_valid_ether_addr(addr)) - memcpy(dev->dev_addr, &addr, 0x06); + memcpy(dev->dev_addr, &addr, ETH_ALEN); else dev_err(&pdev->dev, "invalid mac address\n"); } diff --git a/drivers/net/ethernet/pasemi/pasemi_mac.c b/drivers/net/ethernet/pasemi/pasemi_mac.c index a5f0b5d..f21ae7b 100644 --- a/drivers/net/ethernet/pasemi/pasemi_mac.c +++ b/drivers/net/ethernet/pasemi/pasemi_mac.c @@ -191,7 +191,7 @@ static int pasemi_get_mac_addr(struct pasemi_mac *mac) struct device_node *dn = pci_device_to_OF_node(pdev); int len; const u8 *maddr; - u8 addr[6]; + u8 addr[ETH_ALEN]; if (!dn) { dev_dbg(&pdev->dev, @@ -201,8 +201,8 @@ static int pasemi_get_mac_addr(struct pasemi_mac *mac) maddr = of_get_property(dn, "local-mac-address", &len); - if (maddr && len == 6) { - memcpy(mac->mac_addr, maddr, 6); + if (maddr && len == ETH_ALEN) { + memcpy(mac->mac_addr, maddr, ETH_ALEN); return 0; } @@ -219,14 +219,15 @@ static int pasemi_get_mac_addr(struct pasemi_mac *mac) return -ENOENT; } - if (sscanf(maddr, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &addr[0], - &addr[1], &addr[2], &addr[3], &addr[4], &addr[5]) != 6) { + if (sscanf(maddr, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", + &addr[0], &addr[1], &addr[2], &addr[3], &addr[4], &addr[5]) + != ETH_ALEN) { dev_warn(&pdev->dev, "can't parse mac address, not configuring\n"); return -EINVAL; } - memcpy(mac->mac_addr, addr, 6); + memcpy(mac->mac_addr, addr, ETH_ALEN); return 0; } diff --git a/drivers/net/ethernet/pasemi/pasemi_mac.h b/drivers/net/ethernet/pasemi/pasemi_mac.h index e2f4efa..f2749d4 100644 --- a/drivers/net/ethernet/pasemi/pasemi_mac.h +++ b/drivers/net/ethernet/pasemi/pasemi_mac.h @@ -83,7 +83,7 @@ struct pasemi_mac { #define MAC_TYPE_GMAC 1 #define MAC_TYPE_XAUI 2 - u8 mac_addr[6]; + u8 mac_addr[ETH_ALEN]; struct net_lro_mgr lro_mgr; struct net_lro_desc lro_desc[MAX_LRO_DESCRIPTORS]; diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c index 9fbb1cd..8375cbd 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c @@ -536,10 +536,10 @@ static void netxen_p2_nic_set_multi(struct net_device *netdev) { struct netxen_adapter *adapter = netdev_priv(netdev); struct netdev_hw_addr *ha; - u8 null_addr[6]; + u8 null_addr[ETH_ALEN]; int i; - memset(null_addr, 0, 6); + memset(null_addr, 0, ETH_ALEN); if (netdev->flags & IFF_PROMISC) { diff --git a/drivers/net/ethernet/qlogic/qlge/qlge.h b/drivers/net/ethernet/qlogic/qlge/qlge.h index 7e8d682..8994337 100644 --- a/drivers/net/ethernet/qlogic/qlge/qlge.h +++ b/drivers/net/ethernet/qlogic/qlge/qlge.h @@ -2149,7 +2149,7 @@ struct ql_adapter { struct timer_list timer; atomic_t lb_count; /* Keep local copy of current mac address. */ - char current_mac_addr[6]; + char current_mac_addr[ETH_ALEN]; }; /* -- 1.8.1.2.459.gbcd45b4.dirty ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH V3 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN 2013-08-01 23:17 ` [PATCH V3 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN Joe Perches @ 2013-08-01 23:30 ` Olof Johansson 0 siblings, 0 replies; 19+ messages in thread From: Olof Johansson @ 2013-08-01 23:30 UTC (permalink / raw) To: Joe Perches Cc: Network Development, Don Fry, Grant Grundler, Sam Creasey, Andrew Gallatin, Wan ZongShun, Manish Chopra, Sony Chacko, Rajesh Borundia, Shahed Shaikh, Jitendra Kalsaria, Ron Mercer, linux-driver, linux-kernel, linux-arm-kernel On Thu, Aug 1, 2013 at 4:17 PM, Joe Perches <joe@perches.com> wrote: > Use the normal #define to help grep find mac addresses > and ensure that addresses are aligned. > > pasemi.h has an unaligned access to mac_addr, unchanged > for now. > > Signed-off-by: Joe Perches <joe@perches.com> Acked-by: Olof Johansson <olof@lixom.net> # pasemi_mac pieces -Olof ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH V3 0/3] networking: Use ETH_ALEN where appropriate 2013-08-01 23:17 ` [PATCH V3 0/3] networking: Use ETH_ALEN where appropriate Joe Perches ` (2 preceding siblings ...) 2013-08-01 23:17 ` [PATCH V3 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN Joe Perches @ 2013-08-02 19:34 ` David Miller 3 siblings, 0 replies; 19+ messages in thread From: David Miller @ 2013-08-02 19:34 UTC (permalink / raw) To: joe Cc: netdev, linux-kernel, linux-arm-kernel, linuxppc-dev, linux-usb, linux-media, netfilter-devel, virtualization, wimax From: Joe Perches <joe@perches.com> Date: Thu, 1 Aug 2013 16:17:46 -0700 > Convert the uses mac addresses to ETH_ALEN so > it's easier to find and verify where mac addresses > need to be __aligned(2) Series applied to net-next, thanks. ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2013-08-02 19:34 UTC | newest] Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2013-08-01 20:14 [PATCH V2 0/3] networking: Use ETH_ALEN where appropriate Joe Perches 2013-08-01 20:14 ` [PATCH V2 1/3] uapi: Convert some uses of 6 to ETH_ALEN Joe Perches 2013-08-01 20:14 ` [PATCH V2 2/3] include: Convert ethernet mac address declarations to use ETH_ALEN Joe Perches 2013-08-01 20:14 ` [PATCH V2 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN Joe Perches 2013-08-01 20:31 ` Olof Johansson 2013-08-01 20:33 ` Russell King - ARM Linux 2013-08-01 20:55 ` Joe Perches 2013-08-01 20:58 ` Russell King - ARM Linux 2013-08-01 21:04 ` Joe Perches 2013-08-01 21:06 ` Russell King - ARM Linux 2013-08-01 21:10 ` David Miller 2013-08-01 21:24 ` Olof Johansson 2013-08-01 21:31 ` David Miller 2013-08-01 23:17 ` [PATCH V3 0/3] networking: Use ETH_ALEN where appropriate Joe Perches 2013-08-01 23:17 ` [PATCH V3 1/3] uapi: Convert some uses of 6 to ETH_ALEN Joe Perches 2013-08-01 23:17 ` [PATCH V3 2/3] include: Convert ethernet mac address declarations to use ETH_ALEN Joe Perches 2013-08-01 23:17 ` [PATCH V3 3/3] ethernet: Convert mac address uses of 6 to ETH_ALEN Joe Perches 2013-08-01 23:30 ` Olof Johansson 2013-08-02 19:34 ` [PATCH V3 0/3] networking: Use ETH_ALEN where appropriate David Miller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).