--- initial
+++ final
@@ -1,71 +1,71 @@
 static int ath6kl_get_station(struct wiphy *wiphy, struct net_device *dev, const u8 *mac, struct station_info *sinfo) {
   struct ath6kl *ar = ath6kl_priv(dev);
   struct ath6kl_vif *vif = netdev_priv(dev);
   long left;
   bool sgi;
   s32 rate;
   int ret;
   u8 mcs;
   if (memcmp(mac, vif->bssid, ETH_ALEN) != 0) return -ENOENT;
   if (down_interruptible(&ar->sem)) return -EBUSY;
   set_bit(STATS_UPDATE_PEND, &vif->flags);
   ret = ath6kl_wmi_get_stats_cmd(ar->wmi, vif->fw_vif_idx);
   if (ret != 0) {
     up(&ar->sem);
     return -EIO;
   }
   left = wait_event_interruptible_timeout(ar->event_wq, !test_bit(STATS_UPDATE_PEND, &vif->flags), WMI_TIMEOUT);
   up(&ar->sem);
   if (left == 0)
     return -ETIMEDOUT;
   else if (left < 0)
     return left;
   if (vif->target_stats.rx_byte) {
     sinfo->rx_bytes = vif->target_stats.rx_byte;
-    sinfo->filled |= BIT(NL80211_STA_INFO_RX_BYTES64);
+    sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_BYTES64);
     sinfo->rx_packets = vif->target_stats.rx_pkt;
-    sinfo->filled |= BIT(NL80211_STA_INFO_RX_PACKETS);
+    sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_PACKETS);
   }
   if (vif->target_stats.tx_byte) {
     sinfo->tx_bytes = vif->target_stats.tx_byte;
-    sinfo->filled |= BIT(NL80211_STA_INFO_TX_BYTES64);
+    sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BYTES64);
     sinfo->tx_packets = vif->target_stats.tx_pkt;
-    sinfo->filled |= BIT(NL80211_STA_INFO_TX_PACKETS);
+    sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_PACKETS);
   }
   sinfo->signal = vif->target_stats.cs_rssi;
-  sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
+  sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL);
   rate = vif->target_stats.tx_ucast_rate;
   if (is_rate_legacy(rate)) {
     sinfo->txrate.legacy = rate / 100;
   } else if (is_rate_ht20(rate, &mcs, &sgi)) {
     if (sgi) {
       sinfo->txrate.flags |= RATE_INFO_FLAGS_SHORT_GI;
       sinfo->txrate.mcs = mcs - 1;
     } else {
       sinfo->txrate.mcs = mcs;
     }
     sinfo->txrate.flags |= RATE_INFO_FLAGS_MCS;
     sinfo->txrate.bw = RATE_INFO_BW_20;
   } else if (is_rate_ht40(rate, &mcs, &sgi)) {
     if (sgi) {
       sinfo->txrate.flags |= RATE_INFO_FLAGS_SHORT_GI;
       sinfo->txrate.mcs = mcs - 1;
     } else {
       sinfo->txrate.mcs = mcs;
     }
     sinfo->txrate.bw = RATE_INFO_BW_40;
     sinfo->txrate.flags |= RATE_INFO_FLAGS_MCS;
   } else {
     ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "invalid rate from stats: %d\n", rate);
     ath6kl_debug_war(ar, ATH6KL_WAR_INVALID_RATE);
     return 0;
   }
-  sinfo->filled |= BIT(NL80211_STA_INFO_TX_BITRATE);
+  sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BITRATE);
   if (test_bit(CONNECTED, &vif->flags) && test_bit(DTIM_PERIOD_AVAIL, &vif->flags) && vif->nw_type == INFRA_NETWORK) {
-    sinfo->filled |= BIT(NL80211_STA_INFO_BSS_PARAM);
+    sinfo->filled |= BIT_ULL(NL80211_STA_INFO_BSS_PARAM);
     sinfo->bss_param.flags = 0;
     sinfo->bss_param.dtim_period = vif->assoc_bss_dtim_period;
     sinfo->bss_param.beacon_interval = vif->assoc_bss_beacon_int;
   }
   return 0;
 }<sep>@@ @@
-	BIT(NL80211_STA_INFO_SIGNAL)
+	BIT_ULL(NL80211_STA_INFO_SIGNAL)

@@ @@
-	BIT(NL80211_STA_INFO_TX_BITRATE)
+	BIT_ULL(NL80211_STA_INFO_TX_BITRATE)

@@ @@
-	BIT(NL80211_STA_INFO_RX_PACKETS)
+	BIT_ULL(NL80211_STA_INFO_RX_PACKETS)

@@ @@
-	BIT(NL80211_STA_INFO_TX_PACKETS)
+	BIT_ULL(NL80211_STA_INFO_TX_PACKETS)

@@ @@
-	BIT(NL80211_STA_INFO_BSS_PARAM)
+	BIT_ULL(NL80211_STA_INFO_BSS_PARAM)

@@ @@
-	BIT(NL80211_STA_INFO_RX_BYTES64)
+	BIT_ULL(NL80211_STA_INFO_RX_BYTES64)

@@ @@
-	BIT(NL80211_STA_INFO_TX_BYTES64)
+	BIT_ULL(NL80211_STA_INFO_TX_BYTES64)