Skip to content

Commit

Permalink
net, treewide: define and use MAC_ADDR_STR_LEN
Browse files Browse the repository at this point in the history
There are a few places in the tree which compute the length of the
string representation of a MAC address as 3 * ETH_ALEN - 1. Define a
constant for this and use it where relevant. No functionality changes
are expected.

Signed-off-by: Uday Shankar <ushankar@purestorage.com>
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: Breno Leitao <leitao@debian.org>
Reviewed-by: Simon Horman <horms@verge.net.au>
Link: https://patch.msgid.link/20250312-netconsole-v6-1-3437933e79b8@purestorage.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  • Loading branch information
Uday Shankar authored and Paolo Abeni committed Mar 19, 2025
1 parent 34e5ede commit 6d6c1ba
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 9 deletions.
2 changes: 1 addition & 1 deletion drivers/net/netconsole.c
Original file line number Diff line number Diff line change
Expand Up @@ -739,7 +739,7 @@ static ssize_t remote_mac_store(struct config_item *item, const char *buf,

if (!mac_pton(buf, remote_mac))
goto out_unlock;
if (buf[3 * ETH_ALEN - 1] && buf[3 * ETH_ALEN - 1] != '\n')
if (buf[MAC_ADDR_STR_LEN] && buf[MAC_ADDR_STR_LEN] != '\n')
goto out_unlock;
memcpy(nt->np.remote_mac, remote_mac, ETH_ALEN);

Expand Down
2 changes: 1 addition & 1 deletion drivers/nvmem/brcm_nvram.c
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ static int brcm_nvram_read_post_process_macaddr(void *context, const char *id, i
{
u8 mac[ETH_ALEN];

if (bytes != 3 * ETH_ALEN - 1)
if (bytes != MAC_ADDR_STR_LEN)
return -EINVAL;

if (!mac_pton(buf, mac))
Expand Down
2 changes: 1 addition & 1 deletion drivers/nvmem/layouts/u-boot-env.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ static int u_boot_env_read_post_process_ethaddr(void *context, const char *id, i
{
u8 mac[ETH_ALEN];

if (bytes != 3 * ETH_ALEN - 1)
if (bytes != MAC_ADDR_STR_LEN)
return -EINVAL;

if (!mac_pton(buf, mac))
Expand Down
3 changes: 3 additions & 0 deletions include/linux/if_ether.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
#include <linux/skbuff.h>
#include <uapi/linux/if_ether.h>

/* XX:XX:XX:XX:XX:XX */
#define MAC_ADDR_STR_LEN (3 * ETH_ALEN - 1)

static inline struct ethhdr *eth_hdr(const struct sk_buff *skb)
{
return (struct ethhdr *)skb_mac_header(skb);
Expand Down
4 changes: 1 addition & 3 deletions lib/net_utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,9 @@

bool mac_pton(const char *s, u8 *mac)
{
size_t maxlen = 3 * ETH_ALEN - 1;
int i;

/* XX:XX:XX:XX:XX:XX */
if (strnlen(s, maxlen) < maxlen)
if (strnlen(s, MAC_ADDR_STR_LEN) < MAC_ADDR_STR_LEN)
return false;

/* Don't dirty result unless string is valid MAC. */
Expand Down
7 changes: 4 additions & 3 deletions net/mac80211/debugfs_sta.c
Original file line number Diff line number Diff line change
Expand Up @@ -457,11 +457,12 @@ static ssize_t link_sta_addr_read(struct file *file, char __user *userbuf,
size_t count, loff_t *ppos)
{
struct link_sta_info *link_sta = file->private_data;
u8 mac[3 * ETH_ALEN + 1];
u8 mac[MAC_ADDR_STR_LEN + 2];

snprintf(mac, sizeof(mac), "%pM\n", link_sta->pub->addr);

return simple_read_from_buffer(userbuf, count, ppos, mac, 3 * ETH_ALEN);
return simple_read_from_buffer(userbuf, count, ppos, mac,
MAC_ADDR_STR_LEN + 1);
}

LINK_STA_OPS(addr);
Expand Down Expand Up @@ -1240,7 +1241,7 @@ void ieee80211_sta_debugfs_add(struct sta_info *sta)
struct ieee80211_local *local = sta->local;
struct ieee80211_sub_if_data *sdata = sta->sdata;
struct dentry *stations_dir = sta->sdata->debugfs.subdir_stations;
u8 mac[3*ETH_ALEN];
u8 mac[MAC_ADDR_STR_LEN + 1];

if (!stations_dir)
return;
Expand Down

0 comments on commit 6d6c1ba

Please sign in to comment.