@@ -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 */
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(-)