CC: [email protected]
CC: [email protected]
TO: Lorenzo Bianconi <[email protected]>
CC: Felix Fietkau <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   cba5e97280f53ec7feb656fcdf0ec00a5c6dd539
commit: 91990519298e231bf102f7242d5f483bef5e514a mt76: move tx hw data queues 
in mt76_phy
date:   7 months ago
:::::: branch date: 6 hours ago
:::::: commit date: 7 months ago
compiler: ia64-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> drivers/net/wireless/mediatek/mt76/mt7603/mac.c:448:41: warning: Array 
>> 'dev->mphy.q_tx[3]' accessed at index 3, which is out of bounds. 
>> [arrayIndexOutOfBounds]
      struct mt76_queue *q = dev->mphy.q_tx[i];
                                           ^
   drivers/net/wireless/mediatek/mt76/mt7603/mac.c:1518:21: warning: Array 
'dev->mphy.q_tx[3]' accessed at index 3, which is out of bounds. 
[arrayIndexOutOfBounds]
     q = dev->mphy.q_tx[i];
                       ^

vim +448 drivers/net/wireless/mediatek/mt76/mt7603/mac.c

c8846e1015022d Felix Fietkau    2018-11-06  391  
ea565833fd7848 Felix Fietkau    2019-09-04  392  void 
mt7603_mac_sta_poll(struct mt7603_dev *dev)
ea565833fd7848 Felix Fietkau    2019-09-04  393  {
ea565833fd7848 Felix Fietkau    2019-09-04  394         static const u8 
ac_to_tid[4] = {
ea565833fd7848 Felix Fietkau    2019-09-04  395                 
[IEEE80211_AC_BE] = 0,
ea565833fd7848 Felix Fietkau    2019-09-04  396                 
[IEEE80211_AC_BK] = 1,
ea565833fd7848 Felix Fietkau    2019-09-04  397                 
[IEEE80211_AC_VI] = 4,
ea565833fd7848 Felix Fietkau    2019-09-04  398                 
[IEEE80211_AC_VO] = 6
ea565833fd7848 Felix Fietkau    2019-09-04  399         };
ea565833fd7848 Felix Fietkau    2019-09-04  400         struct ieee80211_sta 
*sta;
ea565833fd7848 Felix Fietkau    2019-09-04  401         struct mt7603_sta *msta;
ea565833fd7848 Felix Fietkau    2019-09-04  402         u32 total_airtime = 0;
ea565833fd7848 Felix Fietkau    2019-09-04  403         u32 airtime[4];
ea565833fd7848 Felix Fietkau    2019-09-04  404         u32 addr;
ea565833fd7848 Felix Fietkau    2019-09-04  405         int i;
ea565833fd7848 Felix Fietkau    2019-09-04  406  
ea565833fd7848 Felix Fietkau    2019-09-04  407         rcu_read_lock();
ea565833fd7848 Felix Fietkau    2019-09-04  408  
ea565833fd7848 Felix Fietkau    2019-09-04  409         while (1) {
ea565833fd7848 Felix Fietkau    2019-09-04  410                 bool clear = 
false;
ea565833fd7848 Felix Fietkau    2019-09-04  411  
ea565833fd7848 Felix Fietkau    2019-09-04  412                 
spin_lock_bh(&dev->sta_poll_lock);
ea565833fd7848 Felix Fietkau    2019-09-04  413                 if 
(list_empty(&dev->sta_poll_list)) {
ea565833fd7848 Felix Fietkau    2019-09-04  414                         
spin_unlock_bh(&dev->sta_poll_lock);
ea565833fd7848 Felix Fietkau    2019-09-04  415                         break;
ea565833fd7848 Felix Fietkau    2019-09-04  416                 }
ea565833fd7848 Felix Fietkau    2019-09-04  417  
ea565833fd7848 Felix Fietkau    2019-09-04  418                 msta = 
list_first_entry(&dev->sta_poll_list, struct mt7603_sta,
ea565833fd7848 Felix Fietkau    2019-09-04  419                                 
        poll_list);
ea565833fd7848 Felix Fietkau    2019-09-04  420                 
list_del_init(&msta->poll_list);
ea565833fd7848 Felix Fietkau    2019-09-04  421                 
spin_unlock_bh(&dev->sta_poll_lock);
ea565833fd7848 Felix Fietkau    2019-09-04  422  
ea565833fd7848 Felix Fietkau    2019-09-04  423                 addr = 
mt7603_wtbl4_addr(msta->wcid.idx);
ea565833fd7848 Felix Fietkau    2019-09-04  424                 for (i = 0; i < 
4; i++) {
ea565833fd7848 Felix Fietkau    2019-09-04  425                         u32 
airtime_last = msta->tx_airtime_ac[i];
ea565833fd7848 Felix Fietkau    2019-09-04  426  
ea565833fd7848 Felix Fietkau    2019-09-04  427                         
msta->tx_airtime_ac[i] = mt76_rr(dev, addr + i * 8);
ea565833fd7848 Felix Fietkau    2019-09-04  428                         
airtime[i] = msta->tx_airtime_ac[i] - airtime_last;
ea565833fd7848 Felix Fietkau    2019-09-04  429                         
airtime[i] *= 32;
ea565833fd7848 Felix Fietkau    2019-09-04  430                         
total_airtime += airtime[i];
ea565833fd7848 Felix Fietkau    2019-09-04  431  
ea565833fd7848 Felix Fietkau    2019-09-04  432                         if 
(msta->tx_airtime_ac[i] & BIT(22))
ea565833fd7848 Felix Fietkau    2019-09-04  433                                 
clear = true;
ea565833fd7848 Felix Fietkau    2019-09-04  434                 }
ea565833fd7848 Felix Fietkau    2019-09-04  435  
ea565833fd7848 Felix Fietkau    2019-09-04  436                 if (clear) {
ea565833fd7848 Felix Fietkau    2019-09-04  437                         
mt7603_wtbl_update(dev, msta->wcid.idx,
ea565833fd7848 Felix Fietkau    2019-09-04  438                                 
           MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
ea565833fd7848 Felix Fietkau    2019-09-04  439                         
memset(msta->tx_airtime_ac, 0,
ea565833fd7848 Felix Fietkau    2019-09-04  440                                
sizeof(msta->tx_airtime_ac));
ea565833fd7848 Felix Fietkau    2019-09-04  441                 }
ea565833fd7848 Felix Fietkau    2019-09-04  442  
ea565833fd7848 Felix Fietkau    2019-09-04  443                 if 
(!msta->wcid.sta)
ea565833fd7848 Felix Fietkau    2019-09-04  444                         
continue;
ea565833fd7848 Felix Fietkau    2019-09-04  445  
ea565833fd7848 Felix Fietkau    2019-09-04  446                 sta = 
container_of((void *)msta, struct ieee80211_sta, drv_priv);
ea565833fd7848 Felix Fietkau    2019-09-04  447                 for (i = 0; i < 
4; i++) {
91990519298e23 Lorenzo Bianconi 2020-11-11 @448                         struct 
mt76_queue *q = dev->mphy.q_tx[i];
ea565833fd7848 Felix Fietkau    2019-09-04  449                         u8 qidx 
= q->hw_idx;
ea565833fd7848 Felix Fietkau    2019-09-04  450                         u8 tid 
= ac_to_tid[i];
ea565833fd7848 Felix Fietkau    2019-09-04  451                         u32 
txtime = airtime[qidx];
ea565833fd7848 Felix Fietkau    2019-09-04  452  
ea565833fd7848 Felix Fietkau    2019-09-04  453                         if 
(!txtime)
ea565833fd7848 Felix Fietkau    2019-09-04  454                                 
continue;
ea565833fd7848 Felix Fietkau    2019-09-04  455  
ea565833fd7848 Felix Fietkau    2019-09-04  456                         
ieee80211_sta_register_airtime(sta, tid, txtime, 0);
ea565833fd7848 Felix Fietkau    2019-09-04  457                 }
ea565833fd7848 Felix Fietkau    2019-09-04  458         }
ea565833fd7848 Felix Fietkau    2019-09-04  459  
ea565833fd7848 Felix Fietkau    2019-09-04  460         rcu_read_unlock();
ea565833fd7848 Felix Fietkau    2019-09-04  461  
ea565833fd7848 Felix Fietkau    2019-09-04  462         if (!total_airtime)
ea565833fd7848 Felix Fietkau    2019-09-04  463                 return;
ea565833fd7848 Felix Fietkau    2019-09-04  464  
ea565833fd7848 Felix Fietkau    2019-09-04  465         
spin_lock_bh(&dev->mt76.cc_lock);
96747a51fe62eb Felix Fietkau    2019-10-12  466         
dev->mphy.chan_state->cc_tx += total_airtime;
ea565833fd7848 Felix Fietkau    2019-09-04  467         
spin_unlock_bh(&dev->mt76.cc_lock);
ea565833fd7848 Felix Fietkau    2019-09-04  468  }
ea565833fd7848 Felix Fietkau    2019-09-04  469  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to