Hello Johannes Berg,

The patch 724fe7710ac5: "iwlwifi: mvm: kill INACTIVE queue state"
from Jul 4, 2018, leads to the following static checker warning:

        drivers/net/wireless/intel/iwlwifi/mvm/sta.c:1243 
iwl_mvm_inactivity_check()
        warn: 'iwl_mvm_remove_inactive_tids(mvm, mvmsta, i, 
inactive_tid_bitmap, &unshare_queues, &changetid_queues)' is unsigned

drivers/net/wireless/intel/iwlwifi/mvm/sta.c
  1223                  /*
  1224                   * If the STA doesn't exist anymore, it isn't an error. 
It could
  1225                   * be that it was removed since getting the queues, and 
in this
  1226                   * case it should've inactivated its queues anyway.
  1227                   */
  1228                  if (IS_ERR_OR_NULL(sta))
  1229                          continue;
  1230  
  1231                  mvmsta = iwl_mvm_sta_from_mac80211(sta);
  1232  
  1233                  /* this isn't so nice, but works OK due to the way we 
loop */
  1234                  spin_unlock(&mvm->queue_info_lock);
  1235  
  1236                  /* and we need this locking order */
  1237                  spin_lock(&mvmsta->lock);
  1238                  spin_lock(&mvm->queue_info_lock);
  1239                  ret = iwl_mvm_remove_inactive_tids(mvm, mvmsta, i,
  1240                                                     inactive_tid_bitmap,
  1241                                                     &unshare_queues,
  1242                                                     &changetid_queues);
  1243                  if (ret >= 0 && free_queue < 0)
                            ^^^^^^^^

The iwl_mvm_remove_inactive_tids() returns a bool so it doesn't make
sense to test for >= 0.  Probably we should test for ret == true?

  1244                          free_queue = ret;
  1245                  /* only unlock sta lock - we still need the queue info 
lock */
  1246                  spin_unlock(&mvmsta->lock);
  1247          }

regards,
dan carpenter

Reply via email to