diff options
| author | Jérôme Pouiller <jerome.pouiller@silabs.com> | 2020-01-15 13:55:35 +0000 | 
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-01-16 20:59:53 +0100 | 
| commit | 2f5fd8b07745838e590b61d5b136be8b9f94cc4c (patch) | |
| tree | 64522d1e07d340d1eb08fc824f8b2d18525bed05 | |
| parent | 5244357961a422100b73a9da423532578579324a (diff) | |
staging: wfx: simplify wfx_tx_queue_get_num_queued()
wfx_tx_queue_get_num_queued() can take advantage of BIT() instead of
maintaining one variable for a counter and another for a mask.
In add, wfx_tx_queue_get_num_queued() has no real reason to return a
size_t instead of an int.
Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20200115135338.14374-64-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| -rw-r--r-- | drivers/staging/wfx/queue.c | 14 | ||||
| -rw-r--r-- | drivers/staging/wfx/queue.h | 2 | 
2 files changed, 6 insertions, 10 deletions
| diff --git a/drivers/staging/wfx/queue.c b/drivers/staging/wfx/queue.c index 024497eb19ac..0bcc61feee1d 100644 --- a/drivers/staging/wfx/queue.c +++ b/drivers/staging/wfx/queue.c @@ -175,11 +175,9 @@ void wfx_tx_queues_deinit(struct wfx_dev *wdev)  	wfx_tx_queues_clear(wdev);  } -size_t wfx_tx_queue_get_num_queued(struct wfx_queue *queue, -				   u32 link_id_map) +int wfx_tx_queue_get_num_queued(struct wfx_queue *queue, u32 link_id_map)  { -	size_t ret; -	int i, bit; +	int ret, i;  	if (!link_id_map)  		return 0; @@ -189,11 +187,9 @@ size_t wfx_tx_queue_get_num_queued(struct wfx_queue *queue,  		ret = skb_queue_len(&queue->queue);  	} else {  		ret = 0; -		for (i = 0, bit = 1; i < ARRAY_SIZE(queue->link_map_cache); -		     ++i, bit <<= 1) { -			if (link_id_map & bit) +		for (i = 0; i < ARRAY_SIZE(queue->link_map_cache); i++) +			if (link_id_map & BIT(i))  				ret += queue->link_map_cache[i]; -		}  	}  	spin_unlock_bh(&queue->queue.lock);  	return ret; @@ -555,7 +551,7 @@ struct hif_msg *wfx_tx_queues_get(struct wfx_dev *wdev)  		/* allow bursting if txop is set */  		if (wvif->edca_params[queue_num].txop) -			burst = (int)wfx_tx_queue_get_num_queued(queue, tx_allowed_mask) + 1; +			burst = wfx_tx_queue_get_num_queued(queue, tx_allowed_mask) + 1;  		else  			burst = 1; diff --git a/drivers/staging/wfx/queue.h b/drivers/staging/wfx/queue.h index 096ae86135cc..90bb060d1204 100644 --- a/drivers/staging/wfx/queue.h +++ b/drivers/staging/wfx/queue.h @@ -51,7 +51,7 @@ struct hif_msg *wfx_tx_queues_get_after_dtim(struct wfx_vif *wvif);  void wfx_tx_queue_put(struct wfx_dev *wdev, struct wfx_queue *queue,  		      struct sk_buff *skb); -size_t wfx_tx_queue_get_num_queued(struct wfx_queue *queue, u32 link_id_map); +int wfx_tx_queue_get_num_queued(struct wfx_queue *queue, u32 link_id_map);  struct sk_buff *wfx_pending_get(struct wfx_dev *wdev, u32 packet_id);  int wfx_pending_remove(struct wfx_dev *wdev, struct sk_buff *skb); | 
