summaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2012-11-25 14:42:25 +0200
committerJohannes Berg <johannes.berg@intel.com>2012-11-28 15:34:27 +0100
commit52e2a99eee77cc4a47e183eb7f5102301a31e282 (patch)
treeeaaa0795fee04da8408f4c4220fca378a50cdb23 /drivers/net
parenteea54c8ec971d4759c541dba351477dafc39ce54 (diff)
downloadtalos-obmc-linux-52e2a99eee77cc4a47e183eb7f5102301a31e282.tar.gz
talos-obmc-linux-52e2a99eee77cc4a47e183eb7f5102301a31e282.zip
iwlwifi: read the Rx write pointer only once
The FH (DMA engine) tells the driver the index of the last ready (closed) Rx buffer. This data is in closed_rb_num. If we read this data several times we may get inconsistencies between the code and the debug prints which can make it harder to debug issues here. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/rx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/pcie/rx.c b/drivers/net/wireless/iwlwifi/pcie/rx.c
index c81b9782d2a4..787b9ca6af9f 100644
--- a/drivers/net/wireless/iwlwifi/pcie/rx.c
+++ b/drivers/net/wireless/iwlwifi/pcie/rx.c
@@ -698,7 +698,7 @@ static void iwl_pcie_rx_handle(struct iwl_trans *trans)
/* uCode's read index (stored in shared DRAM) indicates the last Rx
* buffer that the driver may process (last buffer filled by ucode). */
- r = le16_to_cpu(rxq->rb_stts->closed_rb_num) & 0x0FFF;
+ r = le16_to_cpu(ACCESS_ONCE(rxq->rb_stts->closed_rb_num)) & 0x0FFF;
i = rxq->read;
/* Rx interrupt, but nothing sent from uCode */
OpenPOWER on IntegriCloud