It supports formats of both 001122334455 and 00:11:22:33:44:55 Signed-off-by: Yousong Zhou <[email protected]> --- ...et-sched-Introduce-act_ctinfo-action.patch | 18 ---- ...et-sched-Introduce-act_ctinfo-action.patch | 20 ---- .../generic/hack-4.9/220-gc_sections.patch | 2 +- .../681-NET-add-of_get_mac_address_mtd.patch | 94 ++++++++++++---- .../681-NET-add-of_get_mac_address_mtd.patch | 94 ++++++++++++---- .../681-NET-add-of_get_mac_address_mtd.patch | 100 ++++++++++++++---- 6 files changed, 229 insertions(+), 99 deletions(-)
diff --git a/target/linux/generic/backport-4.14/380-v5.3-net-sched-Introduce-act_ctinfo-action.patch b/target/linux/generic/backport-4.14/380-v5.3-net-sched-Introduce-act_ctinfo-action.patch index 26063985c0..cd729a93b1 100644 --- a/target/linux/generic/backport-4.14/380-v5.3-net-sched-Introduce-act_ctinfo-action.patch +++ b/target/linux/generic/backport-4.14/380-v5.3-net-sched-Introduce-act_ctinfo-action.patch @@ -55,9 +55,6 @@ Signed-off-by: Kevin Darbyshire-Bryant <[email protected]> create mode 100644 include/uapi/linux/tc_act/tc_ctinfo.h create mode 100644 net/sched/act_ctinfo.c -diff --git a/include/net/tc_act/tc_ctinfo.h b/include/net/tc_act/tc_ctinfo.h -new file mode 100644 -index 000000000000..d6a688571672 --- /dev/null +++ b/include/net/tc_act/tc_ctinfo.h @@ -0,0 +1,28 @@ @@ -89,8 +86,6 @@ index 000000000000..d6a688571672 +#define to_ctinfo(a) ((struct tcf_ctinfo *)a) + +#endif /* __NET_TC_CTINFO_H */ -diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h -index 46c506615f4a..408b02fbb34a 100644 --- a/include/uapi/linux/pkt_cls.h +++ b/include/uapi/linux/pkt_cls.h @@ -66,7 +66,8 @@ enum { @@ -103,9 +98,6 @@ index 46c506615f4a..408b02fbb34a 100644 }; #define TCA_ID_MAX __TCA_ID_MAX -diff --git a/include/uapi/linux/tc_act/tc_ctinfo.h b/include/uapi/linux/tc_act/tc_ctinfo.h -new file mode 100644 -index 000000000000..da803e05a89b --- /dev/null +++ b/include/uapi/linux/tc_act/tc_ctinfo.h @@ -0,0 +1,34 @@ @@ -143,8 +135,6 @@ index 000000000000..da803e05a89b +}; + +#endif -diff --git a/net/sched/Kconfig b/net/sched/Kconfig -index e70ed26485a2..962d90f72f54 100644 --- a/net/sched/Kconfig +++ b/net/sched/Kconfig @@ -808,6 +808,19 @@ config NET_ACT_CONNMARK @@ -167,8 +157,6 @@ index e70ed26485a2..962d90f72f54 100644 config NET_ACT_SKBMOD tristate "skb data modification action" depends on NET_CLS_ACT -diff --git a/net/sched/Makefile b/net/sched/Makefile -index 9e43a4721ef8..44ee5b87b895 100644 --- a/net/sched/Makefile +++ b/net/sched/Makefile @@ -21,6 +21,7 @@ obj-$(CONFIG_NET_ACT_CSUM) += act_csum.o @@ -179,9 +167,6 @@ index 9e43a4721ef8..44ee5b87b895 100644 obj-$(CONFIG_NET_ACT_SKBMOD) += act_skbmod.o obj-$(CONFIG_NET_ACT_IFE) += act_ife.o obj-$(CONFIG_NET_IFE_SKBMARK) += act_meta_mark.o -diff --git a/net/sched/act_ctinfo.c b/net/sched/act_ctinfo.c -new file mode 100644 -index 000000000000..e65344e32801 --- /dev/null +++ b/net/sched/act_ctinfo.c @@ -0,0 +1,394 @@ @@ -579,6 +564,3 @@ index 000000000000..e65344e32801 +MODULE_AUTHOR("Kevin Darbyshire-Bryant <[email protected]>"); +MODULE_DESCRIPTION("Conntrack mark to DSCP restoring"); +MODULE_LICENSE("GPL"); --- -2.20.1 (Apple Git-117) - diff --git a/target/linux/generic/backport-4.19/380-v5.3-net-sched-Introduce-act_ctinfo-action.patch b/target/linux/generic/backport-4.19/380-v5.3-net-sched-Introduce-act_ctinfo-action.patch index 632f41ef98..cc4a621bb4 100644 --- a/target/linux/generic/backport-4.19/380-v5.3-net-sched-Introduce-act_ctinfo-action.patch +++ b/target/linux/generic/backport-4.19/380-v5.3-net-sched-Introduce-act_ctinfo-action.patch @@ -71,9 +71,6 @@ Signed-off-by: Kevin Darbyshire-Bryant <[email protected]> create mode 100644 include/uapi/linux/tc_act/tc_ctinfo.h create mode 100644 net/sched/act_ctinfo.c -diff --git a/include/net/tc_act/tc_ctinfo.h b/include/net/tc_act/tc_ctinfo.h -new file mode 100644 -index 000000000000..d6a688571672 --- /dev/null +++ b/include/net/tc_act/tc_ctinfo.h @@ -0,0 +1,28 @@ @@ -105,8 +102,6 @@ index 000000000000..d6a688571672 +#define to_ctinfo(a) ((struct tcf_ctinfo *)a) + +#endif /* __NET_TC_CTINFO_H */ -diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h -index be382fb0592d..71e10c5a96a0 100644 --- a/include/uapi/linux/pkt_cls.h +++ b/include/uapi/linux/pkt_cls.h @@ -68,7 +68,8 @@ enum { @@ -119,9 +114,6 @@ index be382fb0592d..71e10c5a96a0 100644 }; #define TCA_ID_MAX __TCA_ID_MAX -diff --git a/include/uapi/linux/tc_act/tc_ctinfo.h b/include/uapi/linux/tc_act/tc_ctinfo.h -new file mode 100644 -index 000000000000..da803e05a89b --- /dev/null +++ b/include/uapi/linux/tc_act/tc_ctinfo.h @@ -0,0 +1,34 @@ @@ -159,8 +151,6 @@ index 000000000000..da803e05a89b +}; + +#endif -diff --git a/net/sched/Kconfig b/net/sched/Kconfig -index e95741388311..1d79d5dba6e4 100644 --- a/net/sched/Kconfig +++ b/net/sched/Kconfig @@ -866,6 +866,23 @@ config NET_ACT_CONNMARK @@ -187,8 +177,6 @@ index e95741388311..1d79d5dba6e4 100644 config NET_ACT_SKBMOD tristate "skb data modification action" depends on NET_CLS_ACT -diff --git a/net/sched/Makefile b/net/sched/Makefile -index f0403f49edcb..bb3c2bc44af7 100644 --- a/net/sched/Makefile +++ b/net/sched/Makefile @@ -21,6 +21,7 @@ obj-$(CONFIG_NET_ACT_CSUM) += act_csum.o @@ -199,9 +187,6 @@ index f0403f49edcb..bb3c2bc44af7 100644 obj-$(CONFIG_NET_ACT_SKBMOD) += act_skbmod.o obj-$(CONFIG_NET_ACT_IFE) += act_ife.o obj-$(CONFIG_NET_IFE_SKBMARK) += act_meta_mark.o -diff --git a/net/sched/act_ctinfo.c b/net/sched/act_ctinfo.c -new file mode 100644 -index 000000000000..8975cb4976aa --- /dev/null +++ b/net/sched/act_ctinfo.c @@ -0,0 +1,395 @@ @@ -600,8 +585,6 @@ index 000000000000..8975cb4976aa +MODULE_AUTHOR("Kevin Darbyshire-Bryant <[email protected]>"); +MODULE_DESCRIPTION("Connection tracking mark actions"); +MODULE_LICENSE("GPL"); -diff --git a/tools/testing/selftests/tc-testing/config b/tools/testing/selftests/tc-testing/config -index 203302065458..9d1fddcfb887 100644 --- a/tools/testing/selftests/tc-testing/config +++ b/tools/testing/selftests/tc-testing/config @@ -37,6 +37,7 @@ CONFIG_NET_ACT_SKBEDIT=m @@ -612,6 +595,3 @@ index 203302065458..9d1fddcfb887 100644 CONFIG_NET_ACT_CONNMARK=m CONFIG_NET_ACT_SKBMOD=m CONFIG_NET_ACT_IFE=m --- -2.20.1 (Apple Git-117) - diff --git a/target/linux/generic/hack-4.9/220-gc_sections.patch b/target/linux/generic/hack-4.9/220-gc_sections.patch index 732e38aaf0..945220ea06 100644 --- a/target/linux/generic/hack-4.9/220-gc_sections.patch +++ b/target/linux/generic/hack-4.9/220-gc_sections.patch @@ -22,7 +22,7 @@ Signed-off-by: Gabor Juhos <[email protected]> --- a/Makefile +++ b/Makefile @@ -401,6 +401,11 @@ KBUILD_CFLAGS_MODULE := -DMODULE - KBUILD_LDFLAGS_MODULE = -T $(srctree)/scripts/module-common.lds $(if $(CONFIG_PROFILING),,-s) + KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds GCC_PLUGINS_CFLAGS := +ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION diff --git a/target/linux/generic/pending-4.14/681-NET-add-of_get_mac_address_mtd.patch b/target/linux/generic/pending-4.14/681-NET-add-of_get_mac_address_mtd.patch index 2b89a05238..301cd87ded 100644 --- a/target/linux/generic/pending-4.14/681-NET-add-of_get_mac_address_mtd.patch +++ b/target/linux/generic/pending-4.14/681-NET-add-of_get_mac_address_mtd.patch @@ -32,17 +32,62 @@ Signed-off-by: Felix Fietkau <[email protected]> { struct property *pp = of_find_property(np, name, NULL); -@@ -47,6 +48,79 @@ static const void *of_get_mac_addr(struc +@@ -47,6 +48,133 @@ static const void *of_get_mac_addr(struc return NULL; } ++typedef int(*mtd_mac_address_read)(struct mtd_info *mtd, loff_t from, u_char *buf); ++ ++static int read_mtd_mac_address(struct mtd_info *mtd, loff_t from, u_char *mac) ++{ ++ int retlen; ++ ++ return mtd_read(mtd, from, 6, &retlen, mac); ++} ++ ++static int read_mtd_mac_address_ascii(struct mtd_info *mtd, loff_t from, u_char *mac) ++{ ++ int retlen; ++ char buf[17]; ++ ++ if (mtd_read(mtd, from, 12, &retlen, buf)) { ++ return -1; ++ } ++ if (sscanf(buf, "%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx", ++ &mac[0], &mac[1], &mac[2], &mac[3], ++ &mac[4], &mac[5]) == 6) { ++ return 0; ++ } ++ if (mtd_read(mtd, from+12, 5, &retlen, buf+12)) { ++ return -1; ++ } ++ if (sscanf(buf, "%2hhx:%2hhx:%2hhx:%2hhx:%2hhx:%2hhx", ++ &mac[0], &mac[1], &mac[2], &mac[3], ++ &mac[4], &mac[5]) == 6) { ++ return 0; ++ } ++ return -1; ++} ++ ++static struct mtd_mac_address_property { ++ char *name; ++ mtd_mac_address_read read; ++} mtd_mac_address_properties[] = { ++ { ++ .name = "mtd-mac-address", ++ .read = read_mtd_mac_address, ++ }, { ++ .name = "mtd-mac-address-ascii", ++ .read = read_mtd_mac_address_ascii, ++ }, ++}; ++ +static const void *of_get_mac_address_mtd(struct device_node *np) +{ +#ifdef CONFIG_MTD + struct device_node *mtd_np = NULL; + struct property *prop; -+ size_t retlen; -+ int size, ret; ++ int size, ret = -1; + struct mtd_info *mtd; + const char *part; + const __be32 *list; @@ -51,28 +96,37 @@ Signed-off-by: Felix Fietkau <[email protected]> + u8 mac[ETH_ALEN]; + void *addr; + u32 inc_idx; ++ int i; + -+ list = of_get_property(np, "mtd-mac-address", &size); -+ if (!list || (size != (2 * sizeof(*list)))) -+ return NULL; ++ for (i = 0; i < ARRAY_SIZE(mtd_mac_address_properties); i++) { ++ list = of_get_property(np, mtd_mac_address_properties[i].name, &size); ++ if (!list || (size != (2 * sizeof(*list)))) ++ continue; + -+ phandle = be32_to_cpup(list++); -+ if (phandle) -+ mtd_np = of_find_node_by_phandle(phandle); ++ phandle = be32_to_cpup(list++); ++ if (phandle) ++ mtd_np = of_find_node_by_phandle(phandle); + -+ if (!mtd_np) -+ return NULL; ++ if (!mtd_np) ++ continue; + -+ part = of_get_property(mtd_np, "label", NULL); -+ if (!part) -+ part = mtd_np->name; ++ part = of_get_property(mtd_np, "label", NULL); ++ if (!part) ++ part = mtd_np->name; + -+ mtd = get_mtd_device_nm(part); -+ if (IS_ERR(mtd)) -+ return NULL; ++ mtd = get_mtd_device_nm(part); ++ if (IS_ERR(mtd)) ++ continue; + -+ ret = mtd_read(mtd, be32_to_cpup(list), 6, &retlen, mac); -+ put_mtd_device(mtd); ++ ret = mtd_mac_address_properties[i].read(mtd, be32_to_cpup(list), mac); ++ put_mtd_device(mtd); ++ if (!ret) { ++ break; ++ } ++ } ++ if (ret) { ++ return NULL; ++ } + + if (of_property_read_u32(np, "mtd-mac-address-increment-byte", &inc_idx)) + inc_idx = 5; @@ -112,7 +166,7 @@ Signed-off-by: Felix Fietkau <[email protected]> /** * Search the device tree for the best MAC address to use. 'mac-address' is * checked first, because that is supposed to contain to "most recent" MAC -@@ -64,11 +138,18 @@ static const void *of_get_mac_addr(struc +@@ -64,11 +192,18 @@ static const void *of_get_mac_addr(struc * addresses. Some older U-Boots only initialized 'local-mac-address'. In * this case, the real MAC is in 'local-mac-address', and 'mac-address' exists * but is all zeros. diff --git a/target/linux/generic/pending-4.19/681-NET-add-of_get_mac_address_mtd.patch b/target/linux/generic/pending-4.19/681-NET-add-of_get_mac_address_mtd.patch index 13f5640590..fa019eab00 100644 --- a/target/linux/generic/pending-4.19/681-NET-add-of_get_mac_address_mtd.patch +++ b/target/linux/generic/pending-4.19/681-NET-add-of_get_mac_address_mtd.patch @@ -32,17 +32,62 @@ Signed-off-by: Felix Fietkau <[email protected]> { struct property *pp = of_find_property(np, name, NULL); -@@ -48,6 +49,79 @@ static const void *of_get_mac_addr(struc +@@ -48,6 +49,133 @@ static const void *of_get_mac_addr(struc return NULL; } ++typedef int(*mtd_mac_address_read)(struct mtd_info *mtd, loff_t from, u_char *buf); ++ ++static int read_mtd_mac_address(struct mtd_info *mtd, loff_t from, u_char *mac) ++{ ++ int retlen; ++ ++ return mtd_read(mtd, from, 6, &retlen, mac); ++} ++ ++static int read_mtd_mac_address_ascii(struct mtd_info *mtd, loff_t from, u_char *mac) ++{ ++ int retlen; ++ char buf[17]; ++ ++ if (mtd_read(mtd, from, 12, &retlen, buf)) { ++ return -1; ++ } ++ if (sscanf(buf, "%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx", ++ &mac[0], &mac[1], &mac[2], &mac[3], ++ &mac[4], &mac[5]) == 6) { ++ return 0; ++ } ++ if (mtd_read(mtd, from+12, 5, &retlen, buf+12)) { ++ return -1; ++ } ++ if (sscanf(buf, "%2hhx:%2hhx:%2hhx:%2hhx:%2hhx:%2hhx", ++ &mac[0], &mac[1], &mac[2], &mac[3], ++ &mac[4], &mac[5]) == 6) { ++ return 0; ++ } ++ return -1; ++} ++ ++static struct mtd_mac_address_property { ++ char *name; ++ mtd_mac_address_read read; ++} mtd_mac_address_properties[] = { ++ { ++ .name = "mtd-mac-address", ++ .read = read_mtd_mac_address, ++ }, { ++ .name = "mtd-mac-address-ascii", ++ .read = read_mtd_mac_address_ascii, ++ }, ++}; ++ +static const void *of_get_mac_address_mtd(struct device_node *np) +{ +#ifdef CONFIG_MTD + struct device_node *mtd_np = NULL; + struct property *prop; -+ size_t retlen; -+ int size, ret; ++ int size, ret = -1; + struct mtd_info *mtd; + const char *part; + const __be32 *list; @@ -51,28 +96,37 @@ Signed-off-by: Felix Fietkau <[email protected]> + u8 mac[ETH_ALEN]; + void *addr; + u32 inc_idx; ++ int i; + -+ list = of_get_property(np, "mtd-mac-address", &size); -+ if (!list || (size != (2 * sizeof(*list)))) -+ return NULL; ++ for (i = 0; i < ARRAY_SIZE(mtd_mac_address_properties); i++) { ++ list = of_get_property(np, mtd_mac_address_properties[i].name, &size); ++ if (!list || (size != (2 * sizeof(*list)))) ++ continue; + -+ phandle = be32_to_cpup(list++); -+ if (phandle) -+ mtd_np = of_find_node_by_phandle(phandle); ++ phandle = be32_to_cpup(list++); ++ if (phandle) ++ mtd_np = of_find_node_by_phandle(phandle); + -+ if (!mtd_np) -+ return NULL; ++ if (!mtd_np) ++ continue; + -+ part = of_get_property(mtd_np, "label", NULL); -+ if (!part) -+ part = mtd_np->name; ++ part = of_get_property(mtd_np, "label", NULL); ++ if (!part) ++ part = mtd_np->name; + -+ mtd = get_mtd_device_nm(part); -+ if (IS_ERR(mtd)) -+ return NULL; ++ mtd = get_mtd_device_nm(part); ++ if (IS_ERR(mtd)) ++ continue; + -+ ret = mtd_read(mtd, be32_to_cpup(list), 6, &retlen, mac); -+ put_mtd_device(mtd); ++ ret = mtd_mac_address_properties[i].read(mtd, be32_to_cpup(list), mac); ++ put_mtd_device(mtd); ++ if (!ret) { ++ break; ++ } ++ } ++ if (ret) { ++ return NULL; ++ } + + if (of_property_read_u32(np, "mtd-mac-address-increment-byte", &inc_idx)) + inc_idx = 5; @@ -112,7 +166,7 @@ Signed-off-by: Felix Fietkau <[email protected]> /** * Search the device tree for the best MAC address to use. 'mac-address' is * checked first, because that is supposed to contain to "most recent" MAC -@@ -65,11 +139,18 @@ static const void *of_get_mac_addr(struc +@@ -65,11 +193,18 @@ static const void *of_get_mac_addr(struc * addresses. Some older U-Boots only initialized 'local-mac-address'. In * this case, the real MAC is in 'local-mac-address', and 'mac-address' exists * but is all zeros. diff --git a/target/linux/generic/pending-4.9/681-NET-add-of_get_mac_address_mtd.patch b/target/linux/generic/pending-4.9/681-NET-add-of_get_mac_address_mtd.patch index b29b5f11b0..301cd87ded 100644 --- a/target/linux/generic/pending-4.9/681-NET-add-of_get_mac_address_mtd.patch +++ b/target/linux/generic/pending-4.9/681-NET-add-of_get_mac_address_mtd.patch @@ -32,17 +32,62 @@ Signed-off-by: Felix Fietkau <[email protected]> { struct property *pp = of_find_property(np, name, NULL); -@@ -47,6 +48,73 @@ static const void *of_get_mac_addr(struc +@@ -47,6 +48,133 @@ static const void *of_get_mac_addr(struc return NULL; } ++typedef int(*mtd_mac_address_read)(struct mtd_info *mtd, loff_t from, u_char *buf); ++ ++static int read_mtd_mac_address(struct mtd_info *mtd, loff_t from, u_char *mac) ++{ ++ int retlen; ++ ++ return mtd_read(mtd, from, 6, &retlen, mac); ++} ++ ++static int read_mtd_mac_address_ascii(struct mtd_info *mtd, loff_t from, u_char *mac) ++{ ++ int retlen; ++ char buf[17]; ++ ++ if (mtd_read(mtd, from, 12, &retlen, buf)) { ++ return -1; ++ } ++ if (sscanf(buf, "%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx", ++ &mac[0], &mac[1], &mac[2], &mac[3], ++ &mac[4], &mac[5]) == 6) { ++ return 0; ++ } ++ if (mtd_read(mtd, from+12, 5, &retlen, buf+12)) { ++ return -1; ++ } ++ if (sscanf(buf, "%2hhx:%2hhx:%2hhx:%2hhx:%2hhx:%2hhx", ++ &mac[0], &mac[1], &mac[2], &mac[3], ++ &mac[4], &mac[5]) == 6) { ++ return 0; ++ } ++ return -1; ++} ++ ++static struct mtd_mac_address_property { ++ char *name; ++ mtd_mac_address_read read; ++} mtd_mac_address_properties[] = { ++ { ++ .name = "mtd-mac-address", ++ .read = read_mtd_mac_address, ++ }, { ++ .name = "mtd-mac-address-ascii", ++ .read = read_mtd_mac_address_ascii, ++ }, ++}; ++ +static const void *of_get_mac_address_mtd(struct device_node *np) +{ +#ifdef CONFIG_MTD + struct device_node *mtd_np = NULL; + struct property *prop; -+ size_t retlen; -+ int size, ret; ++ int size, ret = -1; + struct mtd_info *mtd; + const char *part; + const __be32 *list; @@ -50,31 +95,46 @@ Signed-off-by: Felix Fietkau <[email protected]> + u32 mac_inc = 0; + u8 mac[ETH_ALEN]; + void *addr; ++ u32 inc_idx; ++ int i; + -+ list = of_get_property(np, "mtd-mac-address", &size); -+ if (!list || (size != (2 * sizeof(*list)))) -+ return NULL; ++ for (i = 0; i < ARRAY_SIZE(mtd_mac_address_properties); i++) { ++ list = of_get_property(np, mtd_mac_address_properties[i].name, &size); ++ if (!list || (size != (2 * sizeof(*list)))) ++ continue; + -+ phandle = be32_to_cpup(list++); -+ if (phandle) -+ mtd_np = of_find_node_by_phandle(phandle); ++ phandle = be32_to_cpup(list++); ++ if (phandle) ++ mtd_np = of_find_node_by_phandle(phandle); + -+ if (!mtd_np) -+ return NULL; ++ if (!mtd_np) ++ continue; ++ ++ part = of_get_property(mtd_np, "label", NULL); ++ if (!part) ++ part = mtd_np->name; + -+ part = of_get_property(mtd_np, "label", NULL); -+ if (!part) -+ part = mtd_np->name; ++ mtd = get_mtd_device_nm(part); ++ if (IS_ERR(mtd)) ++ continue; + -+ mtd = get_mtd_device_nm(part); -+ if (IS_ERR(mtd)) ++ ret = mtd_mac_address_properties[i].read(mtd, be32_to_cpup(list), mac); ++ put_mtd_device(mtd); ++ if (!ret) { ++ break; ++ } ++ } ++ if (ret) { + return NULL; ++ } + -+ ret = mtd_read(mtd, be32_to_cpup(list), 6, &retlen, mac); -+ put_mtd_device(mtd); ++ if (of_property_read_u32(np, "mtd-mac-address-increment-byte", &inc_idx)) ++ inc_idx = 5; ++ if (inc_idx > 5) ++ return NULL; + + if (!of_property_read_u32(np, "mtd-mac-address-increment", &mac_inc)) -+ mac[5] += mac_inc; ++ mac[inc_idx] += mac_inc; + + if (!is_valid_ether_addr(mac)) + return NULL; @@ -106,7 +166,7 @@ Signed-off-by: Felix Fietkau <[email protected]> /** * Search the device tree for the best MAC address to use. 'mac-address' is * checked first, because that is supposed to contain to "most recent" MAC -@@ -64,11 +132,18 @@ static const void *of_get_mac_addr(struc +@@ -64,11 +192,18 @@ static const void *of_get_mac_addr(struc * addresses. Some older U-Boots only initialized 'local-mac-address'. In * this case, the real MAC is in 'local-mac-address', and 'mac-address' exists * but is all zeros. _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
