It's pointless to call WARN_ON() in case of an allocation failure in dev_change_net_namespace() and device_rename(), since it only leads to useless splats caused by deliberate fault injections, so avoid it. Found by Linux Verification Center (linuxtesting.org). Fixes: 04600794958f ("cfg80211: support sysfs namespaces") Fixes: 463d01832385 ("cfg80211: make aware of net namespaces") Suggested-by: Kuniyuki Iwashima <kuniyu@xxxxxxxxxx> Signed-off-by: Ivan Abramov <i.abramov@xxxxxxxxxxxxxxxxx> --- net/wireless/core.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/net/wireless/core.c b/net/wireless/core.c index e4d353ec9436..6f95aad18d47 100644 --- a/net/wireless/core.c +++ b/net/wireless/core.c @@ -164,8 +164,10 @@ int cfg80211_switch_netns(struct cfg80211_registered_device *rdev, continue; wdev->netdev->netns_immutable = false; err = dev_change_net_namespace(wdev->netdev, net, "wlan%d"); - if (err) + if (err) { + WARN_ON(err && err != -ENOMEM); break; + } wdev->netdev->netns_immutable = true; } @@ -175,7 +177,7 @@ int cfg80211_switch_netns(struct cfg80211_registered_device *rdev, guard(wiphy)(&rdev->wiphy); err = device_rename(&rdev->wiphy.dev, dev_name(&rdev->wiphy.dev)); - WARN_ON(err); + WARN_ON(err && err != -ENOMEM); if (err) goto errout; @@ -212,7 +214,7 @@ int cfg80211_switch_netns(struct cfg80211_registered_device *rdev, wdev->netdev->netns_immutable = false; err = dev_change_net_namespace(wdev->netdev, net, "wlan%d"); - WARN_ON(err); + WARN_ON(err && err != -ENOMEM); wdev->netdev->netns_immutable = true; } -- 2.39.5