diff --git a/package/network/config/netifd/patches/airoha/100-add-support-for-ecnt-lan-device.patch b/package/network/config/netifd/patches/airoha/100-add-support-for-ecnt-lan-device.patch index 043d6d0c8a6219650a1240192efd96ab23c873ed..f620b76e5d347cf185d96a14de26e4004bc1fd5a 100644 --- a/package/network/config/netifd/patches/airoha/100-add-support-for-ecnt-lan-device.patch +++ b/package/network/config/netifd/patches/airoha/100-add-support-for-ecnt-lan-device.patch @@ -1,32 +1,12 @@ -diff --git a/device.c b/device.c -index d69be9c..2798555 100644 ---- a/device.c -+++ b/device.c -@@ -696,6 +696,18 @@ device_find(const char *name) - return avl_find_element(&devices, name, dev, avl); - } - -+static bool -+device_is_lan_port(const char *name) -+{ -+ int i; -+ int n; -+ -+ if (sscanf(name, "eth0.%d %n", &i, &n) == 1 && !name[n]) -+ return true; -+ -+ return false; -+} -+ - struct device * - __device_get(const char *name, int create, bool check_vlan) - { -@@ -703,7 +715,7 @@ __device_get(const char *name, int create, bool check_vlan) - - dev = avl_find_element(&devices, name, dev, avl); - -- if (!dev && check_vlan && strchr(name, '.')) -+ if (!dev && check_vlan && !device_is_lan_port(name) && strchr(name, '.')) - return get_vlan_device_chain(name, create); - - if (name[0] == '@') +diff -uNr a/vlan.c b/vlan.c +--- a/vlan.c 2024-01-04 13:35:43.000000000 +0100 ++++ b/vlan.c 2025-04-23 23:01:10.763035748 +0200 +@@ -260,7 +260,7 @@ + if (!buf) + return NULL; + +- s = split_vlan(buf); ++ s = split_vlan(strncmp(buf, "eth0.", 5) ? buf : buf + 5); + dev = __device_get(buf, create, false); + if (!dev || !s) + goto out;