diff options
author | Rajkumar Manoharan <rmanohar@qca.qualcomm.com> | 2011-07-17 02:13:02 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-07-18 14:29:45 -0400 |
commit | 5479de6e876e93d0037e43da7a8e7c2ed170b424 (patch) | |
tree | 859ba79fc5d34f9fa1cc76289a4af5522d407c9d | |
parent | 0901edb758854e317fbc96774159739db4aff353 (diff) |
ath9k: Fix sparse warnings
drivers/net/wireless/ath/ath9k/init.c:199:21: warning: context imbalance
in 'ath9k_reg_rmw' - different lock contexts for basic block
drivers/net/wireless/ath/ath9k/xmit.c:1175:31: warning: context
imbalance in 'ath_drain_txq_list' - unexpected unlock
drivers/net/wireless/ath/ath9k/xmit.c:2047:23: warning: context
imbalance in 'ath_tx_process_buffer' - unexpected unlock
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c:3041:24: warning: cast to
restricted __le32
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/init.c | 25 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/xmit.c | 4 |
3 files changed, 22 insertions, 9 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c index 33a1600de34..d109c25417f 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | |||
@@ -3039,7 +3039,7 @@ static u32 ath9k_hw_ar9300_get_eeprom(struct ath_hw *ah, | |||
3039 | case EEP_CHAIN_MASK_REDUCE: | 3039 | case EEP_CHAIN_MASK_REDUCE: |
3040 | return (pBase->miscConfiguration >> 0x3) & 0x1; | 3040 | return (pBase->miscConfiguration >> 0x3) & 0x1; |
3041 | case EEP_ANT_DIV_CTL1: | 3041 | case EEP_ANT_DIV_CTL1: |
3042 | return le32_to_cpu(eep->base_ext1.ant_div_control); | 3042 | return eep->base_ext1.ant_div_control; |
3043 | default: | 3043 | default: |
3044 | return 0; | 3044 | return 0; |
3045 | } | 3045 | } |
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c index ce297173e0d..dceaa4a8281 100644 --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c | |||
@@ -196,6 +196,19 @@ static unsigned int ath9k_ioread32(void *hw_priv, u32 reg_offset) | |||
196 | return val; | 196 | return val; |
197 | } | 197 | } |
198 | 198 | ||
199 | static unsigned int __ath9k_reg_rmw(struct ath_softc *sc, u32 reg_offset, | ||
200 | u32 set, u32 clr) | ||
201 | { | ||
202 | u32 val; | ||
203 | |||
204 | val = ioread32(sc->mem + reg_offset); | ||
205 | val &= ~clr; | ||
206 | val |= set; | ||
207 | iowrite32(val, sc->mem + reg_offset); | ||
208 | |||
209 | return val; | ||
210 | } | ||
211 | |||
199 | static unsigned int ath9k_reg_rmw(void *hw_priv, u32 reg_offset, u32 set, u32 clr) | 212 | static unsigned int ath9k_reg_rmw(void *hw_priv, u32 reg_offset, u32 set, u32 clr) |
200 | { | 213 | { |
201 | struct ath_hw *ah = (struct ath_hw *) hw_priv; | 214 | struct ath_hw *ah = (struct ath_hw *) hw_priv; |
@@ -204,16 +217,12 @@ static unsigned int ath9k_reg_rmw(void *hw_priv, u32 reg_offset, u32 set, u32 cl | |||
204 | unsigned long uninitialized_var(flags); | 217 | unsigned long uninitialized_var(flags); |
205 | u32 val; | 218 | u32 val; |
206 | 219 | ||
207 | if (ah->config.serialize_regmode == SER_REG_MODE_ON) | 220 | if (ah->config.serialize_regmode == SER_REG_MODE_ON) { |
208 | spin_lock_irqsave(&sc->sc_serial_rw, flags); | 221 | spin_lock_irqsave(&sc->sc_serial_rw, flags); |
209 | 222 | val = __ath9k_reg_rmw(sc, reg_offset, set, clr); | |
210 | val = ioread32(sc->mem + reg_offset); | ||
211 | val &= ~clr; | ||
212 | val |= set; | ||
213 | iowrite32(val, sc->mem + reg_offset); | ||
214 | |||
215 | if (ah->config.serialize_regmode == SER_REG_MODE_ON) | ||
216 | spin_unlock_irqrestore(&sc->sc_serial_rw, flags); | 223 | spin_unlock_irqrestore(&sc->sc_serial_rw, flags); |
224 | } else | ||
225 | val = __ath9k_reg_rmw(sc, reg_offset, set, clr); | ||
217 | 226 | ||
218 | return val; | 227 | return val; |
219 | } | 228 | } |
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c index 9283440a021..7810b926fb3 100644 --- a/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c | |||
@@ -1147,6 +1147,8 @@ static bool bf_is_ampdu_not_probing(struct ath_buf *bf) | |||
1147 | 1147 | ||
1148 | static void ath_drain_txq_list(struct ath_softc *sc, struct ath_txq *txq, | 1148 | static void ath_drain_txq_list(struct ath_softc *sc, struct ath_txq *txq, |
1149 | struct list_head *list, bool retry_tx) | 1149 | struct list_head *list, bool retry_tx) |
1150 | __releases(txq->axq_lock) | ||
1151 | __acquires(txq->axq_lock) | ||
1150 | { | 1152 | { |
1151 | struct ath_buf *bf, *lastbf; | 1153 | struct ath_buf *bf, *lastbf; |
1152 | struct list_head bf_head; | 1154 | struct list_head bf_head; |
@@ -2035,6 +2037,8 @@ static void ath_tx_rc_status(struct ath_softc *sc, struct ath_buf *bf, | |||
2035 | static void ath_tx_process_buffer(struct ath_softc *sc, struct ath_txq *txq, | 2037 | static void ath_tx_process_buffer(struct ath_softc *sc, struct ath_txq *txq, |
2036 | struct ath_tx_status *ts, struct ath_buf *bf, | 2038 | struct ath_tx_status *ts, struct ath_buf *bf, |
2037 | struct list_head *bf_head) | 2039 | struct list_head *bf_head) |
2040 | __releases(txq->axq_lock) | ||
2041 | __acquires(txq->axq_lock) | ||
2038 | { | 2042 | { |
2039 | int txok; | 2043 | int txok; |
2040 | 2044 | ||