Drop compat-wireless infrastructure in preparation for 3.3 rebase
This commit is contained in:
parent
ea76f538e8
commit
d8b686023e
|
@ -1,94 +0,0 @@
|
|||
From 07445f688218a48bde72316aed9de4fdcc173131 Mon Sep 17 00:00:00 2001
|
||||
From: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
|
||||
Date: Thu, 2 Feb 2012 16:29:05 +0530
|
||||
Subject: [PATCH] ath9k: Fix kernel panic during driver initilization
|
||||
|
||||
all works need to be initialized before ieee80211_register_hw
|
||||
to prevent mac80211 call backs such as drv_start, drv_config
|
||||
getting started. otherwise we would queue/cancel works before
|
||||
initializing them and it leads to kernel panic.
|
||||
this issue can be recreated with the following script
|
||||
in Chrome laptops with AR928X cards, with background scan
|
||||
running (or) Network manager is running
|
||||
|
||||
while true
|
||||
do
|
||||
sudo modprobe -v ath9k
|
||||
sleep 3
|
||||
sudo modprobe -r ath9k
|
||||
sleep 3
|
||||
done
|
||||
|
||||
EIP: [<81040a47>] __cancel_work_timer+0xb8/0xe1 SS:ESP 0068:f6be9d70
|
||||
---[ end trace 4f86d6139a9900ef ]---
|
||||
Registered led device: ath9k-phy0
|
||||
ieee80211 phy0: Atheros AR9280 Rev:2 mem=0xf88a0000,
|
||||
irq=16
|
||||
Kernel panic - not syncing: Fatal exception
|
||||
Pid: 456, comm: wpa_supplicant Tainted: G D
|
||||
3.0.13 #1
|
||||
Call Trace:
|
||||
[<81379e21>] panic+0x53/0x14a
|
||||
[<81004a30>] oops_end+0x73/0x81
|
||||
[<81004b53>] die+0x4c/0x55
|
||||
[<81002710>] do_trap+0x7c/0x83
|
||||
[<81002855>] ? do_bounds+0x58/0x58
|
||||
[<810028cc>] do_invalid_op+0x77/0x81
|
||||
[<81040a47>] ? __cancel_work_timer+0xb8/0xe1
|
||||
[<810489ec>] ? sched_clock_cpu+0x81/0x11f
|
||||
[<8103f809>] ? wait_on_work+0xe2/0xf7
|
||||
[<8137f807>] error_code+0x67/0x6c
|
||||
[<810300d8>] ? wait_consider_task+0x4ba/0x84c
|
||||
[<81040a47>] ? __cancel_work_timer+0xb8/0xe1
|
||||
[<810380c9>] ? try_to_del_timer_sync+0x5f/0x67
|
||||
[<81040a91>] cancel_work_sync+0xf/0x11
|
||||
[<f88d7b7c>] ath_set_channel+0x62/0x25c [ath9k]
|
||||
[<f88d67d1>] ? ath9k_tx_last_beacon+0x26a/0x85c [ath9k]
|
||||
[<f88d8899>] ath_radio_disable+0x3f1/0x68e [ath9k]
|
||||
[<f90d0edb>] ieee80211_hw_config+0x111/0x116 [mac80211]
|
||||
[<f90dd95c>] __ieee80211_recalc_idle+0x919/0xa37 [mac80211]
|
||||
[<f90dda76>] __ieee80211_recalc_idle+0xa33/0xa37 [mac80211]
|
||||
[<812dbed8>] __dev_open+0x82/0xab
|
||||
|
||||
Cc: <stable@vger.kernel.org>
|
||||
Cc: Gary Morain <gmorain@google.com>
|
||||
Cc: Paul Stewart <pstew@google.com>
|
||||
Cc: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
|
||||
Tested-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
|
||||
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
|
||||
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/ath/ath9k/init.c | 9 +++++----
|
||||
1 files changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
|
||||
index abf9435..53a005d 100644
|
||||
--- a/drivers/net/wireless/ath/ath9k/init.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/init.c
|
||||
@@ -822,6 +822,11 @@ int ath9k_init_device(u16 devid, struct ath_softc *sc,
|
||||
ARRAY_SIZE(ath9k_tpt_blink));
|
||||
#endif
|
||||
|
||||
+ INIT_WORK(&sc->hw_reset_work, ath_reset_work);
|
||||
+ INIT_WORK(&sc->hw_check_work, ath_hw_check);
|
||||
+ INIT_WORK(&sc->paprd_work, ath_paprd_calibrate);
|
||||
+ INIT_DELAYED_WORK(&sc->hw_pll_work, ath_hw_pll_work);
|
||||
+
|
||||
/* Register with mac80211 */
|
||||
error = ieee80211_register_hw(hw);
|
||||
if (error)
|
||||
@@ -840,10 +845,6 @@ int ath9k_init_device(u16 devid, struct ath_softc *sc,
|
||||
goto error_world;
|
||||
}
|
||||
|
||||
- INIT_WORK(&sc->hw_reset_work, ath_reset_work);
|
||||
- INIT_WORK(&sc->hw_check_work, ath_hw_check);
|
||||
- INIT_WORK(&sc->paprd_work, ath_paprd_calibrate);
|
||||
- INIT_DELAYED_WORK(&sc->hw_pll_work, ath_hw_pll_work);
|
||||
sc->last_rssi = ATH_RSSI_DUMMY_MARKER;
|
||||
|
||||
ath_init_leds(sc);
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
From f88373fa47f3ce6590fdfaa742d0ddacc2ae017f Mon Sep 17 00:00:00 2001
|
||||
From: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Sun, 5 Feb 2012 21:15:17 +0100
|
||||
Subject: [PATCH] ath9k: fix a WEP crypto related regression
|
||||
|
||||
commit b4a82a0 "ath9k_hw: fix interpretation of the rx KeyMiss flag"
|
||||
fixed the interpretation of the KeyMiss flag for keycache based lookups,
|
||||
however WEP encryption uses a static index, so KeyMiss is always asserted
|
||||
for it, even though frames are decrypted properly.
|
||||
Fix this by clearing the ATH9K_RXERR_KEYMISS flag if no keycache based
|
||||
lookup was performed.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
Cc: stable@vger.kernel.org
|
||||
Reported-by: Laurent Bonnans <bonnans.l@gmail.com>
|
||||
Reported-by: Jurica Vukadin <u.ra604@googlemail.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/ath/ath9k/recv.c | 8 ++++++++
|
||||
1 files changed, 8 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c
|
||||
index 0e666fb..7e1a91a 100644
|
||||
--- a/drivers/net/wireless/ath/ath9k/recv.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/recv.c
|
||||
@@ -822,6 +822,14 @@ static bool ath9k_rx_accept(struct ath_common *common,
|
||||
(ATH9K_RXERR_DECRYPT | ATH9K_RXERR_CRC | ATH9K_RXERR_MIC |
|
||||
ATH9K_RXERR_KEYMISS));
|
||||
|
||||
+ /*
|
||||
+ * Key miss events are only relevant for pairwise keys where the
|
||||
+ * descriptor does contain a valid key index. This has been observed
|
||||
+ * mostly with CCMP encryption.
|
||||
+ */
|
||||
+ if (rx_stats->rs_keyix == ATH9K_RXKEYIX_INVALID)
|
||||
+ rx_stats->rs_status &= ~ATH9K_RXERR_KEYMISS;
|
||||
+
|
||||
if (!rx_stats->rs_datalen)
|
||||
return false;
|
||||
/*
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
From 2504a6423b9ab4c36df78227055995644de19edb Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Roskin <proski@gnu.org>
|
||||
Date: Sat, 11 Feb 2012 10:01:53 -0500
|
||||
Subject: [PATCH] ath9k: stop on rates with idx -1 in ath9k rate control's
|
||||
.tx_status
|
||||
|
||||
Rate control algorithms are supposed to stop processing when they
|
||||
encounter a rate with the index -1. Checking for rate->count not being
|
||||
zero is not enough.
|
||||
|
||||
Allowing a rate with negative index leads to memory corruption in
|
||||
ath_debug_stat_rc().
|
||||
|
||||
One consequence of the bug is discussed at
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=768639
|
||||
|
||||
Signed-off-by: Pavel Roskin <proski@gnu.org>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/ath/ath9k/rc.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/ath/ath9k/rc.c b/drivers/net/wireless/ath/ath9k/rc.c
|
||||
index 635b592..a427a16 100644
|
||||
--- a/drivers/net/wireless/ath/ath9k/rc.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/rc.c
|
||||
@@ -1346,7 +1346,7 @@ static void ath_tx_status(void *priv, struct ieee80211_supported_band *sband,
|
||||
fc = hdr->frame_control;
|
||||
for (i = 0; i < sc->hw->max_rates; i++) {
|
||||
struct ieee80211_tx_rate *rate = &tx_info->status.rates[i];
|
||||
- if (!rate->count)
|
||||
+ if (rate->idx < 0 || !rate->count)
|
||||
break;
|
||||
|
||||
final_ts_idx = i;
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
From 41b2d62702730b0c6bc5a40722e423bb0338311a Mon Sep 17 00:00:00 2001
|
||||
From: John W. Linville <linville@tuxdriver.com>
|
||||
Date: Mon, 30 Jan 2012 10:53:55 -0500
|
||||
Subject: [PATCH] ath9k: use WARN_ON_ONCE in ath_rc_get_highest_rix
|
||||
|
||||
The device seems to survive the issue, so no need to flood the logs
|
||||
about it...
|
||||
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/ath/ath9k/rc.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/ath/ath9k/rc.c b/drivers/net/wireless/ath/ath9k/rc.c
|
||||
index b3c3798..635b592 100644
|
||||
--- a/drivers/net/wireless/ath/ath9k/rc.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/rc.c
|
||||
@@ -694,7 +694,7 @@ static u8 ath_rc_get_highest_rix(struct ath_softc *sc,
|
||||
return rate;
|
||||
|
||||
/* This should not happen */
|
||||
- WARN_ON(1);
|
||||
+ WARN_ON_ONCE(1);
|
||||
|
||||
rate = ath_rc_priv->valid_rate_index[0];
|
||||
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
From 55a2bb4a6d5e8c7b324d003e130fd9aaf33be4e6 Mon Sep 17 00:00:00 2001
|
||||
From: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Sun, 5 Feb 2012 21:15:18 +0100
|
||||
Subject: [PATCH] ath9k_hw: fix a RTS/CTS timeout regression
|
||||
|
||||
commit adb5066 "ath9k_hw: do not apply the 2.4 ghz ack timeout
|
||||
workaround to cts" reduced the hardware CTS timeout to the normal
|
||||
values specified by the standard, but it turns out while it doesn't
|
||||
need the same extra time that it needs for the ACK timeout, it
|
||||
does need more than the value specified in the standard, but only
|
||||
for 2.4 GHz.
|
||||
|
||||
This patch brings the CTS timeout value in sync with the initialization
|
||||
values, while still allowing adjustment for bigger distances.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
Cc: stable@vger.kernel.org
|
||||
Reported-by: Seth Forshee <seth.forshee@canonical.com>
|
||||
Reported-by: Marek Lindner <lindner_marek@yahoo.de>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/ath/ath9k/hw.c | 7 +++++--
|
||||
1 files changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
|
||||
index ee77595..87db1ee 100644
|
||||
--- a/drivers/net/wireless/ath/ath9k/hw.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/hw.c
|
||||
@@ -1037,13 +1037,16 @@ void ath9k_hw_init_global_settings(struct ath_hw *ah)
|
||||
|
||||
/*
|
||||
* Workaround for early ACK timeouts, add an offset to match the
|
||||
- * initval's 64us ack timeout value.
|
||||
+ * initval's 64us ack timeout value. Use 48us for the CTS timeout.
|
||||
* This was initially only meant to work around an issue with delayed
|
||||
* BA frames in some implementations, but it has been found to fix ACK
|
||||
* timeout issues in other cases as well.
|
||||
*/
|
||||
- if (conf->channel && conf->channel->band == IEEE80211_BAND_2GHZ)
|
||||
+ if (conf->channel && conf->channel->band == IEEE80211_BAND_2GHZ) {
|
||||
acktimeout += 64 - sifstime - ah->slottime;
|
||||
+ ctstimeout += 48 - sifstime - ah->slottime;
|
||||
+ }
|
||||
+
|
||||
|
||||
ath9k_hw_set_sifs_time(ah, sifstime);
|
||||
ath9k_hw_setslottime(ah, slottime);
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,117 +0,0 @@
|
|||
From 9bbb8168ed3d8b946f9c1901a63a675012de88f2 Mon Sep 17 00:00:00 2001
|
||||
From: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Wed, 15 Feb 2012 19:31:20 +0100
|
||||
Subject: [PATCH] ath9k_hw: prevent writes to const data on AR9160
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Duplicate the data for iniAddac early on, to avoid having to do redundant
|
||||
memcpy calls later. While we're at it, make AR5416 < v2.2 use the same
|
||||
codepath. Fixes a reported crash on x86.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
Reported-by: Magnus Määttä <magnus.maatta@logica.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/ath/ath9k/ar5008_phy.c | 25 +------------------------
|
||||
drivers/net/wireless/ath/ath9k/ar9002_hw.c | 19 +++++++++++++++++++
|
||||
drivers/net/wireless/ath/ath9k/hw.h | 1 -
|
||||
3 files changed, 20 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/ath/ath9k/ar5008_phy.c b/drivers/net/wireless/ath/ath9k/ar5008_phy.c
|
||||
index f901a17..86a891f 100644
|
||||
--- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c
|
||||
@@ -489,8 +489,6 @@ static int ar5008_hw_rf_alloc_ext_banks(struct ath_hw *ah)
|
||||
ATH_ALLOC_BANK(ah->analogBank6Data, ah->iniBank6.ia_rows);
|
||||
ATH_ALLOC_BANK(ah->analogBank6TPCData, ah->iniBank6TPC.ia_rows);
|
||||
ATH_ALLOC_BANK(ah->analogBank7Data, ah->iniBank7.ia_rows);
|
||||
- ATH_ALLOC_BANK(ah->addac5416_21,
|
||||
- ah->iniAddac.ia_rows * ah->iniAddac.ia_columns);
|
||||
ATH_ALLOC_BANK(ah->bank6Temp, ah->iniBank6.ia_rows);
|
||||
|
||||
return 0;
|
||||
@@ -519,7 +517,6 @@ static void ar5008_hw_rf_free_ext_banks(struct ath_hw *ah)
|
||||
ATH_FREE_BANK(ah->analogBank6Data);
|
||||
ATH_FREE_BANK(ah->analogBank6TPCData);
|
||||
ATH_FREE_BANK(ah->analogBank7Data);
|
||||
- ATH_FREE_BANK(ah->addac5416_21);
|
||||
ATH_FREE_BANK(ah->bank6Temp);
|
||||
|
||||
#undef ATH_FREE_BANK
|
||||
@@ -805,27 +802,7 @@ static int ar5008_hw_process_ini(struct ath_hw *ah,
|
||||
if (ah->eep_ops->set_addac)
|
||||
ah->eep_ops->set_addac(ah, chan);
|
||||
|
||||
- if (AR_SREV_5416_22_OR_LATER(ah)) {
|
||||
- REG_WRITE_ARRAY(&ah->iniAddac, 1, regWrites);
|
||||
- } else {
|
||||
- struct ar5416IniArray temp;
|
||||
- u32 addacSize =
|
||||
- sizeof(u32) * ah->iniAddac.ia_rows *
|
||||
- ah->iniAddac.ia_columns;
|
||||
-
|
||||
- /* For AR5416 2.0/2.1 */
|
||||
- memcpy(ah->addac5416_21,
|
||||
- ah->iniAddac.ia_array, addacSize);
|
||||
-
|
||||
- /* override CLKDRV value at [row, column] = [31, 1] */
|
||||
- (ah->addac5416_21)[31 * ah->iniAddac.ia_columns + 1] = 0;
|
||||
-
|
||||
- temp.ia_array = ah->addac5416_21;
|
||||
- temp.ia_columns = ah->iniAddac.ia_columns;
|
||||
- temp.ia_rows = ah->iniAddac.ia_rows;
|
||||
- REG_WRITE_ARRAY(&temp, 1, regWrites);
|
||||
- }
|
||||
-
|
||||
+ REG_WRITE_ARRAY(&ah->iniAddac, 1, regWrites);
|
||||
REG_WRITE(ah, AR_PHY_ADC_SERIAL_CTL, AR_PHY_SEL_INTERNAL_ADDAC);
|
||||
|
||||
ENABLE_REGWRITE_BUFFER(ah);
|
||||
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_hw.c b/drivers/net/wireless/ath/ath9k/ar9002_hw.c
|
||||
index 11f192a..d190411 100644
|
||||
--- a/drivers/net/wireless/ath/ath9k/ar9002_hw.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/ar9002_hw.c
|
||||
@@ -180,6 +180,25 @@ static void ar9002_hw_init_mode_regs(struct ath_hw *ah)
|
||||
INIT_INI_ARRAY(&ah->iniAddac, ar5416Addac,
|
||||
ARRAY_SIZE(ar5416Addac), 2);
|
||||
}
|
||||
+
|
||||
+ /* iniAddac needs to be modified for these chips */
|
||||
+ if (AR_SREV_9160(ah) || !AR_SREV_5416_22_OR_LATER(ah)) {
|
||||
+ struct ar5416IniArray *addac = &ah->iniAddac;
|
||||
+ u32 size = sizeof(u32) * addac->ia_rows * addac->ia_columns;
|
||||
+ u32 *data;
|
||||
+
|
||||
+ data = kmalloc(size, GFP_KERNEL);
|
||||
+ if (!data)
|
||||
+ return;
|
||||
+
|
||||
+ memcpy(data, addac->ia_array, size);
|
||||
+ addac->ia_array = data;
|
||||
+
|
||||
+ if (!AR_SREV_5416_22_OR_LATER(ah)) {
|
||||
+ /* override CLKDRV value */
|
||||
+ INI_RA(addac, 31,1) = 0;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
/* Support for Japan ch.14 (2484) spread */
|
||||
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
|
||||
index 6a29004..c8261d4 100644
|
||||
--- a/drivers/net/wireless/ath/ath9k/hw.h
|
||||
+++ b/drivers/net/wireless/ath/ath9k/hw.h
|
||||
@@ -940,7 +940,6 @@ struct ath_hw {
|
||||
u32 *analogBank6Data;
|
||||
u32 *analogBank6TPCData;
|
||||
u32 *analogBank7Data;
|
||||
- u32 *addac5416_21;
|
||||
u32 *bank6Temp;
|
||||
|
||||
u8 txpower_limit;
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
From 4f3d09de38d234ce7ffba5ec5a7e6704f983d375 Mon Sep 17 00:00:00 2001
|
||||
From: John W. Linville <linville@tuxdriver.com>
|
||||
Date: Wed, 11 Jan 2012 15:50:15 -0500
|
||||
Subject: [PATCH 5/8] b43: add option to avoid duplicating device support with
|
||||
brcmsmac
|
||||
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/b43/Kconfig | 6 ++++++
|
||||
drivers/net/wireless/b43/main.c | 2 ++
|
||||
2 files changed, 8 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/b43/Kconfig b/drivers/net/wireless/b43/Kconfig
|
||||
index b97a40e..3876c7e 100644
|
||||
--- a/drivers/net/wireless/b43/Kconfig
|
||||
+++ b/drivers/net/wireless/b43/Kconfig
|
||||
@@ -31,6 +31,12 @@ config B43_BCMA
|
||||
depends on B43 && BCMA
|
||||
default y
|
||||
|
||||
+config B43_BCMA_EXTRA
|
||||
+ bool "Hardware support that overlaps with the brcmsmac driver"
|
||||
+ depends on B43_BCMA
|
||||
+ default n if BRCMSMAC || BRCMSMAC_MODULE
|
||||
+ default y
|
||||
+
|
||||
config B43_SSB
|
||||
bool
|
||||
depends on B43 && SSB
|
||||
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
|
||||
index b91f28e..23ffb1b 100644
|
||||
--- a/drivers/net/wireless/b43/main.c
|
||||
+++ b/drivers/net/wireless/b43/main.c
|
||||
@@ -116,8 +116,10 @@ MODULE_PARM_DESC(pio, "Use PIO accesses by default: 0=DMA, 1=PIO");
|
||||
#ifdef CONFIG_B43_BCMA
|
||||
static const struct bcma_device_id b43_bcma_tbl[] = {
|
||||
BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x11, BCMA_ANY_CLASS),
|
||||
+#ifdef CONFIG_B43_BCMA_EXTRA
|
||||
BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x17, BCMA_ANY_CLASS),
|
||||
BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x18, BCMA_ANY_CLASS),
|
||||
+#endif
|
||||
BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x1D, BCMA_ANY_CLASS),
|
||||
BCMA_CORETABLE_END
|
||||
};
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
From f9721ed2707661af75a414d09cdcd71f99a13f62 Mon Sep 17 00:00:00 2001
|
||||
From: Jesper Juhl <jj@chaosbits.net>
|
||||
Date: Sun, 29 Jan 2012 21:34:04 +0100
|
||||
Subject: [PATCH] bcma: Fix mem leak in bcma_bus_scan()
|
||||
|
||||
bcma_bus_scan() leaks 'struct bcma_device' bytes if
|
||||
bcma_get_next_core() returns error.
|
||||
|
||||
Restructure the code so we always kfree() the memory we allocate to
|
||||
the variable 'core' before it goes out of scope.
|
||||
|
||||
Signed-off-by: Jesper Juhl <jj@chaosbits.net>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/bcma/scan.c | 19 +++++++++++--------
|
||||
1 files changed, 11 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/drivers/bcma/scan.c b/drivers/bcma/scan.c
|
||||
index cad9948..3a2f672 100644
|
||||
--- a/drivers/bcma/scan.c
|
||||
+++ b/drivers/bcma/scan.c
|
||||
@@ -399,15 +399,18 @@ int bcma_bus_scan(struct bcma_bus *bus)
|
||||
core->bus = bus;
|
||||
|
||||
err = bcma_get_next_core(bus, &eromptr, NULL, core_num, core);
|
||||
- if (err == -ENODEV) {
|
||||
- core_num++;
|
||||
- continue;
|
||||
- } else if (err == -ENXIO)
|
||||
- continue;
|
||||
- else if (err == -ESPIPE)
|
||||
- break;
|
||||
- else if (err < 0)
|
||||
+ if (err < 0) {
|
||||
+ kfree(core);
|
||||
+ if (err == -ENODEV) {
|
||||
+ core_num++;
|
||||
+ continue;
|
||||
+ } else if (err == -ENXIO) {
|
||||
+ continue;
|
||||
+ } else if (err == -ESPIPE) {
|
||||
+ break;
|
||||
+ }
|
||||
return err;
|
||||
+ }
|
||||
|
||||
core->core_index = core_num++;
|
||||
bus->nr_cores++;
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
From 2e6b411971de727a5bcea4323331fdaa70a81b11 Mon Sep 17 00:00:00 2001
|
||||
From: Henrik Rydberg <rydberg@euromail.se>
|
||||
Date: Tue, 31 Jan 2012 14:22:15 -0500
|
||||
Subject: [PATCH] bcma: don't fail for bad SPROM CRC
|
||||
|
||||
The brcmsmac driver is now using the bcma SPROM CRC check, which does
|
||||
not recognize all chipsets that were functional prior to the switch. In
|
||||
particular, the current code bails out on odd CRC errors in recent
|
||||
Macbooks. This patch ignores those errors, with the argument that an
|
||||
unrecognized SPROM should be treated similarly to a non-existing one.
|
||||
|
||||
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/bcma/main.c | 4 +---
|
||||
1 files changed, 1 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c
|
||||
index febbc0a..ec31f7d 100644
|
||||
--- a/drivers/bcma/main.c
|
||||
+++ b/drivers/bcma/main.c
|
||||
@@ -169,10 +169,8 @@ int bcma_bus_register(struct bcma_bus *bus)
|
||||
err = bcma_sprom_get(bus);
|
||||
if (err == -ENOENT) {
|
||||
pr_err("No SPROM available\n");
|
||||
- } else if (err) {
|
||||
+ } else if (err)
|
||||
pr_err("Failed to get SPROM: %d\n", err);
|
||||
- return -ENOENT;
|
||||
- }
|
||||
|
||||
/* Register found cores */
|
||||
bcma_register_cores(bus);
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
From 85091fc0a75653e239dc8379658515e577544927 Mon Sep 17 00:00:00 2001
|
||||
From: Arend van Spriel <arend@broadcom.com>
|
||||
Date: Thu, 23 Feb 2012 18:38:22 +0100
|
||||
Subject: [PATCH] brcm80211: smac: fix endless retry of A-MPDU transmissions
|
||||
|
||||
The A-MPDU code checked against a retry limit, but it was using
|
||||
the wrong variable to do so. This patch fixes this to assure
|
||||
proper retry mechanism.
|
||||
|
||||
This problem had a side-effect causing the mac80211 flush callback
|
||||
to remain waiting forever as well. That side effect has been fixed
|
||||
by commit by Stanislaw Gruszka:
|
||||
|
||||
commit f96b08a7e6f69c0f0a576554df3df5b1b519c479
|
||||
Date: Tue Jan 17 12:38:50 2012 +0100
|
||||
|
||||
brcmsmac: fix tx queue flush infinite loop
|
||||
|
||||
Reference:
|
||||
https://bugzilla.kernel.org/show_bug.cgi?id=42576
|
||||
|
||||
Cc: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
|
||||
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
|
||||
Signed-off-by: Arend van Spriel <arend@broadcom.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/brcm80211/brcmsmac/ampdu.c | 6 +-----
|
||||
1 files changed, 1 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c b/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c
|
||||
index 90911ee..9265226 100644
|
||||
--- a/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c
|
||||
+++ b/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c
|
||||
@@ -1051,17 +1051,13 @@ brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb,
|
||||
}
|
||||
/* either retransmit or send bar if ack not recd */
|
||||
if (!ack_recd) {
|
||||
- struct ieee80211_tx_rate *txrate =
|
||||
- tx_info->status.rates;
|
||||
- if (retry && (txrate[0].count < (int)retry_limit)) {
|
||||
+ if (retry && (ini->txretry[index] < (int)retry_limit)) {
|
||||
ini->txretry[index]++;
|
||||
ini->tx_in_transit--;
|
||||
/*
|
||||
* Use high prededence for retransmit to
|
||||
* give some punch
|
||||
*/
|
||||
- /* brcms_c_txq_enq(wlc, scb, p,
|
||||
- * BRCMS_PRIO_TO_PREC(tid)); */
|
||||
brcms_c_txq_enq(wlc, scb, p,
|
||||
BRCMS_PRIO_TO_HI_PREC(tid));
|
||||
} else {
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
From 2b0a53d51b5f263bb581bbdb40ebb9f7e09609b1 Mon Sep 17 00:00:00 2001
|
||||
From: Arend van Spriel <arend@broadcom.com>
|
||||
Date: Thu, 23 Feb 2012 18:38:23 +0100
|
||||
Subject: [PATCH] brcm80211: smac: only print block-ack timeout message at
|
||||
trace level
|
||||
|
||||
In regular use block-ack timeouts can happen so it does not make
|
||||
sense to fill the log with these messages.
|
||||
|
||||
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
|
||||
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
|
||||
Signed-off-by: Arend van Spriel <arend@broadcom.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/brcm80211/brcmsmac/ampdu.c | 6 +++---
|
||||
1 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c b/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c
|
||||
index 9265226..30b5887 100644
|
||||
--- a/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c
|
||||
+++ b/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c
|
||||
@@ -1070,9 +1070,9 @@ brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb,
|
||||
IEEE80211_TX_STAT_AMPDU_NO_BACK;
|
||||
skb_pull(p, D11_PHY_HDR_LEN);
|
||||
skb_pull(p, D11_TXH_LEN);
|
||||
- wiphy_err(wiphy, "%s: BA Timeout, seq %d, in_"
|
||||
- "transit %d\n", "AMPDU status", seq,
|
||||
- ini->tx_in_transit);
|
||||
+ BCMMSG(wiphy,
|
||||
+ "BA Timeout, seq %d, in_transit %d\n",
|
||||
+ seq, ini->tx_in_transit);
|
||||
ieee80211_tx_status_irqsafe(wlc->pub->ieee_hw,
|
||||
p);
|
||||
}
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
From f96b08a7e6f69c0f0a576554df3df5b1b519c479 Mon Sep 17 00:00:00 2001
|
||||
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
Date: Tue, 17 Jan 2012 12:38:50 +0100
|
||||
Subject: [PATCH 2/8] brcmsmac: fix tx queue flush infinite loop
|
||||
|
||||
This patch workaround live deadlock problem caused by infinite loop
|
||||
in brcms_c_wait_for_tx_completion(). I do not consider the patch as
|
||||
the proper fix, which should fix the real reason of tx queue flush
|
||||
failure, but patch helps with system lockup.
|
||||
|
||||
Reference:
|
||||
https://bugzilla.kernel.org/show_bug.cgi?id=42576
|
||||
|
||||
Reported-and-tested-by: Patrick <ragamuffin@datacomm.ch>
|
||||
Cc: stable@vger.kernel.org # 3.2+
|
||||
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/brcm80211/brcmsmac/main.c | 10 +++++++++-
|
||||
1 files changed, 9 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/main.c b/drivers/net/wireless/brcm80211/brcmsmac/main.c
|
||||
index f7ed340..f6affc6 100644
|
||||
--- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
|
||||
+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
|
||||
@@ -7981,13 +7981,21 @@ int brcms_c_get_curband(struct brcms_c_info *wlc)
|
||||
|
||||
void brcms_c_wait_for_tx_completion(struct brcms_c_info *wlc, bool drop)
|
||||
{
|
||||
+ int timeout = 20;
|
||||
+
|
||||
/* flush packet queue when requested */
|
||||
if (drop)
|
||||
brcmu_pktq_flush(&wlc->pkt_queue->q, false, NULL, NULL);
|
||||
|
||||
/* wait for queue and DMA fifos to run dry */
|
||||
- while (!pktq_empty(&wlc->pkt_queue->q) || brcms_txpktpendtot(wlc) > 0)
|
||||
+ while (!pktq_empty(&wlc->pkt_queue->q) || brcms_txpktpendtot(wlc) > 0) {
|
||||
brcms_msleep(wlc->wl, 1);
|
||||
+
|
||||
+ if (--timeout == 0)
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ WARN_ON_ONCE(timeout == 0);
|
||||
}
|
||||
|
||||
void brcms_c_set_beacon_listen_interval(struct brcms_c_info *wlc, u8 interval)
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
diff -up compat-wireless-3.3-rc1-2/config.mk.orig compat-wireless-3.3-rc1-2/config.mk
|
||||
--- compat-wireless-3.3-rc1-2/config.mk.orig 2012-01-21 02:00:21.000000000 -0500
|
||||
+++ compat-wireless-3.3-rc1-2/config.mk 2012-01-24 15:16:38.204409844 -0500
|
||||
@@ -14,6 +14,9 @@ else
|
||||
include $(KLIB_BUILD)/.config
|
||||
endif
|
||||
|
||||
+# Enable SSB module (needs to be visible in compat_autoconf.h)
|
||||
+CONFIG_SSB=m
|
||||
+
|
||||
ifneq ($(wildcard $(KLIB_BUILD)/Makefile),)
|
||||
|
||||
COMPAT_LATEST_VERSION = 3
|
||||
diff -up compat-wireless-3.3-rc1-2/drivers/net/ethernet/atheros/Makefile.orig compat-wireless-3.3-rc1-2/drivers/net/ethernet/atheros/Makefile
|
||||
--- compat-wireless-3.3-rc1-2/drivers/net/ethernet/atheros/Makefile.orig 2012-01-21 02:08:39.000000000 -0500
|
||||
+++ compat-wireless-3.3-rc1-2/drivers/net/ethernet/atheros/Makefile 2012-01-24 15:16:38.204409844 -0500
|
||||
@@ -2,7 +2,7 @@
|
||||
# Makefile for the Atheros network device drivers.
|
||||
#
|
||||
|
||||
-obj-$(CONFIG_ATL1) += atlx/
|
||||
-obj-$(CONFIG_ATL2) += atlx/
|
||||
-obj-$(CONFIG_ATL1E) += atl1e/
|
||||
-obj-$(CONFIG_ATL1C) += atl1c/
|
||||
+#obj-$(CONFIG_ATL1) += atlx/
|
||||
+#obj-$(CONFIG_ATL2) += atlx/
|
||||
+#obj-$(CONFIG_ATL1E) += atl1e/
|
||||
+#obj-$(CONFIG_ATL1C) += atl1c/
|
||||
diff -up compat-wireless-3.3-rc1-2/drivers/net/usb/Makefile.orig compat-wireless-3.3-rc1-2/drivers/net/usb/Makefile
|
||||
--- compat-wireless-3.3-rc1-2/drivers/net/usb/Makefile.orig 2012-01-21 02:08:39.000000000 -0500
|
||||
+++ compat-wireless-3.3-rc1-2/drivers/net/usb/Makefile 2012-01-24 15:16:38.205409832 -0500
|
||||
@@ -2,7 +2,7 @@
|
||||
# Makefile for USB Network drivers
|
||||
#
|
||||
|
||||
-obj-$(CONFIG_USB_NET_COMPAT_CDCETHER) += cdc_ether.o
|
||||
-obj-$(CONFIG_USB_NET_COMPAT_RNDIS_HOST) += rndis_host.o
|
||||
-obj-$(CONFIG_USB_COMPAT_USBNET) += usbnet.o
|
||||
+#obj-$(CONFIG_USB_NET_COMPAT_CDCETHER) += cdc_ether.o
|
||||
+#obj-$(CONFIG_USB_NET_COMPAT_RNDIS_HOST) += rndis_host.o
|
||||
+#obj-$(CONFIG_USB_COMPAT_USBNET) += usbnet.o
|
||||
|
||||
diff -up compat-wireless-3.3-rc1-2/Makefile.orig compat-wireless-3.3-rc1-2/Makefile
|
||||
--- compat-wireless-3.3-rc1-2/Makefile.orig 2012-01-21 02:00:21.000000000 -0500
|
||||
+++ compat-wireless-3.3-rc1-2/Makefile 2012-01-24 15:17:34.524705743 -0500
|
||||
@@ -10,8 +10,8 @@ export KLIB_BUILD ?= $(KLIB)/build
|
||||
MODPROBE := /sbin/modprobe
|
||||
|
||||
ifneq ($(wildcard $(MODPROBE)),)
|
||||
-MADWIFI=$(shell $(MODPROBE) -l ath_pci)
|
||||
-OLD_IWL=$(shell $(MODPROBE) -l iwl4965)
|
||||
+MADWIFI=""
|
||||
+OLD_IWL=""
|
||||
endif
|
||||
|
||||
DESTDIR?=
|
||||
@@ -44,8 +44,8 @@ endif
|
||||
|
||||
endif
|
||||
|
||||
-obj-$(CONFIG_COMPAT_BLUETOOTH) += net/bluetooth/
|
||||
-obj-$(CONFIG_COMPAT_BLUETOOTH_MODULES) += drivers/bluetooth/
|
||||
+#obj-$(CONFIG_COMPAT_BLUETOOTH) += net/bluetooth/
|
||||
+#obj-$(CONFIG_COMPAT_BLUETOOTH_MODULES) += drivers/bluetooth/
|
||||
|
||||
else
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
diff -up compat-wireless-2011-12-01/Makefile.orig compat-wireless-2011-12-01/Makefile
|
||||
--- compat-wireless-2011-12-01/Makefile.orig 2011-12-14 09:10:01.377297637 -0500
|
||||
+++ compat-wireless-2011-12-01/Makefile 2011-12-14 09:47:36.834100534 -0500
|
||||
@@ -68,7 +68,7 @@ all: modules
|
||||
|
||||
modules: $(CREL_CHECK)
|
||||
@./scripts/check_config.sh
|
||||
- $(MAKE) -C $(KLIB_BUILD) M=$(PWD) modules
|
||||
+ $(MAKE) -C $(KLIB_BUILD) M=$(PWD) INTEGRATED_BUILD=1 modules
|
||||
@touch $@
|
||||
|
||||
bt: $(CREL_CHECK)
|
|
@ -1,710 +0,0 @@
|
|||
diff -up compat-wireless-2011-12-18/compat/crc8.c.orig compat-wireless-2011-12-18/compat/crc8.c
|
||||
--- compat-wireless-2011-12-18/compat/crc8.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/compat/crc8.c 2012-01-05 13:40:29.271996550 -0500
|
||||
@@ -14,6 +14,7 @@
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/module.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/bcma/bcma_private.h.orig compat-wireless-2011-12-18/drivers/bcma/bcma_private.h
|
||||
--- compat-wireless-2011-12-18/drivers/bcma/bcma_private.h.orig 2011-12-18 16:10:34.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/bcma/bcma_private.h 2012-01-05 13:40:29.271996550 -0500
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef LINUX_BCMA_PRIVATE_H_
|
||||
#define LINUX_BCMA_PRIVATE_H_
|
||||
|
||||
+#undef pr_fmt
|
||||
#ifndef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
#endif
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/ethernet/broadcom/b44.c.orig compat-wireless-2011-12-18/drivers/net/ethernet/broadcom/b44.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/ethernet/broadcom/b44.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/ethernet/broadcom/b44.c 2012-01-05 13:40:29.273996525 -0500
|
||||
@@ -10,6 +10,7 @@
|
||||
* Distribute under GPL.
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/kernel.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c.orig compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c.orig 2012-01-05 13:44:54.137685272 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c 2012-01-05 13:44:56.589654617 -0500
|
||||
@@ -16,6 +16,7 @@
|
||||
* File contents: support functions for PCI/PCIe
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/delay.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/dma.c.orig compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/dma.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/dma.c.orig 2012-01-05 13:44:23.579067307 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/brcm80211/brcmsmac/dma.c 2012-01-05 13:44:43.324820451 -0500
|
||||
@@ -14,6 +14,7 @@
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/slab.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/3945-mac.c.orig compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/3945-mac.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/3945-mac.c.orig 2012-01-05 13:41:22.852326703 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/3945-mac.c 2012-01-05 13:41:31.209222227 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/kernel.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/4965-mac.c.orig compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/4965-mac.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/4965-mac.c.orig 2012-01-05 13:41:47.962012787 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/iwlegacy/4965-mac.c 2012-01-05 13:41:41.547092984 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/kernel.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/cfg.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/cfg.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/cfg.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/cfg.c 2012-01-05 13:40:44.681803897 -0500
|
||||
@@ -6,6 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/hardirq.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_cs.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_cs.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_cs.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_cs.c 2012-01-05 13:40:44.682803885 -0500
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/module.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_sdio.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_sdio.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_sdio.c.orig 2011-12-18 16:10:36.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_sdio.c 2012-01-05 13:40:44.683803873 -0500
|
||||
@@ -26,6 +26,7 @@
|
||||
* if_sdio_card_to_host() to pad the data.
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/kernel.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_spi.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_spi.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_spi.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_spi.c 2012-01-05 13:40:44.685803849 -0500
|
||||
@@ -17,6 +17,7 @@
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/hardirq.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_usb.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_usb.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_usb.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/if_usb.c 2012-01-05 13:40:44.686803837 -0500
|
||||
@@ -2,6 +2,7 @@
|
||||
* This file contains functions used in USB interface module.
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/delay.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/main.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/main.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/main.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/main.c 2012-01-05 13:40:44.687803825 -0500
|
||||
@@ -4,6 +4,7 @@
|
||||
* thread etc..
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/module.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/mesh.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/mesh.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/mesh.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/mesh.c 2012-01-05 13:40:44.688803813 -0500
|
||||
@@ -1,3 +1,4 @@
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/delay.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas/rx.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas/rx.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas/rx.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas/rx.c 2012-01-05 13:40:44.689803801 -0500
|
||||
@@ -2,6 +2,7 @@
|
||||
* This file contains the handling of RX in wlan driver.
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/etherdevice.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/cmd.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/cmd.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/cmd.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/cmd.c 2012-01-05 13:40:44.690803789 -0500
|
||||
@@ -7,6 +7,7 @@
|
||||
* the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
*/
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/hardirq.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/if_usb.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/if_usb.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/if_usb.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/if_usb.c 2012-01-05 13:40:44.691803776 -0500
|
||||
@@ -9,6 +9,7 @@
|
||||
*/
|
||||
#define DRV_NAME "lbtf_usb"
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include "libertas_tf.h"
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/main.c.orig compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/main.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/main.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/libertas_tf/main.c 2012-01-05 13:40:44.692803763 -0500
|
||||
@@ -7,6 +7,7 @@
|
||||
* the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
*/
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/hardirq.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/base.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/base.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/base.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/base.c 2012-01-05 13:40:44.693803750 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/ip.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/cam.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/cam.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/cam.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/cam.c 2012-01-05 13:40:44.694803737 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/export.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c 2012-01-05 13:40:44.694803737 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/firmware.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c 2012-01-05 13:40:44.695803725 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include "../wifi.h"
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c 2012-01-05 13:40:44.695803725 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/module.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192de/sw.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192de/sw.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192de/sw.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192de/sw.c 2012-01-05 13:40:44.695803725 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/vmalloc.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/hw.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/hw.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/hw.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/hw.c 2012-01-05 13:40:44.696803713 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include "../wifi.h"
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/phy.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/phy.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/phy.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/phy.c 2012-01-05 13:40:44.696803713 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include "../wifi.h"
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/rf.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/rf.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/rf.c 2012-01-05 13:40:44.697803701 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include "../wifi.h"
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/sw.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/sw.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/rtl8192se/sw.c 2012-01-05 13:40:44.697803701 -0500
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/vmalloc.h>
|
||||
diff -up compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/usb.c.orig compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/usb.c
|
||||
--- compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/usb.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/drivers/net/wireless/rtlwifi/usb.c 2012-01-05 13:40:44.697803701 -0500
|
||||
@@ -25,6 +25,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/usb.h>
|
||||
diff -up compat-wireless-2011-12-18/net/wireless/core.c.orig compat-wireless-2011-12-18/net/wireless/core.c
|
||||
--- compat-wireless-2011-12-18/net/wireless/core.c.orig 2011-12-18 16:10:35.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/net/wireless/core.c 2012-01-05 13:40:44.698803689 -0500
|
||||
@@ -4,6 +4,7 @@
|
||||
* Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/if.h>
|
||||
diff -up compat-wireless-2011-12-18/net/wireless/lib80211.c.orig compat-wireless-2011-12-18/net/wireless/lib80211.c
|
||||
--- compat-wireless-2011-12-18/net/wireless/lib80211.c.orig 2011-12-18 16:10:34.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/net/wireless/lib80211.c 2012-01-05 13:40:44.698803689 -0500
|
||||
@@ -13,6 +13,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/module.h>
|
||||
diff -up compat-wireless-2011-12-18/net/wireless/lib80211_crypt_tkip.c.orig compat-wireless-2011-12-18/net/wireless/lib80211_crypt_tkip.c
|
||||
--- compat-wireless-2011-12-18/net/wireless/lib80211_crypt_tkip.c.orig 2011-12-18 16:10:34.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/net/wireless/lib80211_crypt_tkip.c 2012-01-05 13:40:44.698803689 -0500
|
||||
@@ -10,6 +10,7 @@
|
||||
* more details.
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/err.h>
|
||||
diff -up compat-wireless-2011-12-18/net/wireless/reg.c.orig compat-wireless-2011-12-18/net/wireless/reg.c
|
||||
--- compat-wireless-2011-12-18/net/wireless/reg.c.orig 2011-12-18 16:10:34.000000000 -0500
|
||||
+++ compat-wireless-2011-12-18/net/wireless/reg.c 2012-01-05 13:40:44.699803676 -0500
|
||||
@@ -33,6 +33,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#undef pr_fmt
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/kernel.h>
|
||||
diff -up compat-wireless-2011-12-18/patches/98-pr_fmt.patch.orig compat-wireless-2011-12-18/patches/98-pr_fmt.patch
|
||||
--- compat-wireless-2011-12-18/patches/98-pr_fmt.patch.orig 2012-01-05 13:39:36.552655633 -0500
|
||||
+++ compat-wireless-2011-12-18/patches/98-pr_fmt.patch 2012-01-05 13:39:36.553655620 -0500
|
||||
@@ -0,0 +1,346 @@
|
||||
+The way the compat-* header files are included causes the default
|
||||
+pr_fmt definition from <linux/kernel.h> to be evaluated for every file.
|
||||
+Files that define pr_fmt then generate a lot of build SPAM about
|
||||
+pr_fmt being redefined.
|
||||
+
|
||||
+Eliminate the build noise by preemptively undefining pr_fmt in those
|
||||
+files that define it.
|
||||
+
|
||||
+diff -up compat-wireless-3.2-rc1-1/compat/crc8.c.pr_fmt compat-wireless-3.2-rc1-1/compat/crc8.c
|
||||
+--- compat-wireless-3.2-rc1-1/compat/crc8.c.pr_fmt 2011-11-18 15:08:04.497812086 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/compat/crc8.c 2011-11-18 15:20:09.450522691 -0500
|
||||
+@@ -14,6 +14,7 @@
|
||||
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
+ */
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/module.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/bcma/bcma_private.h.pr_fmt compat-wireless-3.2-rc1-1/drivers/bcma/bcma_private.h
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/bcma/bcma_private.h.pr_fmt 2011-11-18 15:08:04.522323679 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/bcma/bcma_private.h 2011-11-18 15:20:09.451522757 -0500
|
||||
+@@ -1,6 +1,7 @@
|
||||
+ #ifndef LINUX_BCMA_PRIVATE_H_
|
||||
+ #define LINUX_BCMA_PRIVATE_H_
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #ifndef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+ #endif
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/ethernet/broadcom/b44.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/ethernet/broadcom/b44.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/ethernet/broadcom/b44.c.pr_fmt 2011-11-18 15:08:04.529757401 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/ethernet/broadcom/b44.c 2011-11-18 15:20:09.453522618 -0500
|
||||
+@@ -10,6 +10,7 @@
|
||||
+ * Distribute under GPL.
|
||||
+ */
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/kernel.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl3945-base.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl3945-base.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl3945-base.c.pr_fmt 2011-11-18 15:08:04.531811389 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl3945-base.c 2011-11-18 15:20:09.455522411 -0500
|
||||
+@@ -27,6 +27,7 @@
|
||||
+ *
|
||||
+ *****************************************************************************/
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/kernel.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl4965-base.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl4965-base.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl4965-base.c.pr_fmt 2011-11-18 15:08:04.533811528 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/iwlegacy/iwl4965-base.c 2011-11-18 15:20:09.456520247 -0500
|
||||
+@@ -27,6 +27,7 @@
|
||||
+ *
|
||||
+ *****************************************************************************/
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/kernel.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/cfg.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/cfg.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/cfg.c.pr_fmt 2011-11-18 15:08:04.534811319 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/cfg.c 2011-11-18 15:20:09.456520247 -0500
|
||||
+@@ -6,6 +6,7 @@
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/hardirq.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_cs.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_cs.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_cs.c.pr_fmt 2011-11-18 15:08:04.534811319 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_cs.c 2011-11-18 15:20:09.457520945 -0500
|
||||
+@@ -21,6 +21,7 @@
|
||||
+
|
||||
+ */
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/module.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_sdio.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_sdio.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_sdio.c.pr_fmt 2011-11-18 15:08:04.535829198 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_sdio.c 2011-11-18 15:20:09.457520945 -0500
|
||||
+@@ -26,6 +26,7 @@
|
||||
+ * if_sdio_card_to_host() to pad the data.
|
||||
+ */
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/kernel.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_spi.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_spi.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_spi.c.pr_fmt 2011-11-18 15:08:04.536811878 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_spi.c 2011-11-18 15:20:09.457520945 -0500
|
||||
+@@ -17,6 +17,7 @@
|
||||
+ * (at your option) any later version.
|
||||
+ */
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/hardirq.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_usb.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_usb.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_usb.c.pr_fmt 2011-11-18 15:08:04.536811878 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/if_usb.c 2011-11-18 15:20:09.458521084 -0500
|
||||
+@@ -2,6 +2,7 @@
|
||||
+ * This file contains functions used in USB interface module.
|
||||
+ */
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/delay.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/main.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/main.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/main.c.pr_fmt 2011-11-18 15:08:04.537812436 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/main.c 2011-11-18 15:20:09.458521084 -0500
|
||||
+@@ -4,6 +4,7 @@
|
||||
+ * thread etc..
|
||||
+ */
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/module.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/mesh.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/mesh.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/mesh.c.pr_fmt 2011-11-18 15:08:04.537812436 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/mesh.c 2011-11-18 15:20:09.458521084 -0500
|
||||
+@@ -1,3 +1,4 @@
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/delay.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/rx.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/rx.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/rx.c.pr_fmt 2011-11-18 15:08:04.538812017 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas/rx.c 2011-11-18 15:20:09.459520455 -0500
|
||||
+@@ -2,6 +2,7 @@
|
||||
+ * This file contains the handling of RX in wlan driver.
|
||||
+ */
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/etherdevice.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/cmd.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/cmd.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/cmd.c.pr_fmt 2011-11-18 15:08:04.544819700 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/cmd.c 2011-11-18 15:20:09.459520455 -0500
|
||||
+@@ -7,6 +7,7 @@
|
||||
+ * the Free Software Foundation; either version 2 of the License, or (at
|
||||
+ * your option) any later version.
|
||||
+ */
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/hardirq.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/if_usb.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/if_usb.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/if_usb.c.pr_fmt 2011-11-18 15:08:04.545747064 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/if_usb.c 2011-11-18 15:20:09.459520455 -0500
|
||||
+@@ -9,6 +9,7 @@
|
||||
+ */
|
||||
+ #define DRV_NAME "lbtf_usb"
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include "libertas_tf.h"
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/main.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/main.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/main.c.pr_fmt 2011-11-18 15:08:04.545747064 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/libertas_tf/main.c 2011-11-18 15:20:09.459520455 -0500
|
||||
+@@ -7,6 +7,7 @@
|
||||
+ * the Free Software Foundation; either version 2 of the License, or (at
|
||||
+ * your option) any later version.
|
||||
+ */
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/hardirq.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/base.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/base.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/base.c.pr_fmt 2011-11-18 15:08:04.565011903 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/base.c 2011-11-18 15:20:55.315644844 -0500
|
||||
+@@ -27,6 +27,7 @@
|
||||
+ *
|
||||
+ *****************************************************************************/
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/ip.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/cam.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/cam.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/cam.c.pr_fmt 2011-11-18 15:08:04.565812364 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/cam.c 2011-11-18 15:20:55.322652946 -0500
|
||||
+@@ -27,6 +27,7 @@
|
||||
+ *
|
||||
+ *****************************************************************************/
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/export.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c.pr_fmt 2011-11-18 15:08:04.565812364 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c 2011-11-18 15:20:55.334647078 -0500
|
||||
+@@ -27,6 +27,7 @@
|
||||
+ *
|
||||
+ *****************************************************************************/
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/firmware.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c.pr_fmt 2011-11-18 15:08:04.567811877 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c 2011-11-18 15:20:55.341625637 -0500
|
||||
+@@ -27,6 +27,7 @@
|
||||
+ *
|
||||
+ *****************************************************************************/
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include "../wifi.h"
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c.pr_fmt 2011-11-18 15:08:04.567811877 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c 2011-11-18 15:20:55.342644635 -0500
|
||||
+@@ -27,6 +27,7 @@
|
||||
+ *
|
||||
+ ****************************************************************************/
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/module.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192de/sw.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192de/sw.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192de/sw.c.pr_fmt 2011-11-18 15:08:04.568814042 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192de/sw.c 2011-11-18 15:20:55.350617325 -0500
|
||||
+@@ -27,6 +27,7 @@
|
||||
+ *
|
||||
+ *****************************************************************************/
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/vmalloc.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/hw.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/hw.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/hw.c.pr_fmt 2011-11-18 15:08:04.569828848 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/hw.c 2011-11-18 15:20:55.358645682 -0500
|
||||
+@@ -27,6 +27,7 @@
|
||||
+ *
|
||||
+ *****************************************************************************/
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include "../wifi.h"
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/phy.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/phy.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/phy.c.pr_fmt 2011-11-18 15:08:04.570818023 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/phy.c 2011-11-18 15:20:55.365635904 -0500
|
||||
+@@ -27,6 +27,7 @@
|
||||
+ *
|
||||
+ *****************************************************************************/
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include "../wifi.h"
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/rf.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/rf.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/rf.c.pr_fmt 2011-11-18 15:08:04.571812156 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/rf.c 2011-11-18 15:20:55.371549230 -0500
|
||||
+@@ -27,6 +27,7 @@
|
||||
+ *
|
||||
+ *****************************************************************************/
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include "../wifi.h"
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/sw.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/sw.c.pr_fmt 2011-11-18 15:08:04.571812156 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/rtl8192se/sw.c 2011-11-18 15:20:55.379720621 -0500
|
||||
+@@ -27,6 +27,7 @@
|
||||
+ *
|
||||
+ *****************************************************************************/
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/vmalloc.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/usb.c.pr_fmt compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/usb.c
|
||||
+--- compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/usb.c.pr_fmt 2011-11-18 15:08:04.572718638 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/drivers/net/wireless/rtlwifi/usb.c 2011-11-18 15:20:55.389173129 -0500
|
||||
+@@ -25,6 +25,7 @@
|
||||
+ *
|
||||
+ *****************************************************************************/
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/usb.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/net/wireless/core.c.pr_fmt compat-wireless-3.2-rc1-1/net/wireless/core.c
|
||||
+--- compat-wireless-3.2-rc1-1/net/wireless/core.c.pr_fmt 2011-11-18 15:08:04.573774302 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/net/wireless/core.c 2011-11-18 15:20:55.395647078 -0500
|
||||
+@@ -4,6 +4,7 @@
|
||||
+ * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
|
||||
+ */
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/if.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/net/wireless/lib80211.c.pr_fmt compat-wireless-3.2-rc1-1/net/wireless/lib80211.c
|
||||
+--- compat-wireless-3.2-rc1-1/net/wireless/lib80211.c.pr_fmt 2011-11-18 15:08:04.573774302 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/net/wireless/lib80211.c 2011-11-18 15:20:55.405646450 -0500
|
||||
+@@ -13,6 +13,7 @@
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/module.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/net/wireless/lib80211_crypt_tkip.c.pr_fmt compat-wireless-3.2-rc1-1/net/wireless/lib80211_crypt_tkip.c
|
||||
+--- compat-wireless-3.2-rc1-1/net/wireless/lib80211_crypt_tkip.c.pr_fmt 2011-11-18 15:08:04.574811667 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/net/wireless/lib80211_crypt_tkip.c 2011-11-18 15:20:55.406648475 -0500
|
||||
+@@ -10,6 +10,7 @@
|
||||
+ * more details.
|
||||
+ */
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/err.h>
|
||||
+diff -up compat-wireless-3.2-rc1-1/net/wireless/reg.c.pr_fmt compat-wireless-3.2-rc1-1/net/wireless/reg.c
|
||||
+--- compat-wireless-3.2-rc1-1/net/wireless/reg.c.pr_fmt 2011-11-18 15:08:04.575716473 -0500
|
||||
++++ compat-wireless-3.2-rc1-1/net/wireless/reg.c 2011-11-18 15:20:55.408647986 -0500
|
||||
+@@ -33,6 +33,7 @@
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
++#undef pr_fmt
|
||||
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
+
|
||||
+ #include <linux/kernel.h>
|
|
@ -1,131 +0,0 @@
|
|||
--- linux-2.6/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
|
||||
+++ linux-2.6/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
|
||||
@@ -265,7 +265,6 @@ int rtl92c_download_fw(struct ieee80211_
|
||||
if (!rtlhal->pfirmware)
|
||||
return 1;
|
||||
|
||||
- pr_info("Loading firmware file %s\n", rtlpriv->cfg->fw_name);
|
||||
pfwheader = (struct rtl92c_firmware_header *)rtlhal->pfirmware;
|
||||
pfwdata = (u8 *) rtlhal->pfirmware;
|
||||
fwsize = rtlhal->fwsize;
|
||||
--- linux-2.6/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
|
||||
+++ linux-2.6/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
|
||||
@@ -186,6 +186,7 @@ int rtl92c_init_sw_vars(struct ieee80211
|
||||
memcpy(rtlpriv->rtlhal.pfirmware, firmware->data, firmware->size);
|
||||
rtlpriv->rtlhal.fwsize = firmware->size;
|
||||
release_firmware(firmware);
|
||||
+ pr_info("rtl8192ce: Loaded firmware file %s\n", rtlpriv->cfg->fw_name);
|
||||
|
||||
return 0;
|
||||
}
|
||||
--- linux-2.6/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
|
||||
+++ linux-2.6/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
|
||||
@@ -43,6 +43,8 @@
|
||||
#include "hw.h"
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/module.h>
|
||||
+#include <linux/atomic.h>
|
||||
+#include <linux/types.h>
|
||||
|
||||
MODULE_AUTHOR("Georgia <georgia@realtek.com>");
|
||||
MODULE_AUTHOR("Ziv Huang <ziv_huang@realtek.com>");
|
||||
@@ -51,6 +53,10 @@ MODULE_LICENSE("GPL");
|
||||
MODULE_DESCRIPTION("Realtek 8192C/8188C 802.11n USB wireless");
|
||||
MODULE_FIRMWARE("rtlwifi/rtl8192cufw.bin");
|
||||
|
||||
+static char *rtl8192cu_firmware; /* pointer to firmware */
|
||||
+static int firmware_size;
|
||||
+static atomic_t usage_count;
|
||||
+
|
||||
static int rtl92cu_init_sw_vars(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
@@ -62,12 +68,21 @@ static int rtl92cu_init_sw_vars(struct i
|
||||
rtlpriv->dm.disable_framebursting = false;
|
||||
rtlpriv->dm.thermalvalue = 0;
|
||||
rtlpriv->dbg.global_debuglevel = rtlpriv->cfg->mod_params->debug;
|
||||
- rtlpriv->rtlhal.pfirmware = vmalloc(0x4000);
|
||||
- if (!rtlpriv->rtlhal.pfirmware) {
|
||||
+
|
||||
+ if (rtl8192cu_firmware) {
|
||||
+ /* firmware already loaded - true for suspend/resume
|
||||
+ * and multiple instances of the device */
|
||||
+ rtlpriv->rtlhal.pfirmware = rtl8192cu_firmware;
|
||||
+ rtlpriv->rtlhal.fwsize = firmware_size;
|
||||
+ return 0;
|
||||
+ }
|
||||
+ rtl8192cu_firmware = vzalloc(0x4000);
|
||||
+ if (!rtl8192cu_firmware) {
|
||||
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
|
||||
("Can't alloc buffer for fw.\n"));
|
||||
return 1;
|
||||
}
|
||||
+
|
||||
/* request fw */
|
||||
err = request_firmware(&firmware, rtlpriv->cfg->fw_name,
|
||||
rtlpriv->io.dev);
|
||||
@@ -82,9 +97,14 @@ static int rtl92cu_init_sw_vars(struct i
|
||||
release_firmware(firmware);
|
||||
return 1;
|
||||
}
|
||||
- memcpy(rtlpriv->rtlhal.pfirmware, firmware->data, firmware->size);
|
||||
+ pr_info("rtl8192cu: Loaded firmware from file %s\n",
|
||||
+ rtlpriv->cfg->fw_name);
|
||||
+ memcpy(rtl8192cu_firmware, firmware->data, firmware->size);
|
||||
+ firmware_size = firmware->size;
|
||||
rtlpriv->rtlhal.fwsize = firmware->size;
|
||||
+ rtlpriv->rtlhal.pfirmware = rtl8192cu_firmware;
|
||||
release_firmware(firmware);
|
||||
+ atomic_inc(&usage_count);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -93,12 +113,30 @@ static void rtl92cu_deinit_sw_vars(struc
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
|
||||
- if (rtlpriv->rtlhal.pfirmware) {
|
||||
- vfree(rtlpriv->rtlhal.pfirmware);
|
||||
+ atomic_dec(&usage_count);
|
||||
+ if (!atomic_read(&usage_count) && rtlpriv->rtlhal.pfirmware) {
|
||||
+ vfree(rtl8192cu_firmware);
|
||||
+ rtl8192cu_firmware = NULL;
|
||||
rtlpriv->rtlhal.pfirmware = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_PM_SLEEP
|
||||
+static int rtl8192cu_usb_suspend(struct usb_interface *pusb_intf,
|
||||
+ pm_message_t message)
|
||||
+{
|
||||
+ /* Increase usage_count to Save loaded fw across suspend/resume */
|
||||
+ atomic_inc(&usage_count);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int rtl8192cu_usb_resume(struct usb_interface *pusb_intf)
|
||||
+{
|
||||
+ atomic_dec(&usage_count); /* after resume, decrease usage count */
|
||||
+ return 0;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
static struct rtl_hal_ops rtl8192cu_hal_ops = {
|
||||
.init_sw_vars = rtl92cu_init_sw_vars,
|
||||
.deinit_sw_vars = rtl92cu_deinit_sw_vars,
|
||||
@@ -374,11 +412,10 @@ static struct usb_driver rtl8192cu_drive
|
||||
.disconnect = rtl_usb_disconnect,
|
||||
.id_table = rtl8192c_usb_ids,
|
||||
|
||||
-#ifdef CONFIG_PM
|
||||
- /* .suspend = rtl_usb_suspend, */
|
||||
- /* .resume = rtl_usb_resume, */
|
||||
- /* .reset_resume = rtl8192c_resume, */
|
||||
-#endif /* CONFIG_PM */
|
||||
+#ifdef CONFIG_PM_SLEEP
|
||||
+ .suspend = rtl8192cu_usb_suspend,
|
||||
+ .resume = rtl8192cu_usb_resume,
|
||||
+#endif /* CONFIG_PM_SLEEP */
|
||||
#ifdef CONFIG_AUTOSUSPEND
|
||||
.supports_autosuspend = 1,
|
||||
#endif
|
|
@ -1,29 +0,0 @@
|
|||
# CONFIG_CFG80211 is not set
|
||||
# CONFIG_LIB80211 is not set
|
||||
|
||||
# CONFIG_MAC80211 is not set
|
||||
|
||||
# CONFIG_BCMA is not set
|
||||
|
||||
#
|
||||
# ssb and b44 share infrastructure with b43
|
||||
#
|
||||
# CONFIG_SSB is not set
|
||||
# CONFIG_B44 is not set
|
||||
|
||||
#
|
||||
# Prevent b43 and brcmsmac from competing
|
||||
#
|
||||
# CONFIG_B43_BCMA is not set
|
||||
|
||||
#
|
||||
# Several wireless drivers have this chip, use the backported driver version
|
||||
#
|
||||
# CONFIG_EEPROM_93CX6 is not set
|
||||
|
||||
#
|
||||
# These have to be turned-on again since compat-wireless does not
|
||||
# provide them...
|
||||
#
|
||||
CONFIG_CRC7=m
|
||||
CONFIG_AVERAGE=y
|
|
@ -1,89 +0,0 @@
|
|||
From 3d29dd9b5b160ba4542a9b8f869a220559e633a0 Mon Sep 17 00:00:00 2001
|
||||
From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Date: Wed, 1 Feb 2012 07:01:32 -0800
|
||||
Subject: [PATCH] iwlwifi: don't mess up QoS counters with non-QoS frames
|
||||
|
||||
In my AMPDU rework, I rely on the sequence numbers of frames. But
|
||||
I didn't check that the frame has a valid tid before updating the
|
||||
tracking counters. As a result, the Tx queues were stalled. People
|
||||
who hit this bug saw that we simply didn't let any data out.
|
||||
|
||||
This bug was introduced in 3.3.
|
||||
|
||||
This patch fixes that and checks that the frame is a QoS frame before
|
||||
looking at its tid and changing the counters.
|
||||
|
||||
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/iwl-agn-tx.c | 12 +++++++++---
|
||||
drivers/net/wireless/iwlwifi/iwl-commands.h | 1 +
|
||||
drivers/net/wireless/iwlwifi/iwl-trans-pcie.c | 1 +
|
||||
3 files changed, 11 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c
|
||||
index 339e8d9..63bbc60 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c
|
||||
@@ -91,6 +91,7 @@ static void iwlagn_tx_cmd_build_basic(struct iwl_priv *priv,
|
||||
tx_cmd->tid_tspec = qc[0] & 0xf;
|
||||
tx_flags &= ~TX_CMD_FLG_SEQ_CTL_MSK;
|
||||
} else {
|
||||
+ tx_cmd->tid_tspec = IWL_TID_NON_QOS;
|
||||
if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ)
|
||||
tx_flags |= TX_CMD_FLG_SEQ_CTL_MSK;
|
||||
else
|
||||
@@ -808,6 +809,8 @@ static void iwl_rx_reply_tx_agg(struct iwl_priv *priv,
|
||||
u32 status = le16_to_cpu(tx_resp->status.status);
|
||||
int i;
|
||||
|
||||
+ WARN_ON(tid == IWL_TID_NON_QOS);
|
||||
+
|
||||
if (agg->wait_for_ba)
|
||||
IWL_DEBUG_TX_REPLY(priv,
|
||||
"got tx response w/o block-ack\n");
|
||||
@@ -1035,10 +1038,13 @@ int iwlagn_rx_reply_tx(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb,
|
||||
}
|
||||
|
||||
__skb_queue_head_init(&skbs);
|
||||
- priv->tid_data[sta_id][tid].next_reclaimed = next_reclaimed;
|
||||
|
||||
- IWL_DEBUG_TX_REPLY(priv, "Next reclaimed packet:%d",
|
||||
- next_reclaimed);
|
||||
+ 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",
|
||||
+ next_reclaimed);
|
||||
+ }
|
||||
|
||||
/*we can free until ssn % q.n_bd not inclusive */
|
||||
WARN_ON(iwl_trans_reclaim(trans(priv), sta_id, tid, txq_id,
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
|
||||
index 265de39..f822ac4 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-commands.h
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-commands.h
|
||||
@@ -815,6 +815,7 @@ struct iwl_qosparam_cmd {
|
||||
|
||||
#define IWL_INVALID_STATION 255
|
||||
#define IWL_MAX_TID_COUNT 8
|
||||
+#define IWL_TID_NON_QOS IWL_MAX_TID_COUNT
|
||||
|
||||
#define STA_FLG_TX_RATE_MSK cpu_to_le32(1 << 2)
|
||||
#define STA_FLG_PWR_SAVE_MSK cpu_to_le32(1 << 8)
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
|
||||
index 67d6e32..324d06d 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
|
||||
@@ -1262,6 +1262,7 @@ static int iwl_trans_pcie_reclaim(struct iwl_trans *trans, int sta_id, int tid,
|
||||
txq->time_stamp = jiffies;
|
||||
|
||||
if (unlikely(txq_id >= IWLAGN_FIRST_AMPDU_QUEUE &&
|
||||
+ tid != IWL_TID_NON_QOS &&
|
||||
txq_id != trans_pcie->agg_txq[sta_id][tid])) {
|
||||
/*
|
||||
* FIXME: this is a uCode bug which need to be addressed,
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
From b49ba04a3a0382e7314d990707c21094c410425a Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Berg <johannes.berg@intel.com>
|
||||
Date: Thu, 19 Jan 2012 08:20:57 -0800
|
||||
Subject: [PATCH 8/8] iwlwifi: fix PCI-E transport "inta" race
|
||||
|
||||
When an interrupt comes in, we read the reason
|
||||
bits and collect them into "trans_pcie->inta".
|
||||
This happens with the spinlock held. However,
|
||||
there's a bug resetting this variable -- that
|
||||
happens after the spinlock has been released.
|
||||
This means that it is possible for interrupts
|
||||
to be missed if the reset happens after some
|
||||
other interrupt reasons were already added to
|
||||
the variable.
|
||||
|
||||
I found this by code inspection, looking for a
|
||||
reason that we sometimes see random commands
|
||||
time out. It seems possible that this causes
|
||||
such behaviour, but I can't say for sure right
|
||||
now since it happens extremely infrequently on
|
||||
my test systems.
|
||||
|
||||
Cc: stable@vger.kernel.org [3.2]
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c | 4 ++--
|
||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
|
||||
index 752493f..65d1f05 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
|
||||
@@ -972,11 +972,11 @@ void iwl_irq_tasklet(struct iwl_trans *trans)
|
||||
}
|
||||
#endif
|
||||
|
||||
- spin_unlock_irqrestore(&trans->shrd->lock, flags);
|
||||
-
|
||||
/* saved interrupt in inta variable now we can reset trans_pcie->inta */
|
||||
trans_pcie->inta = 0;
|
||||
|
||||
+ spin_unlock_irqrestore(&trans->shrd->lock, flags);
|
||||
+
|
||||
/* Now service all interrupt bits discovered above. */
|
||||
if (inta & CSR_INT_BIT_HW_ERR) {
|
||||
IWL_ERR(trans, "Hardware error detected. Restarting.\n");
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
From 5dcbf480473f6c3f06ad2426b7517038a2a18911 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Berg <johannes.berg@intel.com>
|
||||
Date: Fri, 17 Feb 2012 09:47:14 -0800
|
||||
Subject: [PATCH] iwlwifi: fix key removal
|
||||
|
||||
When trying to remove a key, we always send key
|
||||
flags just setting the key type, not including
|
||||
the multicast flag and the key ID. As a result,
|
||||
whenever any key was removed, the unicast key 0
|
||||
would be removed, causing a complete connection
|
||||
loss after the second rekey (the first doesn't
|
||||
cause a key removal). Fix the key removal code
|
||||
to include the key ID and multicast flag, thus
|
||||
removing the correct key.
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Reported-by: Alexander Schnaidt <alex.schnaidt@googlemail.com>
|
||||
Tested-by: Alexander Schnaidt <alex.schnaidt@googlemail.com>
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/iwl-agn-sta.c | 10 +++++++++-
|
||||
1 files changed, 9 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
|
||||
index 7353826..e483cfa 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
|
||||
@@ -1187,6 +1187,7 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv,
|
||||
unsigned long flags;
|
||||
struct iwl_addsta_cmd sta_cmd;
|
||||
u8 sta_id = iwlagn_key_sta_id(priv, ctx->vif, sta);
|
||||
+ __le16 key_flags;
|
||||
|
||||
/* if station isn't there, neither is the key */
|
||||
if (sta_id == IWL_INVALID_STATION)
|
||||
@@ -1212,7 +1213,14 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv,
|
||||
IWL_ERR(priv, "offset %d not used in uCode key table.\n",
|
||||
keyconf->hw_key_idx);
|
||||
|
||||
- sta_cmd.key.key_flags = STA_KEY_FLG_NO_ENC | STA_KEY_FLG_INVALID;
|
||||
+ key_flags = cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
|
||||
+ key_flags |= STA_KEY_FLG_MAP_KEY_MSK | STA_KEY_FLG_NO_ENC |
|
||||
+ STA_KEY_FLG_INVALID;
|
||||
+
|
||||
+ if (!(keyconf->flags & IEEE80211_KEY_FLAG_PAIRWISE))
|
||||
+ key_flags |= STA_KEY_MULTICAST_MSK;
|
||||
+
|
||||
+ sta_cmd.key.key_flags = key_flags;
|
||||
sta_cmd.key.key_offset = WEP_INVALID_OFFSET;
|
||||
sta_cmd.sta.modify_mask = STA_MODIFY_KEY_MASK;
|
||||
sta_cmd.mode = STA_CONTROL_MODIFY_MSK;
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
From 5fb8c182d26472ea24cbbadb6a3e355d7621cca4 Mon Sep 17 00:00:00 2001
|
||||
From: John W. Linville <linville@tuxdriver.com>
|
||||
Date: Tue, 31 Jan 2012 14:40:49 -0500
|
||||
Subject: [PATCH] iwlwifi: make "Tx aggregation enabled on ra =" be at DEBUG
|
||||
level
|
||||
|
||||
Average users either don't care or they think that message indicates a
|
||||
problem...
|
||||
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/iwl-agn-tx.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c
|
||||
index c664c27..339e8d9 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c
|
||||
@@ -620,7 +620,7 @@ int iwlagn_tx_agg_oper(struct iwl_priv *priv, struct ieee80211_vif *vif,
|
||||
sta_priv->lq_sta.lq.agg_params.agg_frame_cnt_limit =
|
||||
sta_priv->max_agg_bufsize;
|
||||
|
||||
- IWL_INFO(priv, "Tx aggregation enabled on ra = %pM tid = %d\n",
|
||||
+ IWL_DEBUG_HT(priv, "Tx aggregation enabled on ra = %pM tid = %d\n",
|
||||
sta->addr, tid);
|
||||
|
||||
return iwl_send_lq_cmd(priv, ctx,
|
||||
--
|
||||
1.7.4.4
|
||||
|
190
kernel.spec
190
kernel.spec
|
@ -54,7 +54,7 @@ Summary: The Linux kernel
|
|||
# For non-released -rc kernels, this will be appended after the rcX and
|
||||
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
|
||||
#
|
||||
%global baserelease 4
|
||||
%global baserelease 5
|
||||
%global fedora_build %{baserelease}
|
||||
|
||||
# base_sublevel is the kernel version we're starting with and patching
|
||||
|
@ -163,9 +163,6 @@ Summary: The Linux kernel
|
|||
# should we do C=1 builds with sparse
|
||||
%define with_sparse %{?_with_sparse: 1} %{?!_with_sparse: 0}
|
||||
|
||||
# Include driver backports (e.g. compat-wireless) in the kernel build.
|
||||
%define with_backports %{?_without_backports: 0} %{?!_without_backports: 1}
|
||||
|
||||
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
|
||||
# and 0 for rawhide (all kernels are debug kernels).
|
||||
# See also 'make debug' and 'make release'.
|
||||
|
@ -204,20 +201,6 @@ Summary: The Linux kernel
|
|||
# The kernel tarball/base version
|
||||
%define kversion 3.%{base_sublevel}
|
||||
|
||||
# The compat-wireless version
|
||||
%define cwversion 3.3-rc1-2
|
||||
|
||||
#######################################################################
|
||||
# If cwversion is less than kversion, make sure with_backports is
|
||||
# turned-off.
|
||||
#
|
||||
# For rawhide, disable with_backports immediately after a rebase...
|
||||
#
|
||||
# (Uncomment the '#' and both spaces below to disable with_backports.)
|
||||
#
|
||||
# % define with_backports 0
|
||||
#######################################################################
|
||||
|
||||
%define make_target bzImage
|
||||
|
||||
%define KVERREL %{version}-%{release}.%{_target_cpu}
|
||||
|
@ -384,7 +367,6 @@ Summary: The Linux kernel
|
|||
%define make_target image
|
||||
%define kernel_image arch/s390/boot/image
|
||||
%define with_tools 0
|
||||
%define with_backports 0
|
||||
%endif
|
||||
|
||||
%ifarch sparc64
|
||||
|
@ -464,7 +446,6 @@ Summary: The Linux kernel
|
|||
%define with_pae 0
|
||||
%define with_debuginfo 0
|
||||
%define with_tools 0
|
||||
%define with_backports 0
|
||||
%define _enable_debug_packages 0
|
||||
%endif
|
||||
|
||||
|
@ -583,7 +564,6 @@ BuildRequires: rpm-build >= 4.4.2.1-4
|
|||
%endif
|
||||
|
||||
Source0: ftp://ftp.kernel.org/pub/linux/kernel/v3.0/linux-%{kversion}.tar.xz
|
||||
Source1: compat-wireless-%{cwversion}.tar.bz2
|
||||
|
||||
Source11: genkey
|
||||
Source14: find-provides
|
||||
|
@ -617,8 +597,6 @@ Source112: config-arm-kirkwood
|
|||
Source113: config-arm-imx
|
||||
Source114: config-arm-highbank
|
||||
|
||||
Source200: config-backports
|
||||
|
||||
# This file is intentionally left empty in the stock kernel. Its a nicety
|
||||
# added for those wanting to do custom rebuilds with altered config opts.
|
||||
Source1000: config-local
|
||||
|
@ -701,7 +679,6 @@ Patch471: floppy-drop-disable_hlt-warning.patch
|
|||
Patch510: linux-2.6-silence-noise.patch
|
||||
Patch520: quite-apm.patch
|
||||
Patch530: linux-2.6-silence-fbcon-logo.patch
|
||||
Patch540: modpost-add-option-to-allow-external-modules-to-avoi.patch
|
||||
|
||||
Patch700: linux-2.6-e1000-ich9-montevina.patch
|
||||
|
||||
|
@ -824,49 +801,6 @@ Patch21350: x86-ioapic-add-register-checks-for-bogus-io-apic-entries.patch
|
|||
|
||||
Patch22000: weird-root-dentry-name-debug.patch
|
||||
|
||||
# compat-wireless patches
|
||||
Patch50000: compat-wireless-config-fixups.patch
|
||||
Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch
|
||||
Patch50002: compat-wireless-integrated-build.patch
|
||||
Patch50100: compat-wireless-rtl8192cu-Fix-WARNING-on-suspend-resume.patch
|
||||
|
||||
# Pending upstream fixes
|
||||
Patch50101: mac80211-fix-debugfs-key-station-symlink.patch
|
||||
Patch50102: brcmsmac-fix-tx-queue-flush-infinite-loop.patch
|
||||
Patch50103: mac80211-Use-the-right-headroom-size-for-mesh-mgmt-f.patch
|
||||
Patch50105: b43-add-option-to-avoid-duplicating-device-support-w.patch
|
||||
Patch50106: mac80211-update-oper_channel-on-ibss-join.patch
|
||||
Patch50107: mac80211-set-bss_conf.idle-when-vif-is-connected.patch
|
||||
Patch50108: iwlwifi-fix-PCI-E-transport-inta-race.patch
|
||||
Patch50109: bcma-Fix-mem-leak-in-bcma_bus_scan.patch
|
||||
Patch50110: rt2800lib-fix-wrong-128dBm-when-signal-is-stronger-t.patch
|
||||
Patch50111: iwlwifi-make-Tx-aggregation-enabled-on-ra-be-at-DEBU.patch
|
||||
Patch50112: ssb-fix-cardbus-slot-in-hostmode.patch
|
||||
Patch50113: iwlwifi-don-t-mess-up-QoS-counters-with-non-QoS-fram.patch
|
||||
Patch50114: mac80211-timeout-a-single-frame-in-the-rx-reorder-bu.patch
|
||||
Patch50115: ath9k-use-WARN_ON_ONCE-in-ath_rc_get_highest_rix.patch
|
||||
Patch50116: mwifiex-handle-association-failure-case-correctly.patch
|
||||
Patch50117: ath9k-Fix-kernel-panic-during-driver-initilization.patch
|
||||
Patch50118: mwifiex-add-NULL-checks-in-driver-unload-path.patch
|
||||
Patch50119: ath9k-fix-a-WEP-crypto-related-regression.patch
|
||||
Patch50120: ath9k_hw-fix-a-RTS-CTS-timeout-regression.patch
|
||||
Patch50121: bcma-don-t-fail-for-bad-SPROM-CRC.patch
|
||||
Patch50122: zd1211rw-firmware-needs-duration_id-set-to-zero-for-.patch
|
||||
Patch50123: mac80211-Fix-a-rwlock-bad-magic-bug.patch
|
||||
Patch50124: rtlwifi-Modify-rtl_pci_init-to-return-0-on-success.patch
|
||||
Patch50125: mac80211-call-rate-control-only-after-init.patch
|
||||
Patch50126: mac80211-do-not-call-rate-control-.tx_status-before-.patch
|
||||
Patch50127: mwifiex-clear-previous-security-setting-during-assoc.patch
|
||||
Patch50128: ath9k-stop-on-rates-with-idx-1-in-ath9k-rate-control.patch
|
||||
Patch50129: ath9k_hw-prevent-writes-to-const-data-on-AR9160.patch
|
||||
Patch50130: rt2x00-fix-a-possible-NULL-pointer-dereference.patch
|
||||
Patch50131: iwlwifi-fix-key-removal.patch
|
||||
Patch50132: mac80211-zero-initialize-count-field-in-ieee80211_tx.patch
|
||||
Patch50133: mac80211-Fix-a-warning-on-changing-to-monitor-mode-f.patch
|
||||
Patch50134: brcm80211-smac-fix-endless-retry-of-A-MPDU-transmiss.patch
|
||||
Patch50135: brcm80211-smac-only-print-block-ack-timeout-message-.patch
|
||||
|
||||
|
||||
%endif
|
||||
|
||||
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
|
||||
|
@ -1327,16 +1261,6 @@ cp %{SOURCE15} .
|
|||
# Dynamically generate kernel .config files from config-* files
|
||||
make -f %{SOURCE20} VERSION=%{version} configs
|
||||
|
||||
%if %{with_backports}
|
||||
# Turn-off bits provided by compat-wireless
|
||||
for i in %{all_arch_configs}
|
||||
do
|
||||
mv $i $i.tmp
|
||||
./merge.pl %{SOURCE200} $i.tmp > $i
|
||||
rm $i.tmp
|
||||
done
|
||||
%endif
|
||||
|
||||
%if %{?all_arch_configs:1}%{!?all_arch_configs:0}
|
||||
#if a rhel kernel, apply the rhel config options
|
||||
%if 0%{?rhel}
|
||||
|
@ -1454,11 +1378,6 @@ ApplyPatch linux-2.6-silence-noise.patch
|
|||
# Make fbcon not show the penguins with 'quiet'
|
||||
ApplyPatch linux-2.6-silence-fbcon-logo.patch
|
||||
|
||||
%if %{with_backports}
|
||||
# modpost: add option to allow external modules to avoid taint
|
||||
ApplyPatch modpost-add-option-to-allow-external-modules-to-avoi.patch
|
||||
%endif
|
||||
|
||||
# Changes to upstream defaults.
|
||||
|
||||
|
||||
|
@ -1617,72 +1536,14 @@ done
|
|||
# end of kernel config
|
||||
%endif
|
||||
|
||||
# get rid of unwanted files resulting from patch fuzz
|
||||
find . \( -name "*.orig" -o -name "*~" \) -exec rm -f {} \; >/dev/null
|
||||
|
||||
# remove unnecessary SCM files
|
||||
find . -name .gitignore -exec rm -f {} \; >/dev/null
|
||||
|
||||
cd ..
|
||||
|
||||
%if %{with_backports}
|
||||
|
||||
# Always start fresh
|
||||
rm -rf compat-wireless-%{cwversion}
|
||||
|
||||
# Extract the compat-wireless bits
|
||||
%setup -q -n kernel-%{kversion}%{?dist} -T -D -a 1
|
||||
|
||||
cd compat-wireless-%{cwversion}
|
||||
|
||||
ApplyPatch compat-wireless-config-fixups.patch
|
||||
ApplyPatch compat-wireless-pr_fmt-warning-avoidance.patch
|
||||
ApplyPatch compat-wireless-integrated-build.patch
|
||||
|
||||
ApplyPatch compat-wireless-rtl8192cu-Fix-WARNING-on-suspend-resume.patch
|
||||
|
||||
# Pending upstream fixes
|
||||
ApplyPatch mac80211-fix-debugfs-key-station-symlink.patch
|
||||
ApplyPatch brcmsmac-fix-tx-queue-flush-infinite-loop.patch
|
||||
ApplyPatch mac80211-Use-the-right-headroom-size-for-mesh-mgmt-f.patch
|
||||
ApplyPatch b43-add-option-to-avoid-duplicating-device-support-w.patch
|
||||
ApplyPatch mac80211-update-oper_channel-on-ibss-join.patch
|
||||
ApplyPatch mac80211-set-bss_conf.idle-when-vif-is-connected.patch
|
||||
ApplyPatch iwlwifi-fix-PCI-E-transport-inta-race.patch
|
||||
ApplyPatch bcma-Fix-mem-leak-in-bcma_bus_scan.patch
|
||||
ApplyPatch rt2800lib-fix-wrong-128dBm-when-signal-is-stronger-t.patch
|
||||
ApplyPatch iwlwifi-make-Tx-aggregation-enabled-on-ra-be-at-DEBU.patch
|
||||
ApplyPatch ssb-fix-cardbus-slot-in-hostmode.patch
|
||||
ApplyPatch iwlwifi-don-t-mess-up-QoS-counters-with-non-QoS-fram.patch
|
||||
ApplyPatch mac80211-timeout-a-single-frame-in-the-rx-reorder-bu.patch
|
||||
ApplyPatch ath9k-use-WARN_ON_ONCE-in-ath_rc_get_highest_rix.patch
|
||||
ApplyPatch mwifiex-handle-association-failure-case-correctly.patch
|
||||
ApplyPatch ath9k-Fix-kernel-panic-during-driver-initilization.patch
|
||||
ApplyPatch mwifiex-add-NULL-checks-in-driver-unload-path.patch
|
||||
ApplyPatch ath9k-fix-a-WEP-crypto-related-regression.patch
|
||||
ApplyPatch ath9k_hw-fix-a-RTS-CTS-timeout-regression.patch
|
||||
ApplyPatch bcma-don-t-fail-for-bad-SPROM-CRC.patch
|
||||
ApplyPatch zd1211rw-firmware-needs-duration_id-set-to-zero-for-.patch
|
||||
ApplyPatch mac80211-Fix-a-rwlock-bad-magic-bug.patch
|
||||
ApplyPatch rtlwifi-Modify-rtl_pci_init-to-return-0-on-success.patch
|
||||
ApplyPatch mac80211-call-rate-control-only-after-init.patch
|
||||
ApplyPatch mac80211-do-not-call-rate-control-.tx_status-before-.patch
|
||||
ApplyPatch mwifiex-clear-previous-security-setting-during-assoc.patch
|
||||
ApplyPatch ath9k-stop-on-rates-with-idx-1-in-ath9k-rate-control.patch
|
||||
ApplyPatch ath9k_hw-prevent-writes-to-const-data-on-AR9160.patch
|
||||
ApplyPatch rt2x00-fix-a-possible-NULL-pointer-dereference.patch
|
||||
ApplyPatch iwlwifi-fix-key-removal.patch
|
||||
ApplyPatch mac80211-zero-initialize-count-field-in-ieee80211_tx.patch
|
||||
ApplyPatch mac80211-Fix-a-warning-on-changing-to-monitor-mode-f.patch
|
||||
ApplyPatch brcm80211-smac-fix-endless-retry-of-A-MPDU-transmiss.patch
|
||||
ApplyPatch brcm80211-smac-only-print-block-ack-timeout-message-.patch
|
||||
|
||||
ApplyPatch rt2x00_fix_MCU_request_failures.patch
|
||||
|
||||
cd ..
|
||||
|
||||
%endif
|
||||
|
||||
# get rid of unwanted files resulting from patch fuzz
|
||||
find . \( -name "*.orig" -o -name "*~" \) -exec rm -f {} \; >/dev/null
|
||||
|
||||
###
|
||||
### build
|
||||
###
|
||||
|
@ -1805,9 +1666,7 @@ BuildKernel() {
|
|||
# dirs for additional modules per module-init-tools, kbuild/modules.txt
|
||||
mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/extra
|
||||
mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/updates
|
||||
%if %{with_backports}
|
||||
mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/backports
|
||||
%endif
|
||||
|
||||
# first copy everything
|
||||
cp --parents `find -type f -name "Makefile*" -o -name "Kconfig*"` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
|
||||
cp Module.symvers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
|
||||
|
@ -1900,6 +1759,12 @@ BuildKernel() {
|
|||
|
||||
rm -f modinfo modnames
|
||||
|
||||
# remove files that will be auto generated by depmod at rpm -i time
|
||||
for i in alias alias.bin builtin.bin ccwmap dep dep.bin ieee1394map inputmap isapnpmap ofmap pcimap seriomap symbols symbols.bin usbmap
|
||||
do
|
||||
rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$i
|
||||
done
|
||||
|
||||
# Move the devel headers out of the root file system
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/src/kernels
|
||||
mv $RPM_BUILD_ROOT/lib/modules/$KernelVer/build $RPM_BUILD_ROOT/$DevelDir
|
||||
|
@ -1913,32 +1778,6 @@ BuildKernel() {
|
|||
# prune junk from kernel-devel
|
||||
find $RPM_BUILD_ROOT/usr/src/kernels -name ".*.cmd" -exec rm -f {} \;
|
||||
|
||||
%if %{with_backports}
|
||||
|
||||
cd ../compat-wireless-%{cwversion}/
|
||||
|
||||
install -m 644 config.mk \
|
||||
$RPM_BUILD_ROOT/boot/config.mk-compat-wireless-%{cwversion}-$KernelVer
|
||||
|
||||
make -s ARCH=$Arch V=1 %{?_smp_mflags} \
|
||||
KLIB_BUILD=../linux-%{kversion}.%{_target_cpu} \
|
||||
KMODPATH_ARG="INSTALL_MOD_PATH=$RPM_BUILD_ROOT" \
|
||||
KMODDIR="backports" install-modules %{?sparse_mflags}
|
||||
|
||||
# mark modules executable so that strip-to-file can strip them
|
||||
find $RPM_BUILD_ROOT/lib/modules/$KernelVer/backports -name "*.ko" \
|
||||
-type f | xargs --no-run-if-empty chmod u+x
|
||||
|
||||
cd -
|
||||
|
||||
%endif
|
||||
|
||||
# remove files that will be auto generated by depmod at rpm -i time
|
||||
for i in alias alias.bin builtin.bin ccwmap dep dep.bin ieee1394map inputmap isapnpmap ofmap pcimap seriomap symbols symbols.bin usbmap
|
||||
do
|
||||
rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$i
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
###
|
||||
|
@ -2337,10 +2176,6 @@ fi
|
|||
/lib/modules/%{KVERREL}%{?2:.%{2}}/source\
|
||||
/lib/modules/%{KVERREL}%{?2:.%{2}}/extra\
|
||||
/lib/modules/%{KVERREL}%{?2:.%{2}}/updates\
|
||||
%if %{with_backports}\
|
||||
/boot/config.mk-compat-wireless-%{cwversion}-%{KVERREL}%{?2:.%{2}}\
|
||||
/lib/modules/%{KVERREL}%{?2:.%{2}}/backports\
|
||||
%endif\
|
||||
%ifarch %{vdso_arches}\
|
||||
/lib/modules/%{KVERREL}%{?2:.%{2}}/vdso\
|
||||
/etc/ld.so.conf.d/kernel-%{KVERREL}%{?2:.%{2}}.conf\
|
||||
|
@ -2386,6 +2221,9 @@ fi
|
|||
# and build.
|
||||
|
||||
%changelog
|
||||
* Mon Mar 19 2012 Josh Boyer <jwboyer@redhat.com>
|
||||
- Drop compat-wireless infrastructure in preparation for 3.3 rebase
|
||||
|
||||
* Fri Mar 16 2012 Justin M. Forbes <jforbes@redhat.com>
|
||||
- re-enable threading on hibernate compression/decompression
|
||||
|
||||
|
|
|
@ -1,89 +0,0 @@
|
|||
From b57e6b560fc2a2742910ac5ca0eb2c46e45aeac2 Mon Sep 17 00:00:00 2001
|
||||
From: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
|
||||
Date: Thu, 9 Feb 2012 19:59:43 +0530
|
||||
Subject: [PATCH] mac80211: Fix a rwlock bad magic bug
|
||||
|
||||
read_lock(&tpt_trig->trig.leddev_list_lock) is accessed via the path
|
||||
ieee80211_open (->) ieee80211_do_open (->) ieee80211_mod_tpt_led_trig
|
||||
(->) ieee80211_start_tpt_led_trig (->) tpt_trig_timer before initializing
|
||||
it.
|
||||
the intilization of this read/write lock happens via the path
|
||||
ieee80211_led_init (->) led_trigger_register, but we are doing
|
||||
'ieee80211_led_init' after 'ieeee80211_if_add' where we
|
||||
register netdev_ops.
|
||||
so we access leddev_list_lock before initializing it and causes the
|
||||
following bug in chrome laptops with AR928X cards with the following
|
||||
script
|
||||
|
||||
while true
|
||||
do
|
||||
sudo modprobe -v ath9k
|
||||
sleep 3
|
||||
sudo modprobe -r ath9k
|
||||
sleep 3
|
||||
done
|
||||
|
||||
BUG: rwlock bad magic on CPU#1, wpa_supplicant/358, f5b9eccc
|
||||
Pid: 358, comm: wpa_supplicant Not tainted 3.0.13 #1
|
||||
Call Trace:
|
||||
|
||||
[<8137b9df>] rwlock_bug+0x3d/0x47
|
||||
[<81179830>] do_raw_read_lock+0x19/0x29
|
||||
[<8137f063>] _raw_read_lock+0xd/0xf
|
||||
[<f9081957>] tpt_trig_timer+0xc3/0x145 [mac80211]
|
||||
[<f9081f3a>] ieee80211_mod_tpt_led_trig+0x152/0x174 [mac80211]
|
||||
[<f9076a3f>] ieee80211_do_open+0x11e/0x42e [mac80211]
|
||||
[<f9075390>] ? ieee80211_check_concurrent_iface+0x26/0x13c [mac80211]
|
||||
[<f9076d97>] ieee80211_open+0x48/0x4c [mac80211]
|
||||
[<812dbed8>] __dev_open+0x82/0xab
|
||||
[<812dc0c9>] __dev_change_flags+0x9c/0x113
|
||||
[<812dc1ae>] dev_change_flags+0x18/0x44
|
||||
[<8132144f>] devinet_ioctl+0x243/0x51a
|
||||
[<81321ba9>] inet_ioctl+0x93/0xac
|
||||
[<812cc951>] sock_ioctl+0x1c6/0x1ea
|
||||
[<812cc78b>] ? might_fault+0x20/0x20
|
||||
[<810b1ebb>] do_vfs_ioctl+0x46e/0x4a2
|
||||
[<810a6ebb>] ? fget_light+0x2f/0x70
|
||||
[<812ce549>] ? sys_recvmsg+0x3e/0x48
|
||||
[<810b1f35>] sys_ioctl+0x46/0x69
|
||||
[<8137fa77>] sysenter_do_call+0x12/0x2
|
||||
|
||||
Cc: <stable@vger.kernel.org>
|
||||
Cc: Gary Morain <gmorain@google.com>
|
||||
Cc: Paul Stewart <pstew@google.com>
|
||||
Cc: Abhijit Pradhan <abhijit@qca.qualcomm.com>
|
||||
Cc: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
|
||||
Cc: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
|
||||
Acked-by: Johannes Berg <johannes.berg@intel.com>
|
||||
Tested-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
|
||||
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/mac80211/main.c | 4 ++--
|
||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
|
||||
index 0a0d94a..b142bd4 100644
|
||||
--- a/net/mac80211/main.c
|
||||
+++ b/net/mac80211/main.c
|
||||
@@ -910,6 +910,8 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
|
||||
wiphy_debug(local->hw.wiphy, "Failed to initialize wep: %d\n",
|
||||
result);
|
||||
|
||||
+ ieee80211_led_init(local);
|
||||
+
|
||||
rtnl_lock();
|
||||
|
||||
result = ieee80211_init_rate_ctrl_alg(local,
|
||||
@@ -931,8 +933,6 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
|
||||
|
||||
rtnl_unlock();
|
||||
|
||||
- ieee80211_led_init(local);
|
||||
-
|
||||
local->network_latency_notifier.notifier_call =
|
||||
ieee80211_max_network_latency;
|
||||
result = pm_qos_add_notifier(PM_QOS_NETWORK_LATENCY,
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
From 0dee00686da88cc32753e02e4e8efdd9e326e4d2 Mon Sep 17 00:00:00 2001
|
||||
From: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
|
||||
Date: Mon, 20 Feb 2012 14:44:01 +0530
|
||||
Subject: [PATCH] mac80211: Fix a warning on changing to monitor mode from STA
|
||||
|
||||
nothing needs to be done for monitor/AP_VLAN mode on calling
|
||||
ieee80211_bss_info_change_notify -> drv_bss_info_changed with the change
|
||||
flag 'BSS_CHANGED_IDLE'. 'wl1271' seems to use BSS_CHANGED_IDLE only for
|
||||
STA and IBSS mode. further the non-idle state of the monitor mode is
|
||||
taken care by the 'count' variable which counts non-idle interfaces.
|
||||
ieee80211_idle_off(local, "in use") will be called.
|
||||
this fixes the following WARNING when we have initially STA mode
|
||||
(network manager running) and not associated, and change it to monitor
|
||||
mode with network manager disabled and bringing up the monitor mode.
|
||||
this changes the idle state from 'true' (STA unassociated) to 'false'
|
||||
(MONITOR mode)
|
||||
exposed by the commit 405385f8ce7a2ed8f82e216d88b5282142e1288b
|
||||
"mac80211: set bss_conf.idle when vif is connected"
|
||||
|
||||
WARNING: net/mac80211/main.c:212
|
||||
ieee80211_bss_info_change_notify+0x1cf/0x330 [mac80211]()
|
||||
Hardware name: 64756D6
|
||||
Pid: 3835, comm: ifconfig Tainted: G O
|
||||
3.3.0-rc3-wl #9
|
||||
Call Trace:
|
||||
[<c0133b02>] warn_slowpath_common+0x72/0xa0
|
||||
[<fc8e8c3f>] ?
|
||||
ieee80211_bss_info_change_notify+0x1cf/0x330 [mac80211]
|
||||
[<fc8e8c3f>] ?
|
||||
ieee80211_bss_info_change_notify+0x1cf/0x330 [mac80211]
|
||||
[<c0133b52>] warn_slowpath_null+0x22/0x30
|
||||
[<fc8e8c3f>]
|
||||
ieee80211_bss_info_change_notify+0x1cf/0x330 [mac80211]
|
||||
[<fc8f9de3>] __ieee80211_recalc_idle+0x113/0x430
|
||||
[mac80211]
|
||||
[<fc8fabc6>] ieee80211_do_open+0x156/0x7e0 [mac80211]
|
||||
[<fc8f8a25>] ?
|
||||
ieee80211_check_concurrent_iface+0x25/0x180 [mac80211]
|
||||
[<c015dd9f>] ? raw_notifier_call_chain+0x1f/0x30
|
||||
[<fc8fb290>] ieee80211_open+0x40/0x80 [mac80211]
|
||||
[<c05894f6>] __dev_open+0x96/0xe0
|
||||
[<c068fba5>] ? _raw_spin_unlock_bh+0x35/0x40
|
||||
[<c05881d9>] __dev_change_flags+0x109/0x170
|
||||
[<c0589423>] dev_change_flags+0x23/0x60
|
||||
[<c05f3770>] devinet_ioctl+0x6a0/0x770
|
||||
|
||||
ieee80211 phy0: device no longer idle - in use
|
||||
|
||||
Cc: Eliad Peller <eliad@wizery.com>
|
||||
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/mac80211/iface.c | 3 +++
|
||||
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
|
||||
index 01a21c2..8e2137b 100644
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -1332,6 +1332,9 @@ u32 __ieee80211_recalc_idle(struct ieee80211_local *local)
|
||||
hw_roc = true;
|
||||
|
||||
list_for_each_entry(sdata, &local->interfaces, list) {
|
||||
+ if (sdata->vif.type == NL80211_IFTYPE_MONITOR ||
|
||||
+ sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
|
||||
+ continue;
|
||||
if (sdata->old_idle == sdata->vif.bss_conf.idle)
|
||||
continue;
|
||||
if (!ieee80211_sdata_running(sdata))
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
From 65e8b0ccb6cf176f8eddb1b05534be46580da9dd Mon Sep 17 00:00:00 2001
|
||||
From: Javier Cardona <javier@cozybit.com>
|
||||
Date: Tue, 17 Jan 2012 18:17:46 -0800
|
||||
Subject: [PATCH 3/8] mac80211: Use the right headroom size for mesh mgmt
|
||||
frames
|
||||
|
||||
Use local->tx_headroom instad of local->hw.extra_tx_headroom.
|
||||
local->tx_headroom is the max of hw.extra_tx_headroom required by the
|
||||
driver and the headroom required by mac80211 for status reporting. On
|
||||
drivers where hw.extra_tx_headroom is smaller than what mac80211
|
||||
requires (e.g. ath5k), we would not reserve sufficient buffer space to
|
||||
report tx status.
|
||||
|
||||
Also, don't reserve local->tx_headroom + local->hw.extra_tx_headroom.
|
||||
|
||||
Reported-by: Simon Morgenthaler <s.morgenthaler@students.unibe.ch>
|
||||
Reported-by: Kai Scharwies <kai@scharwies.de>
|
||||
Signed-off-by: Javier Cardona <javier@cozybit.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/mac80211/mesh_hwmp.c | 8 ++++----
|
||||
net/mac80211/mesh_plink.c | 4 ++--
|
||||
2 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
|
||||
index 73abb75..54df1b2 100644
|
||||
--- a/net/mac80211/mesh_hwmp.c
|
||||
+++ b/net/mac80211/mesh_hwmp.c
|
||||
@@ -119,12 +119,12 @@ static int mesh_path_sel_frame_tx(enum mpath_frame_type action, u8 flags,
|
||||
int hdr_len = offsetof(struct ieee80211_mgmt, u.action.u.mesh_action) +
|
||||
sizeof(mgmt->u.action.u.mesh_action);
|
||||
|
||||
- skb = dev_alloc_skb(local->hw.extra_tx_headroom +
|
||||
+ skb = dev_alloc_skb(local->tx_headroom +
|
||||
hdr_len +
|
||||
2 + 37); /* max HWMP IE */
|
||||
if (!skb)
|
||||
return -1;
|
||||
- skb_reserve(skb, local->hw.extra_tx_headroom);
|
||||
+ skb_reserve(skb, local->tx_headroom);
|
||||
mgmt = (struct ieee80211_mgmt *) skb_put(skb, hdr_len);
|
||||
memset(mgmt, 0, hdr_len);
|
||||
mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
|
||||
@@ -250,12 +250,12 @@ int mesh_path_error_tx(u8 ttl, u8 *target, __le32 target_sn,
|
||||
if (time_before(jiffies, ifmsh->next_perr))
|
||||
return -EAGAIN;
|
||||
|
||||
- skb = dev_alloc_skb(local->hw.extra_tx_headroom +
|
||||
+ skb = dev_alloc_skb(local->tx_headroom +
|
||||
hdr_len +
|
||||
2 + 15 /* PERR IE */);
|
||||
if (!skb)
|
||||
return -1;
|
||||
- skb_reserve(skb, local->tx_headroom + local->hw.extra_tx_headroom);
|
||||
+ skb_reserve(skb, local->tx_headroom);
|
||||
mgmt = (struct ieee80211_mgmt *) skb_put(skb, hdr_len);
|
||||
memset(mgmt, 0, hdr_len);
|
||||
mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
|
||||
diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
|
||||
index 41ef1b4..a172517 100644
|
||||
--- a/net/mac80211/mesh_plink.c
|
||||
+++ b/net/mac80211/mesh_plink.c
|
||||
@@ -172,7 +172,7 @@ static int mesh_plink_frame_tx(struct ieee80211_sub_if_data *sdata,
|
||||
int hdr_len = offsetof(struct ieee80211_mgmt, u.action.u.self_prot) +
|
||||
sizeof(mgmt->u.action.u.self_prot);
|
||||
|
||||
- skb = dev_alloc_skb(local->hw.extra_tx_headroom +
|
||||
+ skb = dev_alloc_skb(local->tx_headroom +
|
||||
hdr_len +
|
||||
2 + /* capability info */
|
||||
2 + /* AID */
|
||||
@@ -186,7 +186,7 @@ static int mesh_plink_frame_tx(struct ieee80211_sub_if_data *sdata,
|
||||
sdata->u.mesh.ie_len);
|
||||
if (!skb)
|
||||
return -1;
|
||||
- skb_reserve(skb, local->hw.extra_tx_headroom);
|
||||
+ skb_reserve(skb, local->tx_headroom);
|
||||
mgmt = (struct ieee80211_mgmt *) skb_put(skb, hdr_len);
|
||||
memset(mgmt, 0, hdr_len);
|
||||
mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,91 +0,0 @@
|
|||
From 4b5a433ae5348c23caa0b5f0a2fca7c342acb200 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Berg <johannes.berg@intel.com>
|
||||
Date: Fri, 20 Jan 2012 13:55:23 +0100
|
||||
Subject: [PATCH] mac80211: call rate control only after init
|
||||
|
||||
There are situations where we don't have the
|
||||
necessary rate control information yet for
|
||||
station entries, e.g. when associating. This
|
||||
currently doesn't really happen due to the
|
||||
dummy station handling; explicitly disabling
|
||||
rate control when it's not initialised will
|
||||
allow us to remove dummy stations.
|
||||
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/mac80211/debugfs_sta.c | 4 ++--
|
||||
net/mac80211/rate.c | 2 +-
|
||||
net/mac80211/rate.h | 1 +
|
||||
net/mac80211/sta_info.h | 2 ++
|
||||
4 files changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c
|
||||
index 2406b3e..d86217d 100644
|
||||
--- a/net/mac80211/debugfs_sta.c
|
||||
+++ b/net/mac80211/debugfs_sta.c
|
||||
@@ -63,14 +63,14 @@ static ssize_t sta_flags_read(struct file *file, char __user *userbuf,
|
||||
test_sta_flag(sta, WLAN_STA_##flg) ? #flg "\n" : ""
|
||||
|
||||
int res = scnprintf(buf, sizeof(buf),
|
||||
- "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
|
||||
+ "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
|
||||
TEST(AUTH), TEST(ASSOC), TEST(PS_STA),
|
||||
TEST(PS_DRIVER), TEST(AUTHORIZED),
|
||||
TEST(SHORT_PREAMBLE),
|
||||
TEST(WME), TEST(WDS), TEST(CLEAR_PS_FILT),
|
||||
TEST(MFP), TEST(BLOCK_BA), TEST(PSPOLL),
|
||||
TEST(UAPSD), TEST(SP), TEST(TDLS_PEER),
|
||||
- TEST(TDLS_PEER_AUTH));
|
||||
+ TEST(TDLS_PEER_AUTH), TEST(RATE_CONTROL));
|
||||
#undef TEST
|
||||
return simple_read_from_buffer(userbuf, count, ppos, buf, res);
|
||||
}
|
||||
diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
|
||||
index 5a5a776..ad64f4d 100644
|
||||
--- a/net/mac80211/rate.c
|
||||
+++ b/net/mac80211/rate.c
|
||||
@@ -336,7 +336,7 @@ void rate_control_get_rate(struct ieee80211_sub_if_data *sdata,
|
||||
int i;
|
||||
u32 mask;
|
||||
|
||||
- if (sta) {
|
||||
+ if (sta && test_sta_flag(sta, WLAN_STA_RATE_CONTROL)) {
|
||||
ista = &sta->sta;
|
||||
priv_sta = sta->rate_ctrl_priv;
|
||||
}
|
||||
diff --git a/net/mac80211/rate.h b/net/mac80211/rate.h
|
||||
index 168427b..2b83f32 100644
|
||||
--- a/net/mac80211/rate.h
|
||||
+++ b/net/mac80211/rate.h
|
||||
@@ -62,6 +62,7 @@ static inline void rate_control_rate_init(struct sta_info *sta)
|
||||
sband = local->hw.wiphy->bands[local->hw.conf.channel->band];
|
||||
|
||||
ref->ops->rate_init(ref->priv, sband, ista, priv_sta);
|
||||
+ set_sta_flag(sta, WLAN_STA_RATE_CONTROL);
|
||||
}
|
||||
|
||||
static inline void rate_control_rate_update(struct ieee80211_local *local,
|
||||
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h
|
||||
index 6f77f12..bfed851 100644
|
||||
--- a/net/mac80211/sta_info.h
|
||||
+++ b/net/mac80211/sta_info.h
|
||||
@@ -52,6 +52,7 @@
|
||||
* @WLAN_STA_SP: Station is in a service period, so don't try to
|
||||
* reply to other uAPSD trigger frames or PS-Poll.
|
||||
* @WLAN_STA_4ADDR_EVENT: 4-addr event was already sent for this frame.
|
||||
+ * @WLAN_STA_RATE_CONTROL: rate control was initialized for this station.
|
||||
*/
|
||||
enum ieee80211_sta_info_flags {
|
||||
WLAN_STA_AUTH,
|
||||
@@ -71,6 +72,7 @@ enum ieee80211_sta_info_flags {
|
||||
WLAN_STA_UAPSD,
|
||||
WLAN_STA_SP,
|
||||
WLAN_STA_4ADDR_EVENT,
|
||||
+ WLAN_STA_RATE_CONTROL,
|
||||
};
|
||||
|
||||
enum ieee80211_sta_state {
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
From 216c57b214bd621335ff698b475f6db2802502dc Mon Sep 17 00:00:00 2001
|
||||
From: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Wed, 8 Feb 2012 19:17:11 +0100
|
||||
Subject: [PATCH] mac80211: do not call rate control .tx_status before
|
||||
.rate_init
|
||||
|
||||
Most rate control implementations assume .get_rate and .tx_status are only
|
||||
called once the per-station data has been fully initialized.
|
||||
minstrel_ht crashes if this assumption is violated.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
Tested-by: Arend van Spriel <arend@broadcom.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/mac80211/rate.h | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/net/mac80211/rate.h b/net/mac80211/rate.h
|
||||
index 2b83f32..80cfc00 100644
|
||||
--- a/net/mac80211/rate.h
|
||||
+++ b/net/mac80211/rate.h
|
||||
@@ -41,7 +41,7 @@ static inline void rate_control_tx_status(struct ieee80211_local *local,
|
||||
struct ieee80211_sta *ista = &sta->sta;
|
||||
void *priv_sta = sta->rate_ctrl_priv;
|
||||
|
||||
- if (!ref)
|
||||
+ if (!ref || !test_sta_flag(sta, WLAN_STA_RATE_CONTROL))
|
||||
return;
|
||||
|
||||
ref->ops->tx_status(ref->priv, sband, ista, priv_sta, skb);
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
From 9446f3efc53512e5ad9e0966539021a2a41fe5a0 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Berg <johannes.berg@intel.com>
|
||||
Date: Tue, 17 Jan 2012 10:32:01 +0100
|
||||
Subject: [PATCH 1/8] mac80211: fix debugfs key->station symlink
|
||||
|
||||
Since stations moved into a virtual interface
|
||||
subdirectory, this link has been broken. Fix it.
|
||||
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/mac80211/debugfs_key.c | 7 ++++---
|
||||
1 files changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/net/mac80211/debugfs_key.c b/net/mac80211/debugfs_key.c
|
||||
index 38e6101..59edcd9 100644
|
||||
--- a/net/mac80211/debugfs_key.c
|
||||
+++ b/net/mac80211/debugfs_key.c
|
||||
@@ -225,9 +225,9 @@ KEY_OPS(key);
|
||||
key, &key_##name##_ops);
|
||||
|
||||
void ieee80211_debugfs_key_add(struct ieee80211_key *key)
|
||||
- {
|
||||
+{
|
||||
static int keycount;
|
||||
- char buf[50];
|
||||
+ char buf[100];
|
||||
struct sta_info *sta;
|
||||
|
||||
if (!key->local->debugfs.keys)
|
||||
@@ -244,7 +244,8 @@ void ieee80211_debugfs_key_add(struct ieee80211_key *key)
|
||||
|
||||
sta = key->sta;
|
||||
if (sta) {
|
||||
- sprintf(buf, "../../stations/%pM", sta->sta.addr);
|
||||
+ sprintf(buf, "../../netdev:%s/stations/%pM",
|
||||
+ sta->sdata->name, sta->sta.addr);
|
||||
key->debugfs.stalink =
|
||||
debugfs_create_symlink("station", key->debugfs.dir, buf);
|
||||
}
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
From 405385f8ce7a2ed8f82e216d88b5282142e1288b Mon Sep 17 00:00:00 2001
|
||||
From: Eliad Peller <eliad@wizery.com>
|
||||
Date: Wed, 11 Jan 2012 13:11:50 +0200
|
||||
Subject: [PATCH 7/8] mac80211: set bss_conf.idle when vif is connected
|
||||
|
||||
__ieee80211_recalc_idle() iterates through the vifs,
|
||||
sets bss_conf.idle = true if they are disconnected,
|
||||
and increases "count" if they are not (which later
|
||||
gets evaluated in order to determine whether the
|
||||
device is idle).
|
||||
|
||||
However, the loop doesn't set bss_conf.idle = false
|
||||
(along with increasing "count"), causing the device
|
||||
idle state and the vif idle state to get out of sync
|
||||
in some cases.
|
||||
|
||||
Signed-off-by: Eliad Peller <eliad@wizery.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/mac80211/iface.c | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
|
||||
index e47768c..01a21c2 100644
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -1314,6 +1314,7 @@ u32 __ieee80211_recalc_idle(struct ieee80211_local *local)
|
||||
continue;
|
||||
}
|
||||
/* count everything else */
|
||||
+ sdata->vif.bss_conf.idle = false;
|
||||
count++;
|
||||
}
|
||||
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
From 07ae2dfcf4f7143ce191c6436da1c33f179af0d6 Mon Sep 17 00:00:00 2001
|
||||
From: Eliad Peller <eliad@wizery.com>
|
||||
Date: Wed, 1 Feb 2012 18:48:09 +0200
|
||||
Subject: [PATCH] mac80211: timeout a single frame in the rx reorder buffer
|
||||
|
||||
The current code checks for stored_mpdu_num > 1, causing
|
||||
the reorder_timer to be triggered indefinitely, but the
|
||||
frame is never timed-out (until the next packet is received)
|
||||
|
||||
Signed-off-by: Eliad Peller <eliad@wizery.com>
|
||||
Cc: <stable@vger.kernel.org>
|
||||
Acked-by: Johannes Berg <johannes@sipsolutions.net>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/mac80211/rx.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
|
||||
index 7514091..5a5e504 100644
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -611,7 +611,7 @@ static void ieee80211_sta_reorder_release(struct ieee80211_hw *hw,
|
||||
index = seq_sub(tid_agg_rx->head_seq_num, tid_agg_rx->ssn) %
|
||||
tid_agg_rx->buf_size;
|
||||
if (!tid_agg_rx->reorder_buf[index] &&
|
||||
- tid_agg_rx->stored_mpdu_num > 1) {
|
||||
+ tid_agg_rx->stored_mpdu_num) {
|
||||
/*
|
||||
* No buffers ready to be released, but check whether any
|
||||
* frames in the reorder buffer have timed out.
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
From ba1960257c5980f9b58057995ce3394bd8e48ca3 Mon Sep 17 00:00:00 2001
|
||||
From: Eliad Peller <eliad@wizery.com>
|
||||
Date: Tue, 10 Jan 2012 15:19:54 +0200
|
||||
Subject: [PATCH 6/8] mac80211: update oper_channel on ibss join
|
||||
|
||||
Commit 13c40c5 ("mac80211: Add HT operation modes for IBSS") broke
|
||||
ibss operation by mistakenly removing the local->oper_channel
|
||||
update (causing ibss to start on the wrong channel). fix it.
|
||||
|
||||
Signed-off-by: Eliad Peller <eliad@wizery.com>
|
||||
Acked-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/mac80211/ibss.c | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
|
||||
index b3d76b7..a464396 100644
|
||||
--- a/net/mac80211/ibss.c
|
||||
+++ b/net/mac80211/ibss.c
|
||||
@@ -106,6 +106,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
|
||||
|
||||
sdata->drop_unencrypted = capability & WLAN_CAPABILITY_PRIVACY ? 1 : 0;
|
||||
|
||||
+ local->oper_channel = chan;
|
||||
channel_type = ifibss->channel_type;
|
||||
if (channel_type > NL80211_CHAN_HT20 &&
|
||||
!cfg80211_can_beacon_sec_chan(local->hw.wiphy, chan, channel_type))
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
From 8617b093d0031837a7be9b32bc674580cfb5f6b5 Mon Sep 17 00:00:00 2001
|
||||
From: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
|
||||
Date: Mon, 20 Feb 2012 10:05:31 +0530
|
||||
Subject: [PATCH] mac80211: zero initialize count field in ieee80211_tx_rate
|
||||
|
||||
rate control algorithms concludes the rate as invalid
|
||||
with rate[i].idx < -1 , while they do also check for rate[i].count is
|
||||
non-zero. it would be safer to zero initialize the 'count' field.
|
||||
recently we had a ath9k rate control crash where the ath9k rate control
|
||||
in ath_tx_status assumed to check only for rate[i].count being non-zero
|
||||
in one instance and ended up in using invalid rate index for
|
||||
'connection monitoring NULL func frames' which eventually lead to the crash.
|
||||
thanks to Pavel Roskin for fixing it and finding the root cause.
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=768639
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Cc: Pavel Roskin <proski@gnu.org>
|
||||
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
net/mac80211/rate.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
|
||||
index ad64f4d..f9b8e81 100644
|
||||
--- a/net/mac80211/rate.c
|
||||
+++ b/net/mac80211/rate.c
|
||||
@@ -344,7 +344,7 @@ void rate_control_get_rate(struct ieee80211_sub_if_data *sdata,
|
||||
for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) {
|
||||
info->control.rates[i].idx = -1;
|
||||
info->control.rates[i].flags = 0;
|
||||
- info->control.rates[i].count = 1;
|
||||
+ info->control.rates[i].count = 0;
|
||||
}
|
||||
|
||||
if (sdata->local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL)
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,80 +0,0 @@
|
|||
From 69f63a67165da5e9f08c1132521598701d914573 Mon Sep 17 00:00:00 2001
|
||||
From: John W. Linville <linville@tuxdriver.com>
|
||||
Date: Wed, 14 Dec 2011 11:09:04 -0500
|
||||
Subject: [PATCH] modpost: add option to allow external modules to avoid taint
|
||||
|
||||
In some cases, it might be desirable to package a module from an
|
||||
external source tree alongside the base kernel. In those cases, it
|
||||
might also be desirable to not have those modules tainting the kernel.
|
||||
|
||||
This patch provides a mechanism for an external module build to declare
|
||||
itself as an "integrated build". Such a module is then treated the same
|
||||
as an intree module.
|
||||
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
Any thoughts on this? I'm thinking of adding this to Fedora kernels,
|
||||
where I have been working to integrate the compat-wireless package as
|
||||
part of the base kernel RPM.
|
||||
|
||||
scripts/Makefile.modpost | 1 +
|
||||
scripts/mod/modpost.c | 10 ++++++++--
|
||||
2 files changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/scripts/Makefile.modpost b/scripts/Makefile.modpost
|
||||
index 08dce14..160c6fb 100644
|
||||
--- a/scripts/Makefile.modpost
|
||||
+++ b/scripts/Makefile.modpost
|
||||
@@ -81,6 +81,7 @@ modpost = scripts/mod/modpost \
|
||||
$(if $(KBUILD_EXTMOD),-o $(modulesymfile)) \
|
||||
$(if $(CONFIG_DEBUG_SECTION_MISMATCH),,-S) \
|
||||
$(if $(KBUILD_EXTMOD)$(KBUILD_MODPOST_WARN),-w) \
|
||||
+ $(if $(INTEGRATED_BUILD),-B) \
|
||||
$(if $(cross_build),-c)
|
||||
|
||||
quiet_cmd_modpost = MODPOST $(words $(filter-out vmlinux FORCE, $^)) modules
|
||||
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
|
||||
index 2bd594e..5d077f9 100644
|
||||
--- a/scripts/mod/modpost.c
|
||||
+++ b/scripts/mod/modpost.c
|
||||
@@ -43,6 +43,9 @@ static int warn_unresolved = 0;
|
||||
static int sec_mismatch_count = 0;
|
||||
static int sec_mismatch_verbose = 1;
|
||||
|
||||
+/* Is this a module being built as part of an integrated package? */
|
||||
+static int integrated_build = 0;
|
||||
+
|
||||
enum export {
|
||||
export_plain, export_unused, export_gpl,
|
||||
export_unused_gpl, export_gpl_future, export_unknown
|
||||
@@ -1851,7 +1854,7 @@ static void add_header(struct buffer *b, struct module *mod)
|
||||
|
||||
static void add_intree_flag(struct buffer *b, int is_intree)
|
||||
{
|
||||
- if (is_intree)
|
||||
+ if (is_intree || integrated_build)
|
||||
buf_printf(b, "\nMODULE_INFO(intree, \"Y\");\n");
|
||||
}
|
||||
|
||||
@@ -2101,7 +2104,7 @@ int main(int argc, char **argv)
|
||||
struct ext_sym_list *extsym_iter;
|
||||
struct ext_sym_list *extsym_start = NULL;
|
||||
|
||||
- while ((opt = getopt(argc, argv, "i:I:e:cmsSo:awM:K:")) != -1) {
|
||||
+ while ((opt = getopt(argc, argv, "i:I:e:cmsSo:awM:K:B")) != -1) {
|
||||
switch (opt) {
|
||||
case 'i':
|
||||
kernel_read = optarg;
|
||||
@@ -2139,6 +2142,9 @@ int main(int argc, char **argv)
|
||||
case 'w':
|
||||
warn_unresolved = 1;
|
||||
break;
|
||||
+ case 'B':
|
||||
+ integrated_build = 1;
|
||||
+ break;
|
||||
default:
|
||||
exit(1);
|
||||
}
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
From 2da8cbf8a6b454296c9db7b57cac72d5a39e3aa7 Mon Sep 17 00:00:00 2001
|
||||
From: Amitkumar Karwar <akarwar@marvell.com>
|
||||
Date: Fri, 3 Feb 2012 20:34:02 -0800
|
||||
Subject: [PATCH] mwifiex: add NULL checks in driver unload path
|
||||
|
||||
If driver load is failed, sometimes few pointers may remain
|
||||
uninitialized ex. priv->wdev, priv->netdev, adapter->sleep_cfm
|
||||
This will cause NULL pointer dereferance while unloading the
|
||||
driver.
|
||||
|
||||
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
|
||||
Signed-off-by: Kiran Divekar <dkiran@marvell.com>
|
||||
Signed-off-by: Bing Zhao <bzhao@marvell.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/mwifiex/init.c | 3 ++-
|
||||
drivers/net/wireless/mwifiex/main.c | 12 ++++++++----
|
||||
2 files changed, 10 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/mwifiex/init.c b/drivers/net/wireless/mwifiex/init.c
|
||||
index e05b417..1d0ec57 100644
|
||||
--- a/drivers/net/wireless/mwifiex/init.c
|
||||
+++ b/drivers/net/wireless/mwifiex/init.c
|
||||
@@ -382,7 +382,8 @@ mwifiex_free_adapter(struct mwifiex_adapter *adapter)
|
||||
|
||||
adapter->if_ops.cleanup_if(adapter);
|
||||
|
||||
- dev_kfree_skb_any(adapter->sleep_cfm);
|
||||
+ if (adapter->sleep_cfm)
|
||||
+ dev_kfree_skb_any(adapter->sleep_cfm);
|
||||
}
|
||||
|
||||
/*
|
||||
diff --git a/drivers/net/wireless/mwifiex/main.c b/drivers/net/wireless/mwifiex/main.c
|
||||
index 84be196..b728f54 100644
|
||||
--- a/drivers/net/wireless/mwifiex/main.c
|
||||
+++ b/drivers/net/wireless/mwifiex/main.c
|
||||
@@ -822,7 +822,9 @@ int mwifiex_remove_card(struct mwifiex_adapter *adapter, struct semaphore *sem)
|
||||
continue;
|
||||
|
||||
rtnl_lock();
|
||||
- mwifiex_del_virtual_intf(priv->wdev->wiphy, priv->netdev);
|
||||
+ if (priv->wdev && priv->netdev)
|
||||
+ mwifiex_del_virtual_intf(priv->wdev->wiphy,
|
||||
+ priv->netdev);
|
||||
rtnl_unlock();
|
||||
}
|
||||
|
||||
@@ -830,9 +832,11 @@ int mwifiex_remove_card(struct mwifiex_adapter *adapter, struct semaphore *sem)
|
||||
if (!priv)
|
||||
goto exit_remove;
|
||||
|
||||
- wiphy_unregister(priv->wdev->wiphy);
|
||||
- wiphy_free(priv->wdev->wiphy);
|
||||
- kfree(priv->wdev);
|
||||
+ if (priv->wdev) {
|
||||
+ wiphy_unregister(priv->wdev->wiphy);
|
||||
+ wiphy_free(priv->wdev->wiphy);
|
||||
+ kfree(priv->wdev);
|
||||
+ }
|
||||
|
||||
mwifiex_terminate_workqueue(adapter);
|
||||
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
From 6670f15b1f6858a43b292d8ab64464e9f085a6aa Mon Sep 17 00:00:00 2001
|
||||
From: Amitkumar Karwar <akarwar@marvell.com>
|
||||
Date: Thu, 9 Feb 2012 18:32:22 -0800
|
||||
Subject: [PATCH] mwifiex: clear previous security setting during association
|
||||
|
||||
Driver maintains different flags for WEP, WPA, WPA2 security modes.
|
||||
Appropriate flag is set using security information provided in
|
||||
connect request. mwifiex_is_network_compatible() routine uses them
|
||||
to check if driver's setting is compatible with AP. Association is
|
||||
aborted if the routine fails.
|
||||
|
||||
For some corner cases, it is observed that association is failed
|
||||
even for valid security information based on association history.
|
||||
This patch fixes the problem by clearing previous security setting
|
||||
during each association.
|
||||
|
||||
We should set WEP key provided in connect request as default tx key.
|
||||
This missing change is also added here.
|
||||
|
||||
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
|
||||
Signed-off-by: Bing Zhao <bzhao@marvell.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/mwifiex/cfg80211.c | 8 +++++++-
|
||||
1 files changed, 7 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c
|
||||
index c3b6c46..5b2972b 100644
|
||||
--- a/drivers/net/wireless/mwifiex/cfg80211.c
|
||||
+++ b/drivers/net/wireless/mwifiex/cfg80211.c
|
||||
@@ -841,7 +841,12 @@ mwifiex_cfg80211_assoc(struct mwifiex_private *priv, size_t ssid_len, u8 *ssid,
|
||||
ret = mwifiex_set_rf_channel(priv, channel,
|
||||
priv->adapter->channel_type);
|
||||
|
||||
- ret = mwifiex_set_encode(priv, NULL, 0, 0, 1); /* Disable keys */
|
||||
+ /* As this is new association, clear locally stored
|
||||
+ * keys and security related flags */
|
||||
+ priv->sec_info.wpa_enabled = false;
|
||||
+ priv->sec_info.wpa2_enabled = false;
|
||||
+ priv->wep_key_curr_index = 0;
|
||||
+ ret = mwifiex_set_encode(priv, NULL, 0, 0, 1);
|
||||
|
||||
if (mode == NL80211_IFTYPE_ADHOC) {
|
||||
/* "privacy" is set only for ad-hoc mode */
|
||||
@@ -886,6 +891,7 @@ mwifiex_cfg80211_assoc(struct mwifiex_private *priv, size_t ssid_len, u8 *ssid,
|
||||
dev_dbg(priv->adapter->dev,
|
||||
"info: setting wep encryption"
|
||||
" with key len %d\n", sme->key_len);
|
||||
+ priv->wep_key_curr_index = sme->key_idx;
|
||||
ret = mwifiex_set_encode(priv, sme->key, sme->key_len,
|
||||
sme->key_idx, 0);
|
||||
}
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
From b7097eb75fa11c302dcdec83f1dbfa874e0af0d1 Mon Sep 17 00:00:00 2001
|
||||
From: Amitkumar Karwar <akarwar@marvell.com>
|
||||
Date: Wed, 1 Feb 2012 20:41:43 -0800
|
||||
Subject: [PATCH] mwifiex: handle association failure case correctly
|
||||
|
||||
Currently even if association is failed "iw link" shows some
|
||||
information about connected BSS and "Tx timeout" error is seen in
|
||||
dmesg log.
|
||||
|
||||
This patch fixes below issues in the code to handle assoc failure
|
||||
case correctly.
|
||||
1) "status" variable in mwifiex_wait_queue_complete() is not
|
||||
correctly updated. Hence driver doesn't inform cfg80211 stack
|
||||
about association failure.
|
||||
2) During association network queues are stopped but carrier is
|
||||
not cleared, which gives Tx timeout error in failure case
|
||||
|
||||
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
|
||||
Signed-off-by: Bing Zhao <bzhao@marvell.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/mwifiex/sta_ioctl.c | 8 +++++++-
|
||||
1 files changed, 7 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/mwifiex/sta_ioctl.c b/drivers/net/wireless/mwifiex/sta_ioctl.c
|
||||
index 470ca75..b0fbf5d 100644
|
||||
--- a/drivers/net/wireless/mwifiex/sta_ioctl.c
|
||||
+++ b/drivers/net/wireless/mwifiex/sta_ioctl.c
|
||||
@@ -54,7 +54,7 @@ int mwifiex_copy_mcast_addr(struct mwifiex_multicast_list *mlist,
|
||||
int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter)
|
||||
{
|
||||
bool cancel_flag = false;
|
||||
- int status = adapter->cmd_wait_q.status;
|
||||
+ int status;
|
||||
struct cmd_ctrl_node *cmd_queued;
|
||||
|
||||
if (!adapter->cmd_queued)
|
||||
@@ -79,6 +79,8 @@ int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter)
|
||||
mwifiex_cancel_pending_ioctl(adapter);
|
||||
dev_dbg(adapter->dev, "cmd cancel\n");
|
||||
}
|
||||
+
|
||||
+ status = adapter->cmd_wait_q.status;
|
||||
adapter->cmd_wait_q.status = 0;
|
||||
|
||||
return status;
|
||||
@@ -240,6 +242,8 @@ int mwifiex_bss_start(struct mwifiex_private *priv, struct cfg80211_bss *bss,
|
||||
|
||||
if (!netif_queue_stopped(priv->netdev))
|
||||
mwifiex_stop_net_dev_queue(priv->netdev, adapter);
|
||||
+ if (netif_carrier_ok(priv->netdev))
|
||||
+ netif_carrier_off(priv->netdev);
|
||||
|
||||
/* Clear any past association response stored for
|
||||
* application retrieval */
|
||||
@@ -271,6 +275,8 @@ int mwifiex_bss_start(struct mwifiex_private *priv, struct cfg80211_bss *bss,
|
||||
|
||||
if (!netif_queue_stopped(priv->netdev))
|
||||
mwifiex_stop_net_dev_queue(priv->netdev, adapter);
|
||||
+ if (netif_carrier_ok(priv->netdev))
|
||||
+ netif_carrier_off(priv->netdev);
|
||||
|
||||
if (!ret) {
|
||||
dev_dbg(adapter->dev, "info: network found in scan"
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
From 7fc417556473f15efac269523c17eb92103c6484 Mon Sep 17 00:00:00 2001
|
||||
From: Luigi Tarenga <luigi.tarenga@gmail.com>
|
||||
Date: Tue, 31 Jan 2012 18:51:23 +0100
|
||||
Subject: [PATCH] rt2800lib: fix wrong -128dBm when signal is stronger than
|
||||
-12dBm
|
||||
|
||||
This patch correct the type of variables containing the rssi
|
||||
values read from the rxwi.
|
||||
|
||||
In function rt2800_agc_to_rssi() 3 variables (rssi0, rssi1, rss2)
|
||||
defined as int was assigned a 16bit signed values as unsigned.
|
||||
From a test with a hi-gain antenna I verified that the rxwi
|
||||
contains signed rssi values in the range -13/+81 (inclusive)
|
||||
with 0 as an error condition. In case of negative values a
|
||||
condition is triggered and the function return -128dBm while
|
||||
the signal is at its maximum. This patch correct the cast so
|
||||
negative values are not treated as very high positive values
|
||||
(ex. -13 does not become 243).
|
||||
|
||||
Signed-off-by: Luigi Tarenga <luigi.tarenga@gmail.com>
|
||||
Reviewed-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/rt2x00/rt2800lib.c | 8 ++++----
|
||||
1 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
|
||||
index 22a1a8f..7bef66d 100644
|
||||
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
|
||||
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
|
||||
@@ -514,9 +514,9 @@ EXPORT_SYMBOL_GPL(rt2800_write_tx_data);
|
||||
|
||||
static int rt2800_agc_to_rssi(struct rt2x00_dev *rt2x00dev, u32 rxwi_w2)
|
||||
{
|
||||
- int rssi0 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI0);
|
||||
- int rssi1 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI1);
|
||||
- int rssi2 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI2);
|
||||
+ s8 rssi0 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI0);
|
||||
+ s8 rssi1 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI1);
|
||||
+ s8 rssi2 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI2);
|
||||
u16 eeprom;
|
||||
u8 offset0;
|
||||
u8 offset1;
|
||||
@@ -552,7 +552,7 @@ static int rt2800_agc_to_rssi(struct rt2x00_dev *rt2x00dev, u32 rxwi_w2)
|
||||
* which gives less energy...
|
||||
*/
|
||||
rssi0 = max(rssi0, rssi1);
|
||||
- return max(rssi0, rssi2);
|
||||
+ return (int)max(rssi0, rssi2);
|
||||
}
|
||||
|
||||
void rt2800_process_rxwi(struct queue_entry *entry,
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
From 7be081539e540517d5e1fcbf96b8080074afbf08 Mon Sep 17 00:00:00 2001
|
||||
From: Gabor Juhos <juhosg@openwrt.org>
|
||||
Date: Thu, 16 Feb 2012 20:44:59 +0100
|
||||
Subject: [PATCH] rt2x00: fix a possible NULL pointer dereference
|
||||
|
||||
The 'rt2x00lib_probe_dev' function tries to
|
||||
allocate the workqueue. If the allocation
|
||||
fails, 'rt2x00_lib_remove_dev' is called on
|
||||
the error path. Because 'rt2x00dev->workqueue'
|
||||
is NULL in this case, the 'destroy_workqueue'
|
||||
call will cause a NULL pointer dereference.
|
||||
|
||||
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
|
||||
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/rt2x00/rt2x00dev.c | 3 ++-
|
||||
1 files changed, 2 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
|
||||
index c3e1aa7..d2a1ea9 100644
|
||||
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
|
||||
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
|
||||
@@ -1220,7 +1220,8 @@ void rt2x00lib_remove_dev(struct rt2x00_dev *rt2x00dev)
|
||||
cancel_work_sync(&rt2x00dev->rxdone_work);
|
||||
cancel_work_sync(&rt2x00dev->txdone_work);
|
||||
}
|
||||
- destroy_workqueue(rt2x00dev->workqueue);
|
||||
+ if (rt2x00dev->workqueue)
|
||||
+ destroy_workqueue(rt2x00dev->workqueue);
|
||||
|
||||
/*
|
||||
* Free the tx status fifo.
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
From c27111e5b8d6b1e9296f7075cdc35872f672b524 Mon Sep 17 00:00:00 2001
|
||||
From: Simon Graham <simon.graham@virtualcomputer.com>
|
||||
Date: Thu, 9 Feb 2012 09:55:13 -0500
|
||||
Subject: [PATCH] rtlwifi: Modify rtl_pci_init to return 0 on success
|
||||
|
||||
Fixes problem where caller would think routine succeeded when it failed
|
||||
leading to divide by zero panic.
|
||||
|
||||
Signed-off-by: Simon Graham <simon.graham@virtualcomputer.com>
|
||||
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/rtlwifi/pci.c | 4 ++--
|
||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c
|
||||
index 39e0907..9245d88 100644
|
||||
--- a/drivers/net/wireless/rtlwifi/pci.c
|
||||
+++ b/drivers/net/wireless/rtlwifi/pci.c
|
||||
@@ -1501,7 +1501,7 @@ static int rtl_pci_init(struct ieee80211_hw *hw, struct pci_dev *pdev)
|
||||
return err;
|
||||
}
|
||||
|
||||
- return 1;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static int rtl_pci_start(struct ieee80211_hw *hw)
|
||||
@@ -1870,7 +1870,7 @@ int __devinit rtl_pci_probe(struct pci_dev *pdev,
|
||||
}
|
||||
|
||||
/* Init PCI sw */
|
||||
- err = !rtl_pci_init(hw, pdev);
|
||||
+ err = rtl_pci_init(hw, pdev);
|
||||
if (err) {
|
||||
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
|
||||
("Failed to init PCI.\n"));
|
||||
--
|
||||
1.7.4.4
|
||||
|
1
sources
1
sources
|
@ -1,3 +1,2 @@
|
|||
364066fa18767ec0ae5f4e4abcf9dc51 linux-3.2.tar.xz
|
||||
8cfe037a7a7a356278ec3638e25ad506 compat-wireless-3.3-rc1-2.tar.bz2
|
||||
7481fa09f2efda915ed19a9da33a2e59 patch-3.2.10.xz
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
From a6c84622b7fa3ea5417a9d1d0ce0bc3e7fbe3be1 Mon Sep 17 00:00:00 2001
|
||||
From: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
Date: Wed, 1 Feb 2012 00:13:53 +0100
|
||||
Subject: [PATCH] ssb: fix cardbus slot in hostmode
|
||||
|
||||
ssb supports one extra device on the cardbus. This results in two
|
||||
devices in total, one beeing the host controller itself and the other
|
||||
the external device connected to the hostcontroller over cardbus.
|
||||
|
||||
This makes the cardbus slot work on the Linksys WRT150N.
|
||||
|
||||
Reported-by: Aaron Z <aaronz@pls-net.org>
|
||||
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/ssb/driver_pcicore.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/drivers/ssb/driver_pcicore.c b/drivers/ssb/driver_pcicore.c
|
||||
index 520e828..49d2091 100644
|
||||
--- a/drivers/ssb/driver_pcicore.c
|
||||
+++ b/drivers/ssb/driver_pcicore.c
|
||||
@@ -75,7 +75,7 @@ static u32 get_cfgspace_addr(struct ssb_pcicore *pc,
|
||||
u32 tmp;
|
||||
|
||||
/* We do only have one cardbus device behind the bridge. */
|
||||
- if (pc->cardbusmode && (dev >= 1))
|
||||
+ if (pc->cardbusmode && (dev > 1))
|
||||
goto out;
|
||||
|
||||
if (bus == 0) {
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
From e81a7bd55531a77d8c16d44766db4089c2983f1b Mon Sep 17 00:00:00 2001
|
||||
From: Tomas Vanek <Tomas.Vanek@fbl.cz>
|
||||
Date: Sun, 5 Feb 2012 15:51:53 +0200
|
||||
Subject: [PATCH] zd1211rw: firmware needs duration_id set to zero for
|
||||
non-pspoll frames
|
||||
|
||||
Some devices (iwl5100) cannot connect to zd1211rw based AP. It appears that
|
||||
zd1211 firmware messes up duration_id field if it is not set to zero by driver.
|
||||
|
||||
Sniffing traffic shows that zd1211 is transmitting frames with duration_id bits
|
||||
14 and 15 set and other bits appearing random. Setting duration_id at driver to
|
||||
zero results zd1211 outputting sane duration_id. This means that firmware is
|
||||
setting correct values itself and expects duration_id to be zero in first
|
||||
place.
|
||||
|
||||
Looking at vendor driver shows that only PSPoll frames have duration_id set by
|
||||
driver, for other frames duration_id left zero.
|
||||
|
||||
Original bug-report and attached patch at:
|
||||
http://sourceforge.net/mailarchive/message.php?msg_id=28759111
|
||||
|
||||
Reported-by: Tomas Vanek <Tomas.Vanek@fbl.cz>
|
||||
[modified original patch from bug-report, added check for pspoll frame]
|
||||
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
---
|
||||
drivers/net/wireless/zd1211rw/zd_mac.c | 8 ++++++++
|
||||
1 files changed, 8 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c
|
||||
index 0a70149..98a574a 100644
|
||||
--- a/drivers/net/wireless/zd1211rw/zd_mac.c
|
||||
+++ b/drivers/net/wireless/zd1211rw/zd_mac.c
|
||||
@@ -866,6 +866,14 @@ static int fill_ctrlset(struct zd_mac *mac,
|
||||
|
||||
ZD_ASSERT(frag_len <= 0xffff);
|
||||
|
||||
+ /*
|
||||
+ * Firmware computes the duration itself (for all frames except PSPoll)
|
||||
+ * and needs the field set to 0 at input, otherwise firmware messes up
|
||||
+ * duration_id and sets bits 14 and 15 on.
|
||||
+ */
|
||||
+ if (!ieee80211_is_pspoll(hdr->frame_control))
|
||||
+ hdr->duration_id = 0;
|
||||
+
|
||||
txrate = ieee80211_get_tx_rate(mac->hw, info);
|
||||
|
||||
cs->modulation = txrate->hw_value;
|
||||
--
|
||||
1.7.4.4
|
||||
|
Loading…
Reference in New Issue