[PATCH 1/2 -net] natsemi: xtensa: allow writing to const dev_addr array
From: Randy Dunlap <hidden>
Date: 2021-11-30 06:39:43
Let the compiler know that it's ok to write to this const field.
Fixes these build errors:
../drivers/net/ethernet/natsemi/xtsonic.c: In function 'sonic_probe1':
../drivers/net/ethernet/natsemi/xtsonic.c:166:36: error: assignment of read-only location '*(dev->dev_addr + (sizetype)(i * 2))'
166 | dev->dev_addr[i*2] = val;
../drivers/net/ethernet/natsemi/xtsonic.c:167:38: error: assignment of read-only location '*(dev->dev_addr + ((sizetype)(i * 2) + 1))'
167 | dev->dev_addr[i*2+1] = val >> 8;
Fixes: 74f2a5f0ef64 ("xtensa: Add support for the Sonic Ethernet device for the XT2000 board.")
Signed-off-by: Randy Dunlap <redacted>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Chris Zankel <chris@zankel.net>
Cc: Max Filippov <jcmvbkbc@gmail.com>
Cc: linux-xtensa@linux-xtensa.org
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jakub Kicinski <kuba@kernel.org>
---
drivers/net/ethernet/natsemi/xtsonic.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
--- linux-next-20211129.orig/drivers/net/ethernet/natsemi/xtsonic.c
+++ linux-next-20211129/drivers/net/ethernet/natsemi/xtsonic.c@@ -125,6 +125,7 @@ static int __init sonic_probe1(struct ne unsigned int silicon_revision; struct sonic_local *lp = netdev_priv(dev); unsigned int base_addr = dev->base_addr; + unsigned char *devadr; int i; int err = 0;
@@ -161,10 +162,10 @@ static int __init sonic_probe1(struct ne SONIC_WRITE(SONIC_CMD,SONIC_CR_RST); SONIC_WRITE(SONIC_CEP,0); - for (i=0; i<3; i++) { + for (i=0, devadr = (unsigned char *)dev->dev_addr; i<3; i++) { unsigned int val = SONIC_READ(SONIC_CAP0-i); - dev->dev_addr[i*2] = val; - dev->dev_addr[i*2+1] = val >> 8; + devadr[i*2] = val; + devadr[i*2+1] = val >> 8; } lp->dma_bitmode = SONIC_BITMODE32;