Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: use eth_hw_addr_set()

Commit 406f42fa0d3c ("net-next: When a bond have a massive amount
of VLANs...") introduced a rbtree for faster Ethernet address look
up. To maintain netdev->dev_addr in this tree we need to make all
the writes to it go through appropriate helpers.

Convert media from memcpy(... 6) and memcpy(... addr_len) to
eth_hw_addr_set():

@@
expression dev, np;
@@
- memcpy(dev->dev_addr, np, 6)
+ eth_hw_addr_set(dev, np)
@@
- memcpy(dev->dev_addr, np, dev->addr_len)
+ eth_hw_addr_set(dev, np)

Make sure we don't cast off const qualifier from dev->dev_addr.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Jakub Kicinski and committed by
David S. Miller
707182e4 701b9519

+4 -4
+4 -4
drivers/media/dvb-core/dvb_net.c
··· 1008 1008 1009 1009 static int dvb_net_filter_sec_set(struct net_device *dev, 1010 1010 struct dmx_section_filter **secfilter, 1011 - u8 *mac, u8 *mac_mask) 1011 + const u8 *mac, u8 *mac_mask) 1012 1012 { 1013 1013 struct dvb_net_priv *priv = netdev_priv(dev); 1014 1014 int ret; ··· 1052 1052 int ret = 0, i; 1053 1053 struct dvb_net_priv *priv = netdev_priv(dev); 1054 1054 struct dmx_demux *demux = priv->demux; 1055 - unsigned char *mac = (unsigned char *) dev->dev_addr; 1055 + const unsigned char *mac = (const unsigned char *) dev->dev_addr; 1056 1056 1057 1057 netdev_dbg(dev, "rx_mode %i\n", priv->rx_mode); 1058 1058 mutex_lock(&priv->mutex); ··· 1272 1272 struct dvb_net_priv *priv = netdev_priv(dev); 1273 1273 struct sockaddr *addr=p; 1274 1274 1275 - memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); 1275 + eth_hw_addr_set(dev, addr->sa_data); 1276 1276 1277 1277 if (netif_running(dev)) 1278 1278 schedule_work(&priv->restart_net_feed_wq); ··· 1367 1367 dvbnet->dvbdev->adapter->num, if_num); 1368 1368 1369 1369 net->addr_len = 6; 1370 - memcpy(net->dev_addr, dvbnet->dvbdev->adapter->proposed_mac, 6); 1370 + eth_hw_addr_set(net, dvbnet->dvbdev->adapter->proposed_mac); 1371 1371 1372 1372 dvbnet->device[if_num] = net; 1373 1373