aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/ath/ath9k/htc_drv_main.c2
-rw-r--r--drivers/net/wireless/ath/ath9k/xmit.c6
-rw-r--r--net/bluetooth/l2cap_core.c2
3 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
index be6baf7f6510..5c1bec18c9e3 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
@@ -1183,7 +1183,7 @@ static int ath9k_htc_config(struct ieee80211_hw *hw, u32 changed)
1183 mutex_lock(&priv->htc_pm_lock); 1183 mutex_lock(&priv->htc_pm_lock);
1184 1184
1185 priv->ps_idle = !!(conf->flags & IEEE80211_CONF_IDLE); 1185 priv->ps_idle = !!(conf->flags & IEEE80211_CONF_IDLE);
1186 if (priv->ps_idle) 1186 if (!priv->ps_idle)
1187 chip_reset = true; 1187 chip_reset = true;
1188 1188
1189 mutex_unlock(&priv->htc_pm_lock); 1189 mutex_unlock(&priv->htc_pm_lock);
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index bfb58a5f2fd0..c59ae43b9b35 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -1673,6 +1673,8 @@ void ath_txq_schedule(struct ath_softc *sc, struct ath_txq *txq)
1673 txq->axq_ampdu_depth >= ATH_AGGR_MIN_QDEPTH) 1673 txq->axq_ampdu_depth >= ATH_AGGR_MIN_QDEPTH)
1674 return; 1674 return;
1675 1675
1676 rcu_read_lock();
1677
1676 ac = list_first_entry(&txq->axq_acq, struct ath_atx_ac, list); 1678 ac = list_first_entry(&txq->axq_acq, struct ath_atx_ac, list);
1677 last_ac = list_entry(txq->axq_acq.prev, struct ath_atx_ac, list); 1679 last_ac = list_entry(txq->axq_acq.prev, struct ath_atx_ac, list);
1678 1680
@@ -1711,8 +1713,10 @@ void ath_txq_schedule(struct ath_softc *sc, struct ath_txq *txq)
1711 1713
1712 if (ac == last_ac || 1714 if (ac == last_ac ||
1713 txq->axq_ampdu_depth >= ATH_AGGR_MIN_QDEPTH) 1715 txq->axq_ampdu_depth >= ATH_AGGR_MIN_QDEPTH)
1714 return; 1716 break;
1715 } 1717 }
1718
1719 rcu_read_unlock();
1716} 1720}
1717 1721
1718/***********/ 1722/***********/
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 9af3a76844f7..8c3499bec893 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -4334,7 +4334,7 @@ static inline int l2cap_information_rsp(struct l2cap_conn *conn,
4334 struct l2cap_info_rsp *rsp = (struct l2cap_info_rsp *) data; 4334 struct l2cap_info_rsp *rsp = (struct l2cap_info_rsp *) data;
4335 u16 type, result; 4335 u16 type, result;
4336 4336
4337 if (cmd_len != sizeof(*rsp)) 4337 if (cmd_len < sizeof(*rsp))
4338 return -EPROTO; 4338 return -EPROTO;
4339 4339
4340 type = __le16_to_cpu(rsp->type); 4340 type = __le16_to_cpu(rsp->type);