diff options
author | Johannes Berg <johannes.berg@intel.com> | 2012-11-04 03:31:25 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2012-11-05 10:12:24 -0500 |
commit | e2b1930e6fd9aaa72cc44519b257ae71a1c2e29f (patch) | |
tree | f9b7b3f50bf8d932ceb42829f19efbbbc1fd6b97 /drivers/net/wireless/iwlwifi/pcie | |
parent | a4dece9abce75332a082340bcc9b176f10484a62 (diff) |
iwlwifi: use list_first_entry
Instead of open-coding it with a temporary list_head
pointer, just use list_first_entry.
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/pcie')
-rw-r--r-- | drivers/net/wireless/iwlwifi/pcie/rx.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/drivers/net/wireless/iwlwifi/pcie/rx.c b/drivers/net/wireless/iwlwifi/pcie/rx.c index 50c9147278b3..25e6f868cfb6 100644 --- a/drivers/net/wireless/iwlwifi/pcie/rx.c +++ b/drivers/net/wireless/iwlwifi/pcie/rx.c | |||
@@ -199,7 +199,6 @@ static void iwl_rx_queue_restock(struct iwl_trans *trans) | |||
199 | { | 199 | { |
200 | struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); | 200 | struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); |
201 | struct iwl_rx_queue *rxq = &trans_pcie->rxq; | 201 | struct iwl_rx_queue *rxq = &trans_pcie->rxq; |
202 | struct list_head *element; | ||
203 | struct iwl_rx_mem_buffer *rxb; | 202 | struct iwl_rx_mem_buffer *rxb; |
204 | unsigned long flags; | 203 | unsigned long flags; |
205 | 204 | ||
@@ -221,9 +220,9 @@ static void iwl_rx_queue_restock(struct iwl_trans *trans) | |||
221 | BUG_ON(rxb && rxb->page); | 220 | BUG_ON(rxb && rxb->page); |
222 | 221 | ||
223 | /* Get next free Rx buffer, remove from free list */ | 222 | /* Get next free Rx buffer, remove from free list */ |
224 | element = rxq->rx_free.next; | 223 | rxb = list_first_entry(&rxq->rx_free, struct iwl_rx_mem_buffer, |
225 | rxb = list_entry(element, struct iwl_rx_mem_buffer, list); | 224 | list); |
226 | list_del(element); | 225 | list_del(&rxb->list); |
227 | 226 | ||
228 | /* Point to Rx buffer via next RBD in circular buffer */ | 227 | /* Point to Rx buffer via next RBD in circular buffer */ |
229 | rxq->bd[rxq->write] = iwl_dma_addr2rbd_ptr(rxb->page_dma); | 228 | rxq->bd[rxq->write] = iwl_dma_addr2rbd_ptr(rxb->page_dma); |
@@ -260,7 +259,6 @@ static void iwl_rx_allocate(struct iwl_trans *trans, gfp_t priority) | |||
260 | { | 259 | { |
261 | struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); | 260 | struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); |
262 | struct iwl_rx_queue *rxq = &trans_pcie->rxq; | 261 | struct iwl_rx_queue *rxq = &trans_pcie->rxq; |
263 | struct list_head *element; | ||
264 | struct iwl_rx_mem_buffer *rxb; | 262 | struct iwl_rx_mem_buffer *rxb; |
265 | struct page *page; | 263 | struct page *page; |
266 | unsigned long flags; | 264 | unsigned long flags; |
@@ -308,10 +306,9 @@ static void iwl_rx_allocate(struct iwl_trans *trans, gfp_t priority) | |||
308 | __free_pages(page, trans_pcie->rx_page_order); | 306 | __free_pages(page, trans_pcie->rx_page_order); |
309 | return; | 307 | return; |
310 | } | 308 | } |
311 | element = rxq->rx_used.next; | 309 | rxb = list_first_entry(&rxq->rx_used, struct iwl_rx_mem_buffer, |
312 | rxb = list_entry(element, struct iwl_rx_mem_buffer, list); | 310 | list); |
313 | list_del(element); | 311 | list_del(&rxb->list); |
314 | |||
315 | spin_unlock_irqrestore(&rxq->lock, flags); | 312 | spin_unlock_irqrestore(&rxq->lock, flags); |
316 | 313 | ||
317 | BUG_ON(rxb->page); | 314 | BUG_ON(rxb->page); |