From: Larry Finger <Larry.Finger@lwfinger.net>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: Herton Ronaldo Krzesinski <herton@mandriva.com.br>,
Hin-Tak Leung <hintak.leung@gmail.com>,
Pavel Roskin <proski@gnu.org>,
linux-wireless@vger.kernel.org
Subject: Re: Commit 741b4fbc44 (mac80211: fix TX sequence numbers) breaks rtl8187
Date: Wed, 23 Jul 2008 10:32:25 -0500 [thread overview]
Message-ID: <48874F09.7060400@lwfinger.net> (raw)
In-Reply-To: <1216824917.13587.9.camel@johannes.berg>
Johannes Berg wrote:
> On Wed, 2008-07-23 at 00:43 -0500, Larry Finger wrote:
>> Johannes,
>>
>> In the current wireless-testing (v2.6.26-rc9-14207-ga520bdb), rtl8187 is broken.
>> In most cases, it is unable to complete a connection. Occasionally, it will
>> authenticate and even get an IP using DHCP; however, only a few pings get
>> through to the AP before the connection fails completely.
>>
>> Using bisection, this problem was traced to:
>>
>> ==================================================
>> commit 741b4fbc441dba885cc8f97a10e87f2acd04c5f2
>> Author: Johannes Berg <johannes@sipsolutions.net>
>> Date: Thu Jul 10 11:21:26 2008 +0200
>>
>> mac80211: fix TX sequence numbers
>
>> The validity of the bisection was confirmed by reverse application of the patch.
>> The resulting driver worked.
>>
>> The appears that rtl8187 needs some kind of modification such as b43, b43legacy,
>> and rt2x00 got in the original patch. I'll be studying the changes to the other
>> drivers to see if I can find the problem, but I will appreciate your help when
>> you get a chance. Perhaps after your trip to Canada is over.
>
> Oh, crap. If you look at the patch, it removes the sequence numbers for
> non-TID frames, and puts them back into rt2x00 because I thought rt2x00
> was the only driver that needed software sequence numbering. It looks
> like rtl8187 and zd1211 might need that too, so we need to copy the
> rt2x00 code that I put into that particular patch to those drivers.
I tried something like that, but it didn't work. Maybe you can see what is wrong
here:
Index: wireless-testing/drivers/net/wireless/rtl8187.h
===================================================================
--- wireless-testing.orig/drivers/net/wireless/rtl8187.h
+++ wireless-testing/drivers/net/wireless/rtl8187.h
@@ -100,6 +100,7 @@ struct rtl8187_priv {
struct usb_device *udev;
u32 rx_conf;
u16 txpwr_base;
+ u16 seqno;
u8 asic_rev;
u8 is_rtl8187b;
enum {
Index: wireless-testing/drivers/net/wireless/rtl8187_dev.c
===================================================================
--- wireless-testing.orig/drivers/net/wireless/rtl8187_dev.c
+++ wireless-testing/drivers/net/wireless/rtl8187_dev.c
@@ -169,6 +169,7 @@ static int rtl8187_tx(struct ieee80211_h
{
struct rtl8187_priv *priv = dev->priv;
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
+ struct ieee80211_hdr *ieee80211hdr = (struct ieee80211_hdr *)skb->data;
unsigned int ep;
void *buf;
struct urb *urb;
@@ -198,6 +199,14 @@ static int rtl8187_tx(struct ieee80211_h
flags |= ieee80211_get_rts_cts_rate(dev, info)->hw_value << 19;
}
+ /* XXX: This sequence is an attempt to match what happens in r2x00. */
+ if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ) {
+ if (info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT)
+ priv->seqno += 0x10;
+ ieee80211hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
+ ieee80211hdr->seq_ctrl |= cpu_to_le16(priv->seqno);
+ }
+
if (!priv->is_rtl8187b) {
struct rtl8187_tx_hdr *hdr =
(struct rtl8187_tx_hdr *)skb_push(skb, sizeof(*hdr));
next prev parent reply other threads:[~2008-07-23 15:32 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-17 15:02 [RFC/RFT] rtl8187: Improve wireless statistics for RTL8187B Larry Finger
2008-07-19 0:42 ` Herton Ronaldo Krzesinski
2008-07-19 4:14 ` Larry Finger
2008-07-20 0:39 ` Hin-Tak Leung
2008-07-20 2:55 ` Larry Finger
2008-07-22 19:13 ` Herton Ronaldo Krzesinski
2008-07-22 22:25 ` Hin-Tak Leung
2008-07-22 22:40 ` Herton Ronaldo Krzesinski
2008-07-23 3:49 ` Larry Finger
2008-07-23 5:43 ` Commit 741b4fbc44 (mac80211: fix TX sequence numbers) breaks rtl8187 Larry Finger
2008-07-23 12:55 ` Stefanik Gábor
2008-07-24 14:22 ` Johannes Berg
2008-07-23 14:55 ` Johannes Berg
2008-07-23 15:32 ` Larry Finger [this message]
2008-07-23 16:27 ` Johannes Berg
2008-07-23 18:03 ` Larry Finger
2008-07-23 19:03 ` Johannes Berg
2008-07-24 3:28 ` Hin-Tak Leung
2008-07-24 5:40 ` Larry Finger
2008-07-24 8:05 ` Hin-Tak Leung
2008-07-24 11:34 ` Johannes Berg
2008-07-25 3:42 ` Hin-Tak Leung
2008-07-24 16:37 ` Herton Ronaldo Krzesinski
2008-07-25 1:28 ` Hin-Tak Leung
2008-07-29 2:39 ` Hin-Tak Leung
2008-07-29 3:15 ` Larry Finger
2008-07-29 3:29 ` Herton Ronaldo Krzesinski
2008-07-29 3:40 ` Larry Finger
2008-07-29 3:21 ` Herton Ronaldo Krzesinski
2008-07-29 6:53 ` Johannes Berg
2008-07-29 8:23 ` Tomas Winkler
2008-07-29 8:28 ` Johannes Berg
2008-07-29 8:38 ` Tomas Winkler
2008-07-29 9:16 ` Johannes Berg
2008-07-29 9:26 ` Tomas Winkler
2008-07-29 9:29 ` Johannes Berg
2008-07-29 11:16 ` Tomas Winkler
2008-07-29 11:18 ` Johannes Berg
2008-07-29 21:44 ` Kalle Valo
2008-07-29 21:40 ` Kalle Valo
2008-07-29 21:26 ` Kalle Valo
2008-07-29 21:19 ` Kalle Valo
2008-07-30 1:01 ` Hin-Tak Leung
2008-07-29 21:17 ` Kalle Valo
2008-07-29 21:12 ` Kalle Valo
2008-07-30 3:37 ` Herton Ronaldo Krzesinski
2008-07-30 8:54 ` Kalle Valo
2008-07-30 9:52 ` Johannes Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48874F09.7060400@lwfinger.net \
--to=larry.finger@lwfinger.net \
--cc=herton@mandriva.com.br \
--cc=hintak.leung@gmail.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=proski@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).