Hi wireless devs, The patch 04f39047af2a: "nl80211/cfg80211: add radar detection command/event" from Feb 8, 2013, leads to the following static checker warning: net/wireless/chan.c:250 cfg80211_set_chans_dfs_state() warn: 'center_freq + bandwidth / 2 - 10' negative user limit promoted to high net/wireless/chan.c 242 static void cfg80211_set_chans_dfs_state(struct wiphy *wiphy, u32 center_freq, 243 u32 bandwidth, 244 enum nl80211_dfs_state dfs_state) 245 { 246 struct ieee80211_channel *c; 247 u32 freq; 248 249 for (freq = center_freq - bandwidth/2 + 10; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 250 freq <= center_freq + bandwidth/2 - 10; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This isn't really a big issue but center_freq comes from nla_get_u32(attrs[NL80211_ATTR_WIPHY_FREQ]) in nl80211_parse_chandef(). Smatch is complaining that there is an issue with the math over/underflowing. It just means that we loop for a long time. It's not a security problem. Even without the overflow, we could end up looping for a long time. Is center_freq capped somewhere that I haven't seen? 251 freq += 20) { 252 c = ieee80211_get_channel(wiphy, freq); 253 if (!c || !(c->flags & IEEE80211_CHAN_RADAR)) 254 continue; 255 256 c->dfs_state = dfs_state; 257 c->dfs_state_entered = jiffies; 258 } 259 } regards, dan carpenter