diff --git a/src/linux/drivers/net/bt/Makefile b/src/linux/drivers/net/bt/Makefile index 74ae4156bc4d8c13c7fe3595f8e518678da596f7..15494e879d723397f1616682c71b995f3cb52c53 100644 --- a/src/linux/drivers/net/bt/Makefile +++ b/src/linux/drivers/net/bt/Makefile @@ -1,3 +1,3 @@ # enable btdev: -# kernel/linux/linux-5.10/drivers/net/Makefile add obj-y += bt/ +# kernel/linux/linux-5.10/drivers/net/Makefile add obj-y += bt/ or obj-$(CONFIG_NEWIP) += bt/ obj-y += btdev.o diff --git a/src/linux/net/newip/nip_addrconf.c b/src/linux/net/newip/nip_addrconf.c index 64d953e2db386e5769b7b989ae76901f3c0d9c61..1badbca6dec0098165d6dfaca63380ed1ad7bb1f 100644 --- a/src/linux/net/newip/nip_addrconf.c +++ b/src/linux/net/newip/nip_addrconf.c @@ -96,6 +96,12 @@ static struct ninet_ifaddr *nip_add_addr(struct ninet_dev *idev, goto rcu_lock_out; } + if (!netif_running(idev->dev)) { + nip_dbg("network interface is not running"); + err = -ENODEV; + goto rcu_lock_out; + } + if (idev->cnf.disable_nip) { err = -EACCES; goto rcu_lock_out; diff --git a/src/linux/net/newip/route.c b/src/linux/net/newip/route.c index 0ede62a441f6fa3e8cb7ccc992386b7fea3ca0fc..e7c8a4aa16dbf36935338ec60c2302a0827920af 100644 --- a/src/linux/net/newip/route.c +++ b/src/linux/net/newip/route.c @@ -428,7 +428,13 @@ static struct nip_rt_info *nip_route_info_create(struct nip_fib_config *cfg) nip_dbg("fail to get ninet dev (ifindex=%u)", cfg->fc_ifindex); goto out; } - + /* Do not add a route when the network port is not running + * to avoid incorrect route selection + */ + if (!netif_running(idev->dev)) { + nip_dbg("network interface is not running"); + goto out; + } if (cfg->fc_metric == 0) cfg->fc_metric = NIP_RT_PRIO_USER;