[U-Boot] [PATCH 01/14] net: cosmetic: Do not use magic values for ARP_HLEN
Olliver Schinagl
oliver at schinagl.nl
Tue Nov 29 17:02:58 CET 2016
Just a note to myself mostly, I forgot to this one in the patch series,
son in v2 I'll add that as well.
diff --git a/net/eth_common.c b/net/eth_common.c
index e0d8b62..57ef821 100644
--- a/net/eth_common.c
+++ b/net/eth_common.c
@@ -51,7 +51,7 @@ void eth_parse_enetaddr(const char *addr, uchar *enetaddr)
char *end;
int i;
- for (i = 0; i < 6; ++i) {
+ for (i = 0; i < ARP_HLEN; ++i) {
enetaddr[i] = addr ? simple_strtoul(addr, &end, 16) : 0;
if (addr)
addr = (*end) ? end + 1 : end;
On 25-11-16 16:30, Olliver Schinagl wrote:
> Commit 674bb249825a ("net: cosmetic: Replace magic numbers in arp.c with
> constants") introduced a nice define to replace the magic value 6 for
> the ethernet hardware address. Replace more hardcoded instances of 6
> which really reference the ARP_HLEN (iow the MAC/Hardware/Ethernet
> address).
>
> Signed-off-by: Olliver Schinagl <oliver at schinagl.nl>
> ---
> common/fdt_support.c | 2 +-
> include/net.h | 52 +++++++++++++++++++++++++++-------------------------
> net/eth-uclass.c | 10 +++++-----
> net/eth_legacy.c | 10 +++++-----
> 4 files changed, 38 insertions(+), 36 deletions(-)
>
> diff --git a/common/fdt_support.c b/common/fdt_support.c
> index 0609470..b082662 100644
> --- a/common/fdt_support.c
> +++ b/common/fdt_support.c
> @@ -471,7 +471,7 @@ void fdt_fixup_ethernet(void *fdt)
> char *tmp, *end;
> char mac[16];
> const char *path;
> - unsigned char mac_addr[6];
> + unsigned char mac_addr[ARP_HLEN];
> int offset;
>
> if (fdt_path_offset(fdt, "/aliases") < 0)
> diff --git a/include/net.h b/include/net.h
> index 06320c6..8137cf3 100644
> --- a/include/net.h
> +++ b/include/net.h
> @@ -38,6 +38,9 @@
>
> #define PKTALIGN ARCH_DMA_MINALIGN
>
> +/* ARP hardware address length */
> +#define ARP_HLEN 6
> +
> /* IPv4 addresses are always 32 bits in size */
> struct in_addr {
> __be32 s_addr;
> @@ -90,7 +93,7 @@ enum eth_state_t {
> */
> struct eth_pdata {
> phys_addr_t iobase;
> - unsigned char enetaddr[6];
> + unsigned char enetaddr[ARP_HLEN];
> int phy_interface;
> int max_speed;
> };
> @@ -161,7 +164,7 @@ void eth_halt_state_only(void); /* Set passive state */
> #ifndef CONFIG_DM_ETH
> struct eth_device {
> char name[16];
> - unsigned char enetaddr[6];
> + unsigned char enetaddr[ARP_HLEN];
> phys_addr_t iobase;
> int state;
>
> @@ -293,9 +296,9 @@ u32 ether_crc(size_t len, unsigned char const *p);
> */
>
> struct ethernet_hdr {
> - u8 et_dest[6]; /* Destination node */
> - u8 et_src[6]; /* Source node */
> - u16 et_protlen; /* Protocol or length */
> + u8 et_dest[ARP_HLEN]; /* Destination node */
> + u8 et_src[ARP_HLEN]; /* Source node */
> + u16 et_protlen; /* Protocol or length */
> };
>
> /* Ethernet header size */
> @@ -304,16 +307,16 @@ struct ethernet_hdr {
> #define ETH_FCS_LEN 4 /* Octets in the FCS */
>
> struct e802_hdr {
> - u8 et_dest[6]; /* Destination node */
> - u8 et_src[6]; /* Source node */
> - u16 et_protlen; /* Protocol or length */
> - u8 et_dsap; /* 802 DSAP */
> - u8 et_ssap; /* 802 SSAP */
> - u8 et_ctl; /* 802 control */
> - u8 et_snap1; /* SNAP */
> + u8 et_dest[ARP_HLEN]; /* Destination node */
> + u8 et_src[ARP_HLEN]; /* Source node */
> + u16 et_protlen; /* Protocol or length */
> + u8 et_dsap; /* 802 DSAP */
> + u8 et_ssap; /* 802 SSAP */
> + u8 et_ctl; /* 802 control */
> + u8 et_snap1; /* SNAP */
> u8 et_snap2;
> u8 et_snap3;
> - u16 et_prot; /* 802 protocol */
> + u16 et_prot; /* 802 protocol */
> };
>
> /* 802 + SNAP + ethernet header size */
> @@ -323,11 +326,11 @@ struct e802_hdr {
> * Virtual LAN Ethernet header
> */
> struct vlan_ethernet_hdr {
> - u8 vet_dest[6]; /* Destination node */
> - u8 vet_src[6]; /* Source node */
> - u16 vet_vlan_type; /* PROT_VLAN */
> - u16 vet_tag; /* TAG of VLAN */
> - u16 vet_type; /* protocol type */
> + u8 vet_dest[ARP_HLEN]; /* Destination node */
> + u8 vet_src[ARP_HLEN]; /* Source node */
> + u16 vet_vlan_type; /* PROT_VLAN */
> + u16 vet_tag; /* TAG of VLAN */
> + u16 vet_type; /* protocol type */
> };
>
> /* VLAN Ethernet header size */
> @@ -398,7 +401,6 @@ struct arp_hdr {
> # define ARP_ETHER 1 /* Ethernet hardware address */
> u16 ar_pro; /* Format of protocol address */
> u8 ar_hln; /* Length of hardware address */
> -# define ARP_HLEN 6
> u8 ar_pln; /* Length of protocol address */
> # define ARP_PLEN 4
> u16 ar_op; /* Operation */
> @@ -507,16 +509,16 @@ extern char net_nis_domain[32]; /* Our IS domain */
> extern char net_hostname[32]; /* Our hostname */
> extern char net_root_path[64]; /* Our root path */
> /** END OF BOOTP EXTENTIONS **/
> -extern u8 net_ethaddr[6]; /* Our ethernet address */
> -extern u8 net_server_ethaddr[6]; /* Boot server enet address */
> +extern u8 net_ethaddr[ARP_HLEN]; /* Our ethernet address */
> +extern u8 net_server_ethaddr[ARP_HLEN]; /* Boot server enet address */
> extern struct in_addr net_ip; /* Our IP addr (0 = unknown) */
> extern struct in_addr net_server_ip; /* Server IP addr (0 = unknown) */
> extern uchar *net_tx_packet; /* THE transmit packet */
> extern uchar *net_rx_packets[PKTBUFSRX]; /* Receive packets */
> extern uchar *net_rx_packet; /* Current receive packet */
> extern int net_rx_packet_len; /* Current rx packet length */
> -extern const u8 net_bcast_ethaddr[6]; /* Ethernet broadcast address */
> -extern const u8 net_null_ethaddr[6];
> +extern const u8 net_bcast_ethaddr[ARP_HLEN]; /* Ethernet broadcast address */
> +extern const u8 net_null_ethaddr[ARP_HLEN];
>
> #define VLAN_NONE 4095 /* untagged */
> #define VLAN_IDMASK 0x0fff /* mask of valid vlan id */
> @@ -555,9 +557,9 @@ extern ushort cdp_appliance_vlan; /* CDP returned appliance VLAN */
> */
> static inline int is_cdp_packet(const uchar *ethaddr)
> {
> - extern const u8 net_cdp_ethaddr[6];
> + extern const u8 net_cdp_ethaddr[ARP_HLEN];
>
> - return memcmp(ethaddr, net_cdp_ethaddr, 6) == 0;
> + return memcmp(ethaddr, net_cdp_ethaddr, ARP_HLEN) == 0;
> }
> #endif
>
> diff --git a/net/eth-uclass.c b/net/eth-uclass.c
> index a32961e..a9fc6bb 100644
> --- a/net/eth-uclass.c
> +++ b/net/eth-uclass.c
> @@ -230,7 +230,7 @@ static int on_ethaddr(const char *name, const char *value, enum env_op op,
> eth_write_hwaddr(dev);
> break;
> case env_op_delete:
> - memset(pdata->enetaddr, 0, 6);
> + memset(pdata->enetaddr, 0, ARP_HLEN);
> }
> }
>
> @@ -458,7 +458,7 @@ static int eth_post_probe(struct udevice *dev)
> {
> struct eth_device_priv *priv = dev->uclass_priv;
> struct eth_pdata *pdata = dev->platdata;
> - unsigned char env_enetaddr[6];
> + unsigned char env_enetaddr[ARP_HLEN];
>
> #if defined(CONFIG_NEEDS_MANUAL_RELOC)
> struct eth_ops *ops = eth_get_ops(dev);
> @@ -497,7 +497,7 @@ static int eth_post_probe(struct udevice *dev)
> eth_getenv_enetaddr_by_index("eth", dev->seq, env_enetaddr);
> if (!is_zero_ethaddr(env_enetaddr)) {
> if (!is_zero_ethaddr(pdata->enetaddr) &&
> - memcmp(pdata->enetaddr, env_enetaddr, 6)) {
> + memcmp(pdata->enetaddr, env_enetaddr, ARP_HLEN)) {
> printf("\nWarning: %s MAC addresses don't match:\n",
> dev->name);
> printf("Address in SROM is %pM\n",
> @@ -507,7 +507,7 @@ static int eth_post_probe(struct udevice *dev)
> }
>
> /* Override the ROM MAC address */
> - memcpy(pdata->enetaddr, env_enetaddr, 6);
> + memcpy(pdata->enetaddr, env_enetaddr, ARP_HLEN);
> } else if (is_valid_ethaddr(pdata->enetaddr)) {
> eth_setenv_enetaddr_by_index("eth", dev->seq, pdata->enetaddr);
> printf("\nWarning: %s using MAC address from ROM\n",
> @@ -534,7 +534,7 @@ static int eth_pre_remove(struct udevice *dev)
> eth_get_ops(dev)->stop(dev);
>
> /* clear the MAC address */
> - memset(pdata->enetaddr, 0, 6);
> + memset(pdata->enetaddr, 0, ARP_HLEN);
>
> return 0;
> }
> diff --git a/net/eth_legacy.c b/net/eth_legacy.c
> index d6d7cee..2b2c2de 100644
> --- a/net/eth_legacy.c
> +++ b/net/eth_legacy.c
> @@ -120,7 +120,7 @@ static int on_ethaddr(const char *name, const char *value, enum env_op op,
> eth_parse_enetaddr(value, dev->enetaddr);
> break;
> case env_op_delete:
> - memset(dev->enetaddr, 0, 6);
> + memset(dev->enetaddr, 0, ARP_HLEN);
> }
> }
> dev = dev->next;
> @@ -133,14 +133,14 @@ U_BOOT_ENV_CALLBACK(ethaddr, on_ethaddr);
> int eth_write_hwaddr(struct eth_device *dev, const char *base_name,
> int eth_number)
> {
> - unsigned char env_enetaddr[6];
> + unsigned char env_enetaddr[ARP_HLEN];
> int ret = 0;
>
> eth_getenv_enetaddr_by_index(base_name, eth_number, env_enetaddr);
>
> if (!is_zero_ethaddr(env_enetaddr)) {
> if (!is_zero_ethaddr(dev->enetaddr) &&
> - memcmp(dev->enetaddr, env_enetaddr, 6)) {
> + memcmp(dev->enetaddr, env_enetaddr, ARP_HLEN)) {
> printf("\nWarning: %s MAC addresses don't match:\n",
> dev->name);
> printf("Address in SROM is %pM\n",
> @@ -149,7 +149,7 @@ int eth_write_hwaddr(struct eth_device *dev, const char *base_name,
> env_enetaddr);
> }
>
> - memcpy(dev->enetaddr, env_enetaddr, 6);
> + memcpy(dev->enetaddr, env_enetaddr, ARP_HLEN);
> } else if (is_valid_ethaddr(dev->enetaddr)) {
> eth_setenv_enetaddr_by_index(base_name, eth_number,
> dev->enetaddr);
> @@ -298,7 +298,7 @@ int eth_initialize(void)
> */
> int eth_mcast_join(struct in_addr mcast_ip, int join)
> {
> - u8 mcast_mac[6];
> + u8 mcast_mac[ARP_HLEN];
> if (!eth_current || !eth_current->mcast)
> return -1;
> mcast_mac[5] = htonl(mcast_ip.s_addr) & 0xff;
More information about the U-Boot
mailing list