]> www.infradead.org Git - users/dwmw2/linux.git/commit
cfg80211: fix a type issue in ieee80211_chandef_to_operating_class()
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 31 Aug 2018 08:10:55 +0000 (11:10 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Oct 2018 06:55:56 +0000 (08:55 +0200)
commit71f1b196fb29b712829915418018bf089f772998
treec83d0ebbc2f023202c06f8a1f2c7c9f7eb9b3274
parent39bcc4406f8385a9b67bdb64dc2d30efbc3c0d1f
cfg80211: fix a type issue in ieee80211_chandef_to_operating_class()

[ Upstream commit 8442938c3a2177ba16043b3a935f2c78266ad399 ]

The "chandef->center_freq1" variable is a u32 but "freq" is a u16 so we
are truncating away the high bits.  I noticed this bug because in commit
9cf0a0b4b64a ("cfg80211: Add support for 60GHz band channels 5 and 6")
we made "freq <= 56160 + 2160 * 6" a valid requency when before it was
only "freq <= 56160 + 2160 * 4" that was valid.  It introduces a static
checker warning:

    net/wireless/util.c:1571 ieee80211_chandef_to_operating_class()
    warn: always true condition '(freq <= 56160 + 2160 * 6) => (0-u16max <= 69120)'

But really we probably shouldn't have been truncating the high bits
away to begin with.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/wireless/util.c