Message ID | 20240812120909.2721400-1-root@hissam.office.simonwunderlich.net (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Johannes Berg |
Headers | show |
Series | cfg80211: Set the channel definition for the different Wi-Fi modes when starting CAC | expand |
Hi root, kernel test robot noticed the following build warnings: [auto build test WARNING on wireless-next/main] [also build test WARNING on wireless/main linus/master v6.11-rc3 next-20240812] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/root/cfg80211-Set-the-channel-definition-for-the-different-Wi-Fi-modes-when-starting-CAC/20240812-202257 base: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git main patch link: https://lore.kernel.org/r/20240812120909.2721400-1-root%40hissam.office.simonwunderlich.net patch subject: [PATCH] cfg80211: Set the channel definition for the different Wi-Fi modes when starting CAC config: arm-u8500_defconfig (https://download.01.org/0day-ci/archive/20240813/202408130125.u2jlMVQM-lkp@intel.com/config) compiler: arm-linux-gnueabi-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240813/202408130125.u2jlMVQM-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202408130125.u2jlMVQM-lkp@intel.com/ All warnings (new ones prefixed by >>): net/wireless/nl80211.c: In function 'nl80211_start_radar_detection': >> net/wireless/nl80211.c:10146:17: warning: enumeration value 'NL80211_IFTYPE_UNSPECIFIED' not handled in switch [-Wswitch] 10146 | switch (wdev->iftype) { | ^~~~~~ >> net/wireless/nl80211.c:10146:17: warning: enumeration value 'NL80211_IFTYPE_STATION' not handled in switch [-Wswitch] >> net/wireless/nl80211.c:10146:17: warning: enumeration value 'NL80211_IFTYPE_AP_VLAN' not handled in switch [-Wswitch] >> net/wireless/nl80211.c:10146:17: warning: enumeration value 'NL80211_IFTYPE_WDS' not handled in switch [-Wswitch] >> net/wireless/nl80211.c:10146:17: warning: enumeration value 'NL80211_IFTYPE_MONITOR' not handled in switch [-Wswitch] >> net/wireless/nl80211.c:10146:17: warning: enumeration value 'NL80211_IFTYPE_P2P_CLIENT' not handled in switch [-Wswitch] >> net/wireless/nl80211.c:10146:17: warning: enumeration value 'NL80211_IFTYPE_P2P_DEVICE' not handled in switch [-Wswitch] >> net/wireless/nl80211.c:10146:17: warning: enumeration value 'NL80211_IFTYPE_NAN' not handled in switch [-Wswitch] >> net/wireless/nl80211.c:10146:17: warning: enumeration value 'NUM_NL80211_IFTYPES' not handled in switch [-Wswitch] >> net/wireless/nl80211.c:10146:17: warning: enumeration value 'NL80211_IFTYPE_MAX' not handled in switch [-Wswitch] vim +/NL80211_IFTYPE_UNSPECIFIED +10146 net/wireless/nl80211.c 10068 10069 static int nl80211_start_radar_detection(struct sk_buff *skb, 10070 struct genl_info *info) 10071 { 10072 struct cfg80211_registered_device *rdev = info->user_ptr[0]; 10073 struct net_device *dev = info->user_ptr[1]; 10074 struct wireless_dev *wdev = dev->ieee80211_ptr; 10075 struct wiphy *wiphy = wdev->wiphy; 10076 struct cfg80211_chan_def chandef; 10077 enum nl80211_dfs_regions dfs_region; 10078 unsigned int cac_time_ms; 10079 int err = -EINVAL; 10080 10081 flush_delayed_work(&rdev->dfs_update_channels_wk); 10082 10083 switch (wdev->iftype) { 10084 case NL80211_IFTYPE_AP: 10085 case NL80211_IFTYPE_P2P_GO: 10086 case NL80211_IFTYPE_MESH_POINT: 10087 case NL80211_IFTYPE_ADHOC: 10088 break; 10089 default: 10090 /* caution - see cfg80211_beaconing_iface_active() below */ 10091 return -EINVAL; 10092 } 10093 10094 wiphy_lock(wiphy); 10095 10096 dfs_region = reg_get_dfs_region(wiphy); 10097 if (dfs_region == NL80211_DFS_UNSET) 10098 goto unlock; 10099 10100 err = nl80211_parse_chandef(rdev, info, &chandef); 10101 if (err) 10102 goto unlock; 10103 10104 err = cfg80211_chandef_dfs_required(wiphy, &chandef, wdev->iftype); 10105 if (err < 0) 10106 goto unlock; 10107 10108 if (err == 0) { 10109 err = -EINVAL; 10110 goto unlock; 10111 } 10112 10113 if (!cfg80211_chandef_dfs_usable(wiphy, &chandef)) { 10114 err = -EINVAL; 10115 goto unlock; 10116 } 10117 10118 if (nla_get_flag(info->attrs[NL80211_ATTR_RADAR_BACKGROUND])) { 10119 err = cfg80211_start_background_radar_detection(rdev, wdev, 10120 &chandef); 10121 goto unlock; 10122 } 10123 10124 if (cfg80211_beaconing_iface_active(wdev) || wdev->cac_started) { 10125 err = -EBUSY; 10126 goto unlock; 10127 } 10128 10129 /* CAC start is offloaded to HW and can't be started manually */ 10130 if (wiphy_ext_feature_isset(wiphy, NL80211_EXT_FEATURE_DFS_OFFLOAD)) { 10131 err = -EOPNOTSUPP; 10132 goto unlock; 10133 } 10134 10135 if (!rdev->ops->start_radar_detection) { 10136 err = -EOPNOTSUPP; 10137 goto unlock; 10138 } 10139 10140 cac_time_ms = cfg80211_chandef_dfs_cac_time(&rdev->wiphy, &chandef); 10141 if (WARN_ON(!cac_time_ms)) 10142 cac_time_ms = IEEE80211_DFS_MIN_CAC_TIME_MS; 10143 10144 err = rdev_start_radar_detection(rdev, dev, &chandef, cac_time_ms); 10145 if (!err) { 10146 switch (wdev->iftype) { 10147 case NL80211_IFTYPE_MESH_POINT: 10148 wdev->u.mesh.chandef = chandef; 10149 break; 10150 case NL80211_IFTYPE_ADHOC: 10151 wdev->u.ibss.chandef = chandef; 10152 break; 10153 case NL80211_IFTYPE_OCB: 10154 wdev->u.ocb.chandef = chandef; 10155 break; 10156 case NL80211_IFTYPE_AP: 10157 case NL80211_IFTYPE_P2P_GO: 10158 wdev->links[0].ap.chandef = chandef; 10159 break; 10160 } 10161 wdev->cac_started = true; 10162 wdev->cac_start_time = jiffies; 10163 wdev->cac_time_ms = cac_time_ms; 10164 } 10165 unlock: 10166 wiphy_unlock(wiphy); 10167 10168 return err; 10169 } 10170
Hi root,
kernel test robot noticed the following build warnings:
[auto build test WARNING on wireless-next/main]
[also build test WARNING on wireless/main linus/master v6.11-rc3 next-20240812]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/root/cfg80211-Set-the-channel-definition-for-the-different-Wi-Fi-modes-when-starting-CAC/20240812-202257
base: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git main
patch link: https://lore.kernel.org/r/20240812120909.2721400-1-root%40hissam.office.simonwunderlich.net
patch subject: [PATCH] cfg80211: Set the channel definition for the different Wi-Fi modes when starting CAC
config: i386-buildonly-randconfig-005-20240813 (https://download.01.org/0day-ci/archive/20240813/202408130337.tnSP4Qys-lkp@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240813/202408130337.tnSP4Qys-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202408130337.tnSP4Qys-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> net/wireless/nl80211.c:10146:11: warning: 9 enumeration values not handled in switch: 'NL80211_IFTYPE_UNSPECIFIED', 'NL80211_IFTYPE_STATION', 'NL80211_IFTYPE_AP_VLAN'... [-Wswitch]
10146 | switch (wdev->iftype) {
| ^~~~~~~~~~~~
1 warning generated.
vim +10146 net/wireless/nl80211.c
10068
10069 static int nl80211_start_radar_detection(struct sk_buff *skb,
10070 struct genl_info *info)
10071 {
10072 struct cfg80211_registered_device *rdev = info->user_ptr[0];
10073 struct net_device *dev = info->user_ptr[1];
10074 struct wireless_dev *wdev = dev->ieee80211_ptr;
10075 struct wiphy *wiphy = wdev->wiphy;
10076 struct cfg80211_chan_def chandef;
10077 enum nl80211_dfs_regions dfs_region;
10078 unsigned int cac_time_ms;
10079 int err = -EINVAL;
10080
10081 flush_delayed_work(&rdev->dfs_update_channels_wk);
10082
10083 switch (wdev->iftype) {
10084 case NL80211_IFTYPE_AP:
10085 case NL80211_IFTYPE_P2P_GO:
10086 case NL80211_IFTYPE_MESH_POINT:
10087 case NL80211_IFTYPE_ADHOC:
10088 break;
10089 default:
10090 /* caution - see cfg80211_beaconing_iface_active() below */
10091 return -EINVAL;
10092 }
10093
10094 wiphy_lock(wiphy);
10095
10096 dfs_region = reg_get_dfs_region(wiphy);
10097 if (dfs_region == NL80211_DFS_UNSET)
10098 goto unlock;
10099
10100 err = nl80211_parse_chandef(rdev, info, &chandef);
10101 if (err)
10102 goto unlock;
10103
10104 err = cfg80211_chandef_dfs_required(wiphy, &chandef, wdev->iftype);
10105 if (err < 0)
10106 goto unlock;
10107
10108 if (err == 0) {
10109 err = -EINVAL;
10110 goto unlock;
10111 }
10112
10113 if (!cfg80211_chandef_dfs_usable(wiphy, &chandef)) {
10114 err = -EINVAL;
10115 goto unlock;
10116 }
10117
10118 if (nla_get_flag(info->attrs[NL80211_ATTR_RADAR_BACKGROUND])) {
10119 err = cfg80211_start_background_radar_detection(rdev, wdev,
10120 &chandef);
10121 goto unlock;
10122 }
10123
10124 if (cfg80211_beaconing_iface_active(wdev) || wdev->cac_started) {
10125 err = -EBUSY;
10126 goto unlock;
10127 }
10128
10129 /* CAC start is offloaded to HW and can't be started manually */
10130 if (wiphy_ext_feature_isset(wiphy, NL80211_EXT_FEATURE_DFS_OFFLOAD)) {
10131 err = -EOPNOTSUPP;
10132 goto unlock;
10133 }
10134
10135 if (!rdev->ops->start_radar_detection) {
10136 err = -EOPNOTSUPP;
10137 goto unlock;
10138 }
10139
10140 cac_time_ms = cfg80211_chandef_dfs_cac_time(&rdev->wiphy, &chandef);
10141 if (WARN_ON(!cac_time_ms))
10142 cac_time_ms = IEEE80211_DFS_MIN_CAC_TIME_MS;
10143
10144 err = rdev_start_radar_detection(rdev, dev, &chandef, cac_time_ms);
10145 if (!err) {
10146 switch (wdev->iftype) {
10147 case NL80211_IFTYPE_MESH_POINT:
10148 wdev->u.mesh.chandef = chandef;
10149 break;
10150 case NL80211_IFTYPE_ADHOC:
10151 wdev->u.ibss.chandef = chandef;
10152 break;
10153 case NL80211_IFTYPE_OCB:
10154 wdev->u.ocb.chandef = chandef;
10155 break;
10156 case NL80211_IFTYPE_AP:
10157 case NL80211_IFTYPE_P2P_GO:
10158 wdev->links[0].ap.chandef = chandef;
10159 break;
10160 }
10161 wdev->cac_started = true;
10162 wdev->cac_start_time = jiffies;
10163 wdev->cac_time_ms = cac_time_ms;
10164 }
10165 unlock:
10166 wiphy_unlock(wiphy);
10167
10168 return err;
10169 }
10170
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 7397a372c78e..d200c365339a 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -10143,7 +10143,21 @@ static int nl80211_start_radar_detection(struct sk_buff *skb, err = rdev_start_radar_detection(rdev, dev, &chandef, cac_time_ms); if (!err) { - wdev->links[0].ap.chandef = chandef; + switch (wdev->iftype) { + case NL80211_IFTYPE_MESH_POINT: + wdev->u.mesh.chandef = chandef; + break; + case NL80211_IFTYPE_ADHOC: + wdev->u.ibss.chandef = chandef; + break; + case NL80211_IFTYPE_OCB: + wdev->u.ocb.chandef = chandef; + break; + case NL80211_IFTYPE_AP: + case NL80211_IFTYPE_P2P_GO: + wdev->links[0].ap.chandef = chandef; + break; + } wdev->cac_started = true; wdev->cac_start_time = jiffies; wdev->cac_time_ms = cac_time_ms;