From 513bf17b93d6ee5158e35a3d0a85bb31977a3324 Mon Sep 17 00:00:00 2001 From: neon12345 <784389+neon12345@users.noreply.github.com> Date: Tue, 24 Mar 2026 18:16:32 +0100 Subject: [PATCH] Enhance VLAN device retrieval with parent check Enhance VLAN device retrieval to check parent device existence before fetching VLAN chain. This is useful when ModemManager creates rmnet interfaces on top of pci_generic mhi interfaces with a different name like "qmapmux0.0@mhi_hwip0". Signed-off-by: neon12345 <784389+neon12345@users.noreply.github.com> --- device.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/device.c b/device.c index 301be31..8a39a0b 100644 --- a/device.c +++ b/device.c @@ -890,11 +890,19 @@ struct device * __device_get(const char *name, int create, bool check_vlan) { struct device *dev; + const char *dot; dev = avl_find_element(&devices, name, dev, avl); - if (!dev && check_vlan && strchr(name, '.')) - return get_vlan_device_chain(name, create); + if (!dev && check_vlan && (dot = strchr(name, '.'))) + { + char parent[IFNAMSIZ]; + int len = dot - name; + memcpy(parent, name, len); + parent[len] = '\0'; + if (if_nametoindex(parent)) + return get_vlan_device_chain(name, create); + } if (name[0] == '@') return device_alias_get(name + 1);