bcm63xx: remove memcpy from mac assignment

With GCC11, memcpy doesn't work here as it assumes a size of 0. Use
ioremap to avoid it.

Fixed parameter type to match board_get_mac_address.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
Rosen Penev 2021-09-20 19:23:58 -07:00 committed by Paul Spooren
parent 753f2f1eaa
commit f9050f1c43
2 changed files with 16 additions and 6 deletions

View File

@ -58,7 +58,7 @@ Subject: [PATCH] MIPS: BCM63XX: add inventel Livebox support
#endif /* __BOARD_COMMON_H */
--- /dev/null
+++ b/arch/mips/bcm63xx/boards/board_livebox.c
@@ -0,0 +1,153 @@
@@ -0,0 +1,158 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
@ -130,12 +130,17 @@ Subject: [PATCH] MIPS: BCM63XX: add inventel Livebox support
+/*
+ * register & return a new board mac address
+ */
+static int livebox_get_mac_address(u8 *mac)
+static int livebox_get_mac_address(u8 mac[ETH_ALEN])
+{
+ u8 *p;
+ int count;
+ void __iomem *volatile mmio;
+
+ memcpy(mac, (u8 *)0xBEBFF377, ETH_ALEN);
+ mmio = ioremap(0x1ebff377, 0x8);
+ if (!mmio)
+ return -EIO;
+ memcpy_fromio(mac, mmio, ETH_ALEN);
+ iounmap(mmio);
+
+ p = mac + ETH_ALEN - 1;
+ count = mac_addr_used;

View File

@ -58,7 +58,7 @@ Subject: [PATCH] MIPS: BCM63XX: add inventel Livebox support
#endif /* __BOARD_COMMON_H */
--- /dev/null
+++ b/arch/mips/bcm63xx/boards/board_livebox.c
@@ -0,0 +1,153 @@
@@ -0,0 +1,158 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
@ -130,12 +130,17 @@ Subject: [PATCH] MIPS: BCM63XX: add inventel Livebox support
+/*
+ * register & return a new board mac address
+ */
+static int livebox_get_mac_address(u8 *mac)
+static int livebox_get_mac_address(u8 mac[ETH_ALEN])
+{
+ u8 *p;
+ int count;
+ void __iomem *volatile mmio;
+
+ memcpy(mac, (u8 *)0xBEBFF377, ETH_ALEN);
+ mmio = ioremap(0x1ebff377, 0x8);
+ if (!mmio)
+ return -EIO;
+ memcpy_fromio(mac, mmio, ETH_ALEN);
+ iounmap(mmio);
+
+ p = mac + ETH_ALEN - 1;
+ count = mac_addr_used;