Linux v3.8-rc5
- Add patches to fix issues with iwlwifi (rhbz 863424) - Enable CONFIG_PROVE_RCU
This commit is contained in:
parent
249d64d928
commit
87df459c2b
68
Revert-iwlwifi-fix-the-reclaimed-packet-tracking-upon.patch
Normal file
68
Revert-iwlwifi-fix-the-reclaimed-packet-tracking-upon.patch
Normal file
@ -0,0 +1,68 @@
|
||||
From ae023b2795d36f0f077e157428eb7eafa29ee412 Mon Sep 17 00:00:00 2001
|
||||
From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Date: Mon, 21 Jan 2013 13:12:57 +0200
|
||||
Subject: [PATCH] Revert "iwlwifi: fix the reclaimed packet tracking upon
|
||||
flush queue"
|
||||
|
||||
This reverts commit f590dcec944552f9a4a61155810f3abd17d6465d
|
||||
which has been reported to cause issues.
|
||||
|
||||
See https://lkml.org/lkml/2013/1/20/4 for further details.
|
||||
|
||||
Cc: stable@vger.kernel.org [3.7]
|
||||
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/dvm/tx.c | 24 +++++++-----------------
|
||||
1 files changed, 7 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/dvm/tx.c b/drivers/net/wireless/iwlwifi/dvm/tx.c
|
||||
index 31534f7..2797964 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/dvm/tx.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/dvm/tx.c
|
||||
@@ -1153,6 +1153,13 @@ int iwlagn_rx_reply_tx(struct iwl_priv *priv, struct iwl_rx_cmd_buffer *rxb,
|
||||
next_reclaimed = ssn;
|
||||
}
|
||||
|
||||
+ if (tid != IWL_TID_NON_QOS) {
|
||||
+ priv->tid_data[sta_id][tid].next_reclaimed =
|
||||
+ next_reclaimed;
|
||||
+ IWL_DEBUG_TX_REPLY(priv, "Next reclaimed packet:%d\n",
|
||||
+ next_reclaimed);
|
||||
+ }
|
||||
+
|
||||
iwl_trans_reclaim(priv->trans, txq_id, ssn, &skbs);
|
||||
|
||||
iwlagn_check_ratid_empty(priv, sta_id, tid);
|
||||
@@ -1203,28 +1210,11 @@ int iwlagn_rx_reply_tx(struct iwl_priv *priv, struct iwl_rx_cmd_buffer *rxb,
|
||||
if (!is_agg)
|
||||
iwlagn_non_agg_tx_status(priv, ctx, hdr->addr1);
|
||||
|
||||
- /*
|
||||
- * W/A for FW bug - the seq_ctl isn't updated when the
|
||||
- * queues are flushed. Fetch it from the packet itself
|
||||
- */
|
||||
- if (!is_agg && status == TX_STATUS_FAIL_FIFO_FLUSHED) {
|
||||
- next_reclaimed = le16_to_cpu(hdr->seq_ctrl);
|
||||
- next_reclaimed =
|
||||
- SEQ_TO_SN(next_reclaimed + 0x10);
|
||||
- }
|
||||
-
|
||||
is_offchannel_skb =
|
||||
(info->flags & IEEE80211_TX_CTL_TX_OFFCHAN);
|
||||
freed++;
|
||||
}
|
||||
|
||||
- if (tid != IWL_TID_NON_QOS) {
|
||||
- priv->tid_data[sta_id][tid].next_reclaimed =
|
||||
- next_reclaimed;
|
||||
- IWL_DEBUG_TX_REPLY(priv, "Next reclaimed packet:%d\n",
|
||||
- next_reclaimed);
|
||||
- }
|
||||
-
|
||||
WARN_ON(!is_agg && freed != 1);
|
||||
|
||||
/*
|
||||
--
|
||||
1.7.6.5
|
||||
|
@ -9,7 +9,7 @@ CONFIG_SND_PCM_XRUN_DEBUG=y
|
||||
# CONFIG_DEBUG_LOCK_ALLOC is not set
|
||||
CONFIG_PROVE_LOCKING=y
|
||||
CONFIG_DEBUG_SPINLOCK=y
|
||||
# CONFIG_PROVE_RCU is not set
|
||||
CONFIG_PROVE_RCU=y
|
||||
# CONFIG_PROVE_RCU_REPEATEDLY is not set
|
||||
# CONFIG_DEBUG_PER_CPU_MAPS is not set
|
||||
CONFIG_CPUMASK_OFFSTACK=y
|
||||
|
50
iwlwifi-audit-single-frames-from-AGG-queue-in-RS.patch
Normal file
50
iwlwifi-audit-single-frames-from-AGG-queue-in-RS.patch
Normal file
@ -0,0 +1,50 @@
|
||||
From c3e5d7181afb66657393066bccce0956fab09ab3 Mon Sep 17 00:00:00 2001
|
||||
From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Date: Wed, 9 Jan 2013 10:20:36 +0200
|
||||
Subject: [PATCH] iwlwifi: audit single frames from AGG queue in RS
|
||||
|
||||
The rate scaling won't treat the information in a frame
|
||||
with IEEE80211_TX_CTL_AMPDU set if IEEE80211_TX_STAT_AMPDU
|
||||
is cleared. But all the frames coming from an AGG tx queue
|
||||
have IEEE80211_TX_CTL_AMPDU set, and IEEE80211_TX_STAT_AMPDU
|
||||
is set only if the frame was sent in an AMPDU.
|
||||
This means that all the data in frames in AGG tx queues that
|
||||
aren't sent as an AMPDU is thrown away.
|
||||
This is even more harmful when in bad link conditions, the
|
||||
frames are sent in an AMPDU and then finally sent as single
|
||||
frame. So a lot of failures weren't reported and the rate
|
||||
scaling got stuck in high rates leading to very poor
|
||||
connectivity.
|
||||
|
||||
Fix that by clearing IEEE80211_TX_CTL_AMPDU when the frame
|
||||
isn't part of an AMPDU.
|
||||
|
||||
This bug was introduced by
|
||||
|
||||
2eb81a40aa521035ff9c8c8309e482dff523f8c9
|
||||
iwlwifi: don't clear CTL_AMPDU on frame status
|
||||
|
||||
This fix basically reverts the aforementioned commit.
|
||||
|
||||
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/dvm/tx.c | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/dvm/tx.c b/drivers/net/wireless/iwlwifi/dvm/tx.c
|
||||
index a790599..31534f7 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/dvm/tx.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/dvm/tx.c
|
||||
@@ -1079,6 +1079,8 @@ static void iwlagn_set_tx_status(struct iwl_priv *priv,
|
||||
{
|
||||
u16 status = le16_to_cpu(tx_resp->status.status);
|
||||
|
||||
+ info->flags &= ~IEEE80211_TX_CTL_AMPDU;
|
||||
+
|
||||
info->status.rates[0].count = tx_resp->failure_frame + 1;
|
||||
info->flags |= iwl_tx_status_to_mac80211(status);
|
||||
iwlagn_hwrate_to_tx_control(priv, le32_to_cpu(tx_resp->rate_n_flags),
|
||||
--
|
||||
1.7.6.5
|
||||
|
17
kernel.spec
17
kernel.spec
@ -93,9 +93,9 @@ Summary: The Linux kernel
|
||||
# The next upstream release sublevel (base_sublevel+1)
|
||||
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
|
||||
# The rc snapshot level
|
||||
%define rcrev 4
|
||||
%define rcrev 5
|
||||
# The git snapshot level
|
||||
%define gitrev 5
|
||||
%define gitrev 0
|
||||
# Set rpm version accordingly
|
||||
%define rpmversion 3.%{upstream_sublevel}.0
|
||||
%endif
|
||||
@ -749,6 +749,10 @@ Patch21226: vt-Drop-K_OFF-for-VC_MUTE.patch
|
||||
#rhbz 886946
|
||||
Patch21227: iwlegacy-fix-IBSS-cleanup.patch
|
||||
|
||||
#rhbz 863424
|
||||
Patch21228: iwlwifi-audit-single-frames-from-AGG-queue-in-RS.patch
|
||||
Patch21229: Revert-iwlwifi-fix-the-reclaimed-packet-tracking-upon.patch
|
||||
|
||||
# END OF PATCH DEFINITIONS
|
||||
|
||||
%endif
|
||||
@ -1443,6 +1447,10 @@ ApplyPatch vt-Drop-K_OFF-for-VC_MUTE.patch
|
||||
#rhbz 886946
|
||||
ApplyPatch iwlegacy-fix-IBSS-cleanup.patch
|
||||
|
||||
#rhbz 863424
|
||||
ApplyPatch iwlwifi-audit-single-frames-from-AGG-queue-in-RS.patch
|
||||
ApplyPatch Revert-iwlwifi-fix-the-reclaimed-packet-tracking-upon.patch
|
||||
|
||||
# END OF PATCH APPLICATIONS
|
||||
|
||||
%endif
|
||||
@ -2298,6 +2306,11 @@ fi
|
||||
# ||----w |
|
||||
# || ||
|
||||
%changelog
|
||||
* Mon Jan 28 2013 Josh Boyer <jwboyer@redhat.com>
|
||||
- Linux v3.8-rc5
|
||||
- Add patches to fix issues with iwlwifi (rhbz 863424)
|
||||
- Enable CONFIG_PROVE_RCU
|
||||
|
||||
* Sun Jan 27 2013 Peter Robinson <pbrobinson@fedoraproject.org>
|
||||
- Reenable perf on ARM (was suppose to be temporary)
|
||||
- Build and package dtbs on ARM
|
||||
|
Loading…
Reference in New Issue
Block a user