diff options
| author | exxfire <[email protected]> | 2024-03-15 15:42:14 +0800 |
|---|---|---|
| committer | Meco Man <[email protected]> | 2024-03-18 20:39:15 -0400 |
| commit | 90f86c2b71d9cac9d99115934d9438d72a4f4389 (patch) | |
| tree | 3b52a26df26bfa916f7dabba51c5be336513fbe5 /components/net/netdev/src | |
| parent | 2d7770ecdc094ad9e2ff26a44dcd7dd76c49f0ae (diff) | |
netdev_unreg: modyify netdev remove logical when mutil-netdev exist
Diffstat (limited to 'components/net/netdev/src')
| -rw-r--r-- | components/net/netdev/src/netdev.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/components/net/netdev/src/netdev.c b/components/net/netdev/src/netdev.c index 0afcfc6a2f..8bc6e6bcca 100644 --- a/components/net/netdev/src/netdev.c +++ b/components/net/netdev/src/netdev.c @@ -165,9 +165,17 @@ int netdev_unregister(struct netdev *netdev) if (cur_netdev == netdev) { /* find this network interface device in network interface device list */ - if (netdev_list == netdev && rt_slist_next(&netdev_list->list) == RT_NULL) + if (netdev_list == netdev) { - netdev_list = RT_NULL; + rt_slist_t *next = rt_slist_next(node); + if (next) + { + netdev_list = rt_slist_entry(next, struct netdev, list); + } + else + { + netdev_list = RT_NULL; + } } else { |
