Search Linux Wireless

Re: [PATCHv2 00/21] cw1200: ST-Ericsson cw1200 wlan device driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



W dniu 5 maja 2012 09:20 użytkownik Janusz Dziedzic
<janusz.dziedzic@xxxxxxxxx> napisał:
> 2012/5/4 Kevin Groeneveld <kgroeneveld@xxxxxxxxx>:
>>>> So, you should configure this in cw1200_add_interface() for new
>>>> compat-wireless:
>>>>
>>>>        vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER |
>>>>                             IEEE80211_VIF_SUPPORTS_CQM_RSSI;
>>
>> I tried adding the above code today and I can now connect in station mode.
>>
>> While connected in station mode I get a lot of the following warnings
>> in the log:
>>
>> ieee80211 phy1: Slowpath: tailroom is not big enough. Req: 8, got: 0.
>>
>> Is that anything to worry about?
>
> Yes we have patch for this in mac80211. I can send you on monday.
> cw1200 firmware required pre-allocated IVs.
> Without that performance will be very poor.
>
> There is similar patch in community code - but seems not fullfill all
> our requirements.

Please check such patch, some modification added to:
mac80211: support adding IV-room in the skb for CCMP keys

diff --git a/drivers/staging/cw1200/sta.c b/drivers/staging/cw1200/sta.c
index db05b84..2011fda 100644
--- a/drivers/staging/cw1200/sta.c
+++ b/drivers/staging/cw1200/sta.c
@@ -701,6 +701,8 @@ int cw1200_set_key(struct ieee80211_hw *dev, enum
set_key_cmd cmd,
 		if (sta)
 			peer_addr = sta->addr;

+		key->flags |= IEEE80211_KEY_FLAG_PUT_IV_SPACE;
+
 		switch (key->cipher) {
 		case WLAN_CIPHER_SUITE_WEP40:
 		case WLAN_CIPHER_SUITE_WEP104:
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 965eca8..0da1806 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -939,7 +939,7 @@ static inline bool ieee80211_vif_is_mesh(struct
ieee80211_vif *vif)
  *	CCMP key if it requires CCMP encryption of management frames (MFP) to
  *	be done in software.
  * @IEEE80211_KEY_FLAG_PUT_IV_SPACE: This flag should be set by the driver
- *	for a CCMP key if space should be prepared for the IV, but the IV
+ *	for a CCMP key <why only ccmp?> if space should be prepared for
the IV, but the IV
  *	itself should not be generated. Do not set together with
  *	@IEEE80211_KEY_FLAG_GENERATE_IV on the same key.
  */
diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c
index 0ae23c6..8c9ae77 100644
--- a/net/mac80211/wpa.c
+++ b/net/mac80211/wpa.c
@@ -399,8 +399,7 @@ static int ccmp_encrypt_skb(struct
ieee80211_tx_data *tx, struct sk_buff *skb)
 	u8 scratch[6 * AES_BLOCK_SIZE];

 	if (info->control.hw_key &&
-	    !(info->control.hw_key->flags & IEEE80211_KEY_FLAG_GENERATE_IV) &&
-	    !(info->control.hw_key->flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE)) {
+	    !(info->control.hw_key->flags & IEEE80211_KEY_FLAG_GENERATE_IV)) {
 		/*
 		 * hwaccel has no need for preallocated room for CCMP
 		 * header or MIC fields


BR
Janusz

>
>>
>> The driver did seem to crash on me once today spewing out a lot of
>> WARNINGs and trace info to the log.  Unfortunately I didn't save the
>> log.  I will try to pay more attention to it if it happens again.
>>
>> I also did a bit more testing in AP mode.  After changing hostapd to
>> 802.11g mode I got much better throughput.  However, I did see quite a
>> few warnings in the log such as the following:
>>
>> [  296.854219] ieee80211 phy2: Missed interrupt?
>
> This is critical and this is firmware issue.
> After that driver can do recovery ...
> So, logs after that are not important much ...
>
>
>> [  297.104219] ieee80211 phy2: Multicast delivery timeout.
>> [  254.194450] ieee80211 phy2: Requeue for link_id 0 (try 1). STAs
>> asleep: 0x00000002
>> [   34.731942] ieee80211 phy2: Requeue for link_id 1 (try 1). STAs
>> asleep: 0x00000002
>> [  462.159614] ieee80211 phy2: Requeue for link_id 0 (try 1). STAs
>> asleep: 0x00000002
>> [  482.560642] ieee80211 phy2: Requeue for link_id 0 (try 1). STAs
>> asleep: 0x00000002
>> [  482.568372] ieee80211 phy2: Requeue for link_id 1 (try 1). STAs
>> asleep: 0x00000002
>> [  482.601447] ieee80211 phy2: Multicast delivery timeout.
>> [  482.736948] ieee80211 phy2: Requeue for link_id 0 (try 1). STAs
>> asleep: 0x00000006
>> [  482.879955] ieee80211 phy2: Requeue for link_id 1 (try 1). STAs
>> asleep: 0x00000006
>> [  483.052676] ieee80211 phy2: Requeue for link_id 0 (try 1). STAs
>> asleep: 0x00000006
>> [  483.570836] ieee80211 phy2: Requeue for link_id 1 (try 1). STAs
>> asleep: 0x00000006
>> [  483.578685] ieee80211 phy2: Requeue for link_id 1 (try 1). STAs
>> asleep: 0x00000006
>> [  483.765740] ieee80211 phy2: Requeue for link_id 1 (try 2). STAs
>> asleep: 0x00000006
>> [  483.773462] ieee80211 phy2: Requeue for link_id 1 (try 2). STAs
>> asleep: 0x00000006
>> [  484.340904] ieee80211 phy2: Requeue for link_id 0 (try 1). STAs
>> asleep: 0x00000006
>> [  484.348626] ieee80211 phy2: Requeue for link_id 1 (try 1). STAs
>> asleep: 0x00000006
>> [  484.356344] ieee80211 phy2: Requeue for link_id 1 (try 1). STAs
>> asleep: 0x00000006
>> [  484.670846] ieee80211 phy2: Requeue for link_id 1 (try 1). STAs
>> asleep: 0x00000006
>> [  484.903498] ieee80211 phy2: Requeue for link_id 0 (try 1). STAs
>> asleep: 0x00000006
>> [    2.101774] ieee80211 phy2: Requeue for link_id 0 (try 1). STAs
>> asleep: 0x00000000
>> [    2.109569] ieee80211 phy2: Requeue for link_id 0 (try 1). STAs
>> asleep: 0x00000000
>> [    2.119271] ieee80211 phy2: Requeue for link_id 0 (try 2). STAs
>> asleep: 0x00000000
>> [    2.128483] ieee80211 phy2: Requeue for link_id 0 (try 2). STAs
>> asleep: 0x00000004
>> [    2.137894] ieee80211 phy2: Requeue for link_id 0 (try 3). STAs
>> asleep: 0x00000004
>> [    5.629055] ieee80211 phy2: Requeue for link_id 0 (try 1). STAs
>> asleep: 0x00000004
>> [   81.020541] ieee80211 phy2: Missed interrupt?
>> [   85.050556] ieee80211 phy2: Missed interrupt?
>> [   96.410571] ieee80211 phy2: Missed interrupt?
>> [  100.410560] ieee80211 phy2: Missed interrupt?
>> [  105.700565] ieee80211 phy2: Missed interrupt?
>> [  119.410573] ieee80211 phy2: Missed interrupt?
>> [  140.050548] ieee80211 phy2: Missed interrupt?
>> [  156.993680] ieee80211 phy2: Requeue for link_id 0 (try 1). STAs
>> asleep: 0x00000004
>> [  157.001679] ieee80211 phy2: Requeue for link_id 0 (try 1). STAs
>> asleep: 0x00000004
>> [  157.240546] ieee80211 phy2: Multicast delivery timeout.
>> [  167.400528] ieee80211 phy2: Missed interrupt?
>>
>> Should I be worried about these?
>>
> Yes :)
>
>
> --
> Janusz Dziedzic



-- 
Janusz Dziedzic
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux