All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next] net: remove single-byte netdev->dev_addr writes
@ 2021-10-12 14:27 Jakub Kicinski
  2021-10-12 14:55 ` Sebastian Reichel
  2021-10-13 17:50 ` patchwork-bot+netdevbpf
  0 siblings, 2 replies; 3+ messages in thread
From: Jakub Kicinski @ 2021-10-12 14:27 UTC (permalink / raw)
  To: davem; +Cc: netdev, sre, m.grzeschik, balbi, Jakub Kicinski

Make the drivers which use single-byte netdev addresses
(netdev->addr_len == 1) use the appropriate address setting
helpers.

arcnet copies from int variables and io reads a lot, so
add a helper for arcnet drivers to use.

Similar helper could be reused for phonet and appletalk
but there isn't any good central location where we could
put it, and netdevice.h is already very crowded.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
 drivers/hsi/clients/ssi_protocol.c     | 4 +++-
 drivers/net/appletalk/cops.c           | 2 +-
 drivers/net/appletalk/ltpc.c           | 3 +--
 drivers/net/arcnet/arc-rimi.c          | 5 +++--
 drivers/net/arcnet/arcdevice.h         | 5 +++++
 drivers/net/arcnet/com20020-isa.c      | 2 +-
 drivers/net/arcnet/com20020-pci.c      | 2 +-
 drivers/net/arcnet/com20020.c          | 4 ++--
 drivers/net/arcnet/com20020_cs.c       | 2 +-
 drivers/net/arcnet/com90io.c           | 2 +-
 drivers/net/arcnet/com90xx.c           | 3 ++-
 drivers/net/usb/cdc-phonet.c           | 4 +++-
 drivers/usb/gadget/function/f_phonet.c | 5 ++++-
 13 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/drivers/hsi/clients/ssi_protocol.c b/drivers/hsi/clients/ssi_protocol.c
index 96d0eccca3aa..21f11a5b965b 100644
--- a/drivers/hsi/clients/ssi_protocol.c
+++ b/drivers/hsi/clients/ssi_protocol.c
@@ -1055,14 +1055,16 @@ static const struct net_device_ops ssip_pn_ops = {
 
 static void ssip_pn_setup(struct net_device *dev)
 {
+	static const u8 addr = PN_MEDIA_SOS;
+
 	dev->features		= 0;
 	dev->netdev_ops		= &ssip_pn_ops;
 	dev->type		= ARPHRD_PHONET;
 	dev->flags		= IFF_POINTOPOINT | IFF_NOARP;
 	dev->mtu		= SSIP_DEFAULT_MTU;
 	dev->hard_header_len	= 1;
-	dev->dev_addr[0]	= PN_MEDIA_SOS;
 	dev->addr_len		= 1;
+	dev_addr_set(dev, &addr);
 	dev->tx_queue_len	= SSIP_TXQUEUE_LEN;
 
 	dev->needs_free_netdev	= true;
diff --git a/drivers/net/appletalk/cops.c b/drivers/net/appletalk/cops.c
index f0695d68c47e..97f254bdbb16 100644
--- a/drivers/net/appletalk/cops.c
+++ b/drivers/net/appletalk/cops.c
@@ -945,8 +945,8 @@ static int cops_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
                         dev->broadcast[0]       = 0xFF;
 			
 			/* Set hardware address. */
-                        dev->dev_addr[0]        = aa->s_node;
                         dev->addr_len           = 1;
+			dev_addr_set(dev, &aa->s_node);
                         return 0;
 
                 case SIOCGIFADDR:
diff --git a/drivers/net/appletalk/ltpc.c b/drivers/net/appletalk/ltpc.c
index 1f8925e75b3f..388d7b3bd4c2 100644
--- a/drivers/net/appletalk/ltpc.c
+++ b/drivers/net/appletalk/ltpc.c
@@ -846,9 +846,8 @@ static int ltpc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 			set_30 (dev,ltflags);  
 
 			dev->broadcast[0] = 0xFF;
-			dev->dev_addr[0] = aa->s_node;
-
 			dev->addr_len=1;
+			dev_addr_set(dev, &aa->s_node);
    
 			return 0;
 
diff --git a/drivers/net/arcnet/arc-rimi.c b/drivers/net/arcnet/arc-rimi.c
index 12d085405bd0..8c3ccc7c83cd 100644
--- a/drivers/net/arcnet/arc-rimi.c
+++ b/drivers/net/arcnet/arc-rimi.c
@@ -207,7 +207,8 @@ static int __init arcrimi_found(struct net_device *dev)
 	}
 
 	/* get and check the station ID from offset 1 in shmem */
-	dev->dev_addr[0] = arcnet_readb(lp->mem_start, COM9026_REG_R_STATION);
+	arcnet_set_addr(dev, arcnet_readb(lp->mem_start,
+					  COM9026_REG_R_STATION));
 
 	arc_printk(D_NORMAL, dev, "ARCnet RIM I: station %02Xh found at IRQ %d, ShMem %lXh (%ld*%d bytes)\n",
 		   dev->dev_addr[0],
@@ -324,7 +325,7 @@ static int __init arc_rimi_init(void)
 		return -ENOMEM;
 
 	if (node && node != 0xff)
-		dev->dev_addr[0] = node;
+		arcnet_set_addr(dev, node);
 
 	dev->mem_start = io;
 	dev->irq = irq;
diff --git a/drivers/net/arcnet/arcdevice.h b/drivers/net/arcnet/arcdevice.h
index 5d4a4c7efbbf..19e996a829c9 100644
--- a/drivers/net/arcnet/arcdevice.h
+++ b/drivers/net/arcnet/arcdevice.h
@@ -364,6 +364,11 @@ netdev_tx_t arcnet_send_packet(struct sk_buff *skb,
 			       struct net_device *dev);
 void arcnet_timeout(struct net_device *dev, unsigned int txqueue);
 
+static inline void arcnet_set_addr(struct net_device *dev, u8 addr)
+{
+	dev_addr_set(dev, &addr);
+}
+
 /* I/O equivalents */
 
 #ifdef CONFIG_SA1100_CT6001
diff --git a/drivers/net/arcnet/com20020-isa.c b/drivers/net/arcnet/com20020-isa.c
index be618e4b9ed5..293a621e654c 100644
--- a/drivers/net/arcnet/com20020-isa.c
+++ b/drivers/net/arcnet/com20020-isa.c
@@ -151,7 +151,7 @@ static int __init com20020_init(void)
 		return -ENOMEM;
 
 	if (node && node != 0xff)
-		dev->dev_addr[0] = node;
+		arcnet_set_addr(dev, node);
 
 	dev->netdev_ops = &com20020_netdev_ops;
 
diff --git a/drivers/net/arcnet/com20020-pci.c b/drivers/net/arcnet/com20020-pci.c
index 3c8f665c1558..6382e1937cca 100644
--- a/drivers/net/arcnet/com20020-pci.c
+++ b/drivers/net/arcnet/com20020-pci.c
@@ -194,7 +194,7 @@ static int com20020pci_probe(struct pci_dev *pdev,
 
 		SET_NETDEV_DEV(dev, &pdev->dev);
 		dev->base_addr = ioaddr;
-		dev->dev_addr[0] = node;
+		arcnet_set_addr(dev, node);
 		dev->sysfs_groups[0] = &com20020_state_group;
 		dev->irq = pdev->irq;
 		lp->card_name = "PCI COM20020";
diff --git a/drivers/net/arcnet/com20020.c b/drivers/net/arcnet/com20020.c
index 78043a9c5981..06e1651b594b 100644
--- a/drivers/net/arcnet/com20020.c
+++ b/drivers/net/arcnet/com20020.c
@@ -157,7 +157,7 @@ static int com20020_set_hwaddr(struct net_device *dev, void *addr)
 	struct arcnet_local *lp = netdev_priv(dev);
 	struct sockaddr *hwaddr = addr;
 
-	memcpy(dev->dev_addr, hwaddr->sa_data, 1);
+	dev_addr_set(dev, hwaddr->sa_data);
 	com20020_set_subaddress(lp, ioaddr, SUB_NODE);
 	arcnet_outb(dev->dev_addr[0], ioaddr, COM20020_REG_W_XREG);
 
@@ -220,7 +220,7 @@ int com20020_found(struct net_device *dev, int shared)
 
 	/* FIXME: do this some other way! */
 	if (!dev->dev_addr[0])
-		dev->dev_addr[0] = arcnet_inb(ioaddr, 8);
+		arcnet_set_addr(dev, arcnet_inb(ioaddr, 8));
 
 	com20020_set_subaddress(lp, ioaddr, SUB_SETUP1);
 	arcnet_outb(lp->setup, ioaddr, COM20020_REG_W_XREG);
diff --git a/drivers/net/arcnet/com20020_cs.c b/drivers/net/arcnet/com20020_cs.c
index b88a109b3b15..24150c933fcb 100644
--- a/drivers/net/arcnet/com20020_cs.c
+++ b/drivers/net/arcnet/com20020_cs.c
@@ -133,7 +133,7 @@ static int com20020_probe(struct pcmcia_device *p_dev)
 	lp->hw.owner = THIS_MODULE;
 
 	/* fill in our module parameters as defaults */
-	dev->dev_addr[0] = node;
+	arcnet_set_addr(dev, node);
 
 	p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
 	p_dev->resource[0]->end = 16;
diff --git a/drivers/net/arcnet/com90io.c b/drivers/net/arcnet/com90io.c
index 3856b447d38e..37b47749fc8b 100644
--- a/drivers/net/arcnet/com90io.c
+++ b/drivers/net/arcnet/com90io.c
@@ -252,7 +252,7 @@ static int __init com90io_found(struct net_device *dev)
 
 	/* get and check the station ID from offset 1 in shmem */
 
-	dev->dev_addr[0] = get_buffer_byte(dev, 1);
+	arcnet_set_addr(dev, get_buffer_byte(dev, 1));
 
 	err = register_netdev(dev);
 	if (err) {
diff --git a/drivers/net/arcnet/com90xx.c b/drivers/net/arcnet/com90xx.c
index d8dfb9ea0de8..f49dae194284 100644
--- a/drivers/net/arcnet/com90xx.c
+++ b/drivers/net/arcnet/com90xx.c
@@ -531,7 +531,8 @@ static int __init com90xx_found(int ioaddr, int airq, u_long shmem,
 	}
 
 	/* get and check the station ID from offset 1 in shmem */
-	dev->dev_addr[0] = arcnet_readb(lp->mem_start, COM9026_REG_R_STATION);
+	arcnet_set_addr(dev, arcnet_readb(lp->mem_start,
+					  COM9026_REG_R_STATION));
 
 	dev->base_addr = ioaddr;
 
diff --git a/drivers/net/usb/cdc-phonet.c b/drivers/net/usb/cdc-phonet.c
index e1da9102a540..ad5121e9cf5d 100644
--- a/drivers/net/usb/cdc-phonet.c
+++ b/drivers/net/usb/cdc-phonet.c
@@ -275,6 +275,8 @@ static const struct net_device_ops usbpn_ops = {
 
 static void usbpn_setup(struct net_device *dev)
 {
+	const u8 addr = PN_MEDIA_USB;
+
 	dev->features		= 0;
 	dev->netdev_ops		= &usbpn_ops;
 	dev->header_ops		= &phonet_header_ops;
@@ -284,8 +286,8 @@ static void usbpn_setup(struct net_device *dev)
 	dev->min_mtu		= PHONET_MIN_MTU;
 	dev->max_mtu		= PHONET_MAX_MTU;
 	dev->hard_header_len	= 1;
-	dev->dev_addr[0]	= PN_MEDIA_USB;
 	dev->addr_len		= 1;
+	dev_addr_set(dev, &addr);
 	dev->tx_queue_len	= 3;
 
 	dev->needs_free_netdev	= true;
diff --git a/drivers/usb/gadget/function/f_phonet.c b/drivers/usb/gadget/function/f_phonet.c
index 0b468f5d55bc..068ed8417e5a 100644
--- a/drivers/usb/gadget/function/f_phonet.c
+++ b/drivers/usb/gadget/function/f_phonet.c
@@ -267,6 +267,8 @@ static const struct net_device_ops pn_netdev_ops = {
 
 static void pn_net_setup(struct net_device *dev)
 {
+	const u8 addr = PN_MEDIA_USB;
+
 	dev->features		= 0;
 	dev->type		= ARPHRD_PHONET;
 	dev->flags		= IFF_POINTOPOINT | IFF_NOARP;
@@ -274,8 +276,9 @@ static void pn_net_setup(struct net_device *dev)
 	dev->min_mtu		= PHONET_MIN_MTU;
 	dev->max_mtu		= PHONET_MAX_MTU;
 	dev->hard_header_len	= 1;
-	dev->dev_addr[0]	= PN_MEDIA_USB;
 	dev->addr_len		= 1;
+	dev_addr_set(dev, &addr);
+
 	dev->tx_queue_len	= 1;
 
 	dev->netdev_ops		= &pn_netdev_ops;
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH net-next] net: remove single-byte netdev->dev_addr writes
  2021-10-12 14:27 [PATCH net-next] net: remove single-byte netdev->dev_addr writes Jakub Kicinski
@ 2021-10-12 14:55 ` Sebastian Reichel
  2021-10-13 17:50 ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 3+ messages in thread
From: Sebastian Reichel @ 2021-10-12 14:55 UTC (permalink / raw)
  To: Jakub Kicinski; +Cc: davem, netdev, m.grzeschik, balbi

[-- Attachment #1: Type: text/plain, Size: 10046 bytes --]

Hi,

On Tue, Oct 12, 2021 at 07:27:57AM -0700, Jakub Kicinski wrote:
> Make the drivers which use single-byte netdev addresses
> (netdev->addr_len == 1) use the appropriate address setting
> helpers.
> 
> arcnet copies from int variables and io reads a lot, so
> add a helper for arcnet drivers to use.
> 
> Similar helper could be reused for phonet and appletalk
> but there isn't any good central location where we could
> put it, and netdevice.h is already very crowded.
> 
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> ---
>  drivers/hsi/clients/ssi_protocol.c     | 4 +++-
>  drivers/net/appletalk/cops.c           | 2 +-
>  drivers/net/appletalk/ltpc.c           | 3 +--
>  drivers/net/arcnet/arc-rimi.c          | 5 +++--
>  drivers/net/arcnet/arcdevice.h         | 5 +++++
>  drivers/net/arcnet/com20020-isa.c      | 2 +-
>  drivers/net/arcnet/com20020-pci.c      | 2 +-
>  drivers/net/arcnet/com20020.c          | 4 ++--
>  drivers/net/arcnet/com20020_cs.c       | 2 +-
>  drivers/net/arcnet/com90io.c           | 2 +-
>  drivers/net/arcnet/com90xx.c           | 3 ++-
>  drivers/net/usb/cdc-phonet.c           | 4 +++-
>  drivers/usb/gadget/function/f_phonet.c | 5 ++++-
>  13 files changed, 28 insertions(+), 15 deletions(-)

Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com> # for HSI

-- Sebastian

> 
> diff --git a/drivers/hsi/clients/ssi_protocol.c b/drivers/hsi/clients/ssi_protocol.c
> index 96d0eccca3aa..21f11a5b965b 100644
> --- a/drivers/hsi/clients/ssi_protocol.c
> +++ b/drivers/hsi/clients/ssi_protocol.c
> @@ -1055,14 +1055,16 @@ static const struct net_device_ops ssip_pn_ops = {
>  
>  static void ssip_pn_setup(struct net_device *dev)
>  {
> +	static const u8 addr = PN_MEDIA_SOS;
> +
>  	dev->features		= 0;
>  	dev->netdev_ops		= &ssip_pn_ops;
>  	dev->type		= ARPHRD_PHONET;
>  	dev->flags		= IFF_POINTOPOINT | IFF_NOARP;
>  	dev->mtu		= SSIP_DEFAULT_MTU;
>  	dev->hard_header_len	= 1;
> -	dev->dev_addr[0]	= PN_MEDIA_SOS;
>  	dev->addr_len		= 1;
> +	dev_addr_set(dev, &addr);
>  	dev->tx_queue_len	= SSIP_TXQUEUE_LEN;
>  
>  	dev->needs_free_netdev	= true;
> diff --git a/drivers/net/appletalk/cops.c b/drivers/net/appletalk/cops.c
> index f0695d68c47e..97f254bdbb16 100644
> --- a/drivers/net/appletalk/cops.c
> +++ b/drivers/net/appletalk/cops.c
> @@ -945,8 +945,8 @@ static int cops_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
>                          dev->broadcast[0]       = 0xFF;
>  			
>  			/* Set hardware address. */
> -                        dev->dev_addr[0]        = aa->s_node;
>                          dev->addr_len           = 1;
> +			dev_addr_set(dev, &aa->s_node);
>                          return 0;
>  
>                  case SIOCGIFADDR:
> diff --git a/drivers/net/appletalk/ltpc.c b/drivers/net/appletalk/ltpc.c
> index 1f8925e75b3f..388d7b3bd4c2 100644
> --- a/drivers/net/appletalk/ltpc.c
> +++ b/drivers/net/appletalk/ltpc.c
> @@ -846,9 +846,8 @@ static int ltpc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
>  			set_30 (dev,ltflags);  
>  
>  			dev->broadcast[0] = 0xFF;
> -			dev->dev_addr[0] = aa->s_node;
> -
>  			dev->addr_len=1;
> +			dev_addr_set(dev, &aa->s_node);
>     
>  			return 0;
>  
> diff --git a/drivers/net/arcnet/arc-rimi.c b/drivers/net/arcnet/arc-rimi.c
> index 12d085405bd0..8c3ccc7c83cd 100644
> --- a/drivers/net/arcnet/arc-rimi.c
> +++ b/drivers/net/arcnet/arc-rimi.c
> @@ -207,7 +207,8 @@ static int __init arcrimi_found(struct net_device *dev)
>  	}
>  
>  	/* get and check the station ID from offset 1 in shmem */
> -	dev->dev_addr[0] = arcnet_readb(lp->mem_start, COM9026_REG_R_STATION);
> +	arcnet_set_addr(dev, arcnet_readb(lp->mem_start,
> +					  COM9026_REG_R_STATION));
>  
>  	arc_printk(D_NORMAL, dev, "ARCnet RIM I: station %02Xh found at IRQ %d, ShMem %lXh (%ld*%d bytes)\n",
>  		   dev->dev_addr[0],
> @@ -324,7 +325,7 @@ static int __init arc_rimi_init(void)
>  		return -ENOMEM;
>  
>  	if (node && node != 0xff)
> -		dev->dev_addr[0] = node;
> +		arcnet_set_addr(dev, node);
>  
>  	dev->mem_start = io;
>  	dev->irq = irq;
> diff --git a/drivers/net/arcnet/arcdevice.h b/drivers/net/arcnet/arcdevice.h
> index 5d4a4c7efbbf..19e996a829c9 100644
> --- a/drivers/net/arcnet/arcdevice.h
> +++ b/drivers/net/arcnet/arcdevice.h
> @@ -364,6 +364,11 @@ netdev_tx_t arcnet_send_packet(struct sk_buff *skb,
>  			       struct net_device *dev);
>  void arcnet_timeout(struct net_device *dev, unsigned int txqueue);
>  
> +static inline void arcnet_set_addr(struct net_device *dev, u8 addr)
> +{
> +	dev_addr_set(dev, &addr);
> +}
> +
>  /* I/O equivalents */
>  
>  #ifdef CONFIG_SA1100_CT6001
> diff --git a/drivers/net/arcnet/com20020-isa.c b/drivers/net/arcnet/com20020-isa.c
> index be618e4b9ed5..293a621e654c 100644
> --- a/drivers/net/arcnet/com20020-isa.c
> +++ b/drivers/net/arcnet/com20020-isa.c
> @@ -151,7 +151,7 @@ static int __init com20020_init(void)
>  		return -ENOMEM;
>  
>  	if (node && node != 0xff)
> -		dev->dev_addr[0] = node;
> +		arcnet_set_addr(dev, node);
>  
>  	dev->netdev_ops = &com20020_netdev_ops;
>  
> diff --git a/drivers/net/arcnet/com20020-pci.c b/drivers/net/arcnet/com20020-pci.c
> index 3c8f665c1558..6382e1937cca 100644
> --- a/drivers/net/arcnet/com20020-pci.c
> +++ b/drivers/net/arcnet/com20020-pci.c
> @@ -194,7 +194,7 @@ static int com20020pci_probe(struct pci_dev *pdev,
>  
>  		SET_NETDEV_DEV(dev, &pdev->dev);
>  		dev->base_addr = ioaddr;
> -		dev->dev_addr[0] = node;
> +		arcnet_set_addr(dev, node);
>  		dev->sysfs_groups[0] = &com20020_state_group;
>  		dev->irq = pdev->irq;
>  		lp->card_name = "PCI COM20020";
> diff --git a/drivers/net/arcnet/com20020.c b/drivers/net/arcnet/com20020.c
> index 78043a9c5981..06e1651b594b 100644
> --- a/drivers/net/arcnet/com20020.c
> +++ b/drivers/net/arcnet/com20020.c
> @@ -157,7 +157,7 @@ static int com20020_set_hwaddr(struct net_device *dev, void *addr)
>  	struct arcnet_local *lp = netdev_priv(dev);
>  	struct sockaddr *hwaddr = addr;
>  
> -	memcpy(dev->dev_addr, hwaddr->sa_data, 1);
> +	dev_addr_set(dev, hwaddr->sa_data);
>  	com20020_set_subaddress(lp, ioaddr, SUB_NODE);
>  	arcnet_outb(dev->dev_addr[0], ioaddr, COM20020_REG_W_XREG);
>  
> @@ -220,7 +220,7 @@ int com20020_found(struct net_device *dev, int shared)
>  
>  	/* FIXME: do this some other way! */
>  	if (!dev->dev_addr[0])
> -		dev->dev_addr[0] = arcnet_inb(ioaddr, 8);
> +		arcnet_set_addr(dev, arcnet_inb(ioaddr, 8));
>  
>  	com20020_set_subaddress(lp, ioaddr, SUB_SETUP1);
>  	arcnet_outb(lp->setup, ioaddr, COM20020_REG_W_XREG);
> diff --git a/drivers/net/arcnet/com20020_cs.c b/drivers/net/arcnet/com20020_cs.c
> index b88a109b3b15..24150c933fcb 100644
> --- a/drivers/net/arcnet/com20020_cs.c
> +++ b/drivers/net/arcnet/com20020_cs.c
> @@ -133,7 +133,7 @@ static int com20020_probe(struct pcmcia_device *p_dev)
>  	lp->hw.owner = THIS_MODULE;
>  
>  	/* fill in our module parameters as defaults */
> -	dev->dev_addr[0] = node;
> +	arcnet_set_addr(dev, node);
>  
>  	p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
>  	p_dev->resource[0]->end = 16;
> diff --git a/drivers/net/arcnet/com90io.c b/drivers/net/arcnet/com90io.c
> index 3856b447d38e..37b47749fc8b 100644
> --- a/drivers/net/arcnet/com90io.c
> +++ b/drivers/net/arcnet/com90io.c
> @@ -252,7 +252,7 @@ static int __init com90io_found(struct net_device *dev)
>  
>  	/* get and check the station ID from offset 1 in shmem */
>  
> -	dev->dev_addr[0] = get_buffer_byte(dev, 1);
> +	arcnet_set_addr(dev, get_buffer_byte(dev, 1));
>  
>  	err = register_netdev(dev);
>  	if (err) {
> diff --git a/drivers/net/arcnet/com90xx.c b/drivers/net/arcnet/com90xx.c
> index d8dfb9ea0de8..f49dae194284 100644
> --- a/drivers/net/arcnet/com90xx.c
> +++ b/drivers/net/arcnet/com90xx.c
> @@ -531,7 +531,8 @@ static int __init com90xx_found(int ioaddr, int airq, u_long shmem,
>  	}
>  
>  	/* get and check the station ID from offset 1 in shmem */
> -	dev->dev_addr[0] = arcnet_readb(lp->mem_start, COM9026_REG_R_STATION);
> +	arcnet_set_addr(dev, arcnet_readb(lp->mem_start,
> +					  COM9026_REG_R_STATION));
>  
>  	dev->base_addr = ioaddr;
>  
> diff --git a/drivers/net/usb/cdc-phonet.c b/drivers/net/usb/cdc-phonet.c
> index e1da9102a540..ad5121e9cf5d 100644
> --- a/drivers/net/usb/cdc-phonet.c
> +++ b/drivers/net/usb/cdc-phonet.c
> @@ -275,6 +275,8 @@ static const struct net_device_ops usbpn_ops = {
>  
>  static void usbpn_setup(struct net_device *dev)
>  {
> +	const u8 addr = PN_MEDIA_USB;
> +
>  	dev->features		= 0;
>  	dev->netdev_ops		= &usbpn_ops;
>  	dev->header_ops		= &phonet_header_ops;
> @@ -284,8 +286,8 @@ static void usbpn_setup(struct net_device *dev)
>  	dev->min_mtu		= PHONET_MIN_MTU;
>  	dev->max_mtu		= PHONET_MAX_MTU;
>  	dev->hard_header_len	= 1;
> -	dev->dev_addr[0]	= PN_MEDIA_USB;
>  	dev->addr_len		= 1;
> +	dev_addr_set(dev, &addr);
>  	dev->tx_queue_len	= 3;
>  
>  	dev->needs_free_netdev	= true;
> diff --git a/drivers/usb/gadget/function/f_phonet.c b/drivers/usb/gadget/function/f_phonet.c
> index 0b468f5d55bc..068ed8417e5a 100644
> --- a/drivers/usb/gadget/function/f_phonet.c
> +++ b/drivers/usb/gadget/function/f_phonet.c
> @@ -267,6 +267,8 @@ static const struct net_device_ops pn_netdev_ops = {
>  
>  static void pn_net_setup(struct net_device *dev)
>  {
> +	const u8 addr = PN_MEDIA_USB;
> +
>  	dev->features		= 0;
>  	dev->type		= ARPHRD_PHONET;
>  	dev->flags		= IFF_POINTOPOINT | IFF_NOARP;
> @@ -274,8 +276,9 @@ static void pn_net_setup(struct net_device *dev)
>  	dev->min_mtu		= PHONET_MIN_MTU;
>  	dev->max_mtu		= PHONET_MAX_MTU;
>  	dev->hard_header_len	= 1;
> -	dev->dev_addr[0]	= PN_MEDIA_USB;
>  	dev->addr_len		= 1;
> +	dev_addr_set(dev, &addr);
> +
>  	dev->tx_queue_len	= 1;
>  
>  	dev->netdev_ops		= &pn_netdev_ops;
> -- 
> 2.31.1
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH net-next] net: remove single-byte netdev->dev_addr writes
  2021-10-12 14:27 [PATCH net-next] net: remove single-byte netdev->dev_addr writes Jakub Kicinski
  2021-10-12 14:55 ` Sebastian Reichel
@ 2021-10-13 17:50 ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-10-13 17:50 UTC (permalink / raw)
  To: Jakub Kicinski; +Cc: davem, netdev, sre, m.grzeschik, balbi

Hello:

This patch was applied to netdev/net-next.git (master)
by Jakub Kicinski <kuba@kernel.org>:

On Tue, 12 Oct 2021 07:27:57 -0700 you wrote:
> Make the drivers which use single-byte netdev addresses
> (netdev->addr_len == 1) use the appropriate address setting
> helpers.
> 
> arcnet copies from int variables and io reads a lot, so
> add a helper for arcnet drivers to use.
> 
> [...]

Here is the summary with links:
  - [net-next] net: remove single-byte netdev->dev_addr writes
    https://git.kernel.org/netdev/net-next/c/13b5ffa0e282

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-10-13 17:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-12 14:27 [PATCH net-next] net: remove single-byte netdev->dev_addr writes Jakub Kicinski
2021-10-12 14:55 ` Sebastian Reichel
2021-10-13 17:50 ` patchwork-bot+netdevbpf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.