cfg80211: use BIT_ULL in cfg80211_parse_mbssid_data()
authorLuca Coelho <luciano.coelho@intel.com>
Wed, 29 May 2019 12:25:29 +0000 (15:25 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 14 Jun 2019 13:46:33 +0000 (15:46 +0200)
The seen_indices variable is u64 and in other parts of the code we
assume mbssid_index_ie[2] can be up to 45, so we should use the 64-bit
versions of BIT, namely, BIT_ULL().

Reported-by: Dan Carpented <dan.carpenter@oracle.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/scan.c

index c04f5451f89b114cb98c43b1b3ce6724858f2a4f..aa571d727903f2481ce2ce1215d5a444ffd83927 100644 (file)
@@ -1601,12 +1601,12 @@ static void cfg80211_parse_mbssid_data(struct wiphy *wiphy,
                                continue;
                        }
 
-                       if (seen_indices & BIT(mbssid_index_ie[2]))
+                       if (seen_indices & BIT_ULL(mbssid_index_ie[2]))
                                /* We don't support legacy split of a profile */
                                net_dbg_ratelimited("Partial info for BSSID index %d\n",
                                                    mbssid_index_ie[2]);
 
-                       seen_indices |= BIT(mbssid_index_ie[2]);
+                       seen_indices |= BIT_ULL(mbssid_index_ie[2]);
 
                        non_tx_data->bssid_index = mbssid_index_ie[2];
                        non_tx_data->max_bssid_indicator = elem->data[0];