Search Linux Wireless

Re: Commit 741b4fbc44 (mac80211: fix TX sequence numbers) breaks rtl8187

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

 



On Wed, 2008-07-23 at 10:32 -0500, Larry Finger wrote:

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

Odd, that looks like it should work. Can you try printing the seqno and
see if it does increase? Or maybe I messed up something with the
flags...

johannes

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux