linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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));

  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).