diff mbox series

[21/47] headers: Adapt signature of of_get_mac_address()

Message ID 20211019214320.2035704-22-hauke@hauke-m.de (mailing list archive)
State New, archived
Headers show
Series backports: Update to kernel 5.15-rc6 | expand

Commit Message

Hauke Mehrtens Oct. 19, 2021, 9:42 p.m. UTC
The function signature of of_get_mac_address() changed in kernel 5.13.
This code converts calls using the new signature to the old API.
The return value changed in kernel 5.2, which is still taken care of.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 backport/backport-include/linux/of_net.h | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)
diff mbox series

Patch

diff --git a/backport/backport-include/linux/of_net.h b/backport/backport-include/linux/of_net.h
index 866aec57..9b9276f1 100644
--- a/backport/backport-include/linux/of_net.h
+++ b/backport/backport-include/linux/of_net.h
@@ -2,19 +2,23 @@ 
 #define _BP_OF_NET_H
 #include_next <linux/of_net.h>
 #include <linux/version.h>
+#include <linux/etherdevice.h>
 
 /* The behavior of of_get_mac_address() changed in kernel 5.2, it now
  * returns an error code and not NULL in case of an error.
  */
-#if LINUX_VERSION_IS_LESS(5,2,0)
-static inline const void *backport_of_get_mac_address(struct device_node *np)
+#if LINUX_VERSION_IS_LESS(5,13,0)
+static inline int backport_of_get_mac_address(struct device_node *np, u8 *mac_out)
 {
 	const void *mac = of_get_mac_address(np);
 
 	if (!mac)
-		return ERR_PTR(-ENODEV);
-
-	return mac;
+		return -ENODEV;
+	if (IS_ERR(mac))
+		return PTR_ERR(mac);
+	ether_addr_copy(mac_out, mac);
+	
+	return 0;
 }
 #define of_get_mac_address LINUX_BACKPORT(of_get_mac_address)
 #endif /* < 5.2 */