diff options
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc_drv_main.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/xmit.c | 6 | ||||
-rw-r--r-- | net/bluetooth/l2cap_core.c | 2 |
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); |