core.c (5acac83bf2e42f51ab9fd315d657798754bf0bb8) core.c (eeb85a14ee3494febb85ccfbee0772eda0823b13)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * This is the linux wireless configuration interface.
4 *
5 * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
6 * Copyright 2013-2014 Intel Mobile Communications GmbH
7 * Copyright 2015-2017 Intel Deutschland GmbH
8 * Copyright (C) 2018-2020 Intel Corporation

--- 151 unchanged lines hidden (view full) ---

160
161 if (!(rdev->wiphy.flags & WIPHY_FLAG_NETNS_OK))
162 return -EOPNOTSUPP;
163
164 list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
165 if (!wdev->netdev)
166 continue;
167 wdev->netdev->features &= ~NETIF_F_NETNS_LOCAL;
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * This is the linux wireless configuration interface.
4 *
5 * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
6 * Copyright 2013-2014 Intel Mobile Communications GmbH
7 * Copyright 2015-2017 Intel Deutschland GmbH
8 * Copyright (C) 2018-2020 Intel Corporation

--- 151 unchanged lines hidden (view full) ---

160
161 if (!(rdev->wiphy.flags & WIPHY_FLAG_NETNS_OK))
162 return -EOPNOTSUPP;
163
164 list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
165 if (!wdev->netdev)
166 continue;
167 wdev->netdev->features &= ~NETIF_F_NETNS_LOCAL;
168 err = dev_change_net_namespace(wdev->netdev, net, "wlan%d");
168 err = dev_change_net_namespace(wdev->netdev, net, "wlan%d", 0);
169 if (err)
170 break;
171 wdev->netdev->features |= NETIF_F_NETNS_LOCAL;
172 }
173
174 if (err) {
175 /* failed -- clean up to old netns */
176 net = wiphy_net(&rdev->wiphy);
177
178 list_for_each_entry_continue_reverse(wdev,
179 &rdev->wiphy.wdev_list,
180 list) {
181 if (!wdev->netdev)
182 continue;
183 wdev->netdev->features &= ~NETIF_F_NETNS_LOCAL;
184 err = dev_change_net_namespace(wdev->netdev, net,
169 if (err)
170 break;
171 wdev->netdev->features |= NETIF_F_NETNS_LOCAL;
172 }
173
174 if (err) {
175 /* failed -- clean up to old netns */
176 net = wiphy_net(&rdev->wiphy);
177
178 list_for_each_entry_continue_reverse(wdev,
179 &rdev->wiphy.wdev_list,
180 list) {
181 if (!wdev->netdev)
182 continue;
183 wdev->netdev->features &= ~NETIF_F_NETNS_LOCAL;
184 err = dev_change_net_namespace(wdev->netdev, net,
185 "wlan%d");
185 "wlan%d", 0);
186 WARN_ON(err);
187 wdev->netdev->features |= NETIF_F_NETNS_LOCAL;
188 }
189
190 return err;
191 }
192
193 list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {

--- 1394 unchanged lines hidden ---
186 WARN_ON(err);
187 wdev->netdev->features |= NETIF_F_NETNS_LOCAL;
188 }
189
190 return err;
191 }
192
193 list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {

--- 1394 unchanged lines hidden ---