From: Ivo van Doorn <ivdoorn@gmail.com>
To: Gertjan van Wingerde <gwingerde@gmail.com>
Cc: users@rt2x00.serialmonkey.com, linux-wireless@vger.kernel.org
Subject: Re: [PATCH 5/6] rt2x00: Properly request tx headroom for alignment operations.
Date: Mon, 23 Nov 2009 19:33:04 +0100 [thread overview]
Message-ID: <200911231933.04875.IvDoorn@gmail.com> (raw)
In-Reply-To: <1258960565-26736-6-git-send-email-gwingerde@gmail.com>
On Monday 23 November 2009, Gertjan van Wingerde wrote:
> Current rt2x00 drivers may result in a "ieee80211_tx_status: headroom too
> small" error message when a frame needs to be properly aligned before
> transmitting it.
> This is because the space needed to ensure proper alignment isn't
> requested from mac80211.
> Fix this by adding sufficient amount of alignment space to the amount
> of headroom requested for TX frames.
>
> Reported-by: David Ellingsworth <david@identd.dyndns.org>
> Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
> Tested-by: David Ellingsworth <david@identd.dyndns.org>
> ---
> drivers/net/wireless/rt2x00/rt2400pci.c | 30 +++++++++++++++-------------
> drivers/net/wireless/rt2x00/rt2500pci.c | 30 +++++++++++++++-------------
> drivers/net/wireless/rt2x00/rt2500usb.c | 29 ++++++++++++++-------------
> drivers/net/wireless/rt2x00/rt2800lib.c | 7 +----
> drivers/net/wireless/rt2x00/rt2800pci.c | 31 +++++++++++++++--------------
> drivers/net/wireless/rt2x00/rt2800usb.c | 25 ++++++++++++-----------
> drivers/net/wireless/rt2x00/rt2x00.h | 7 ++++++
> drivers/net/wireless/rt2x00/rt2x00queue.c | 6 ++--
> drivers/net/wireless/rt2x00/rt61pci.c | 28 ++++++++++++++------------
> drivers/net/wireless/rt2x00/rt73usb.c | 27 +++++++++++++------------
> 10 files changed, 117 insertions(+), 103 deletions(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c
> index 6e68bc7..f534d70 100644
> --- a/drivers/net/wireless/rt2x00/rt2400pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2400pci.c
> @@ -1432,7 +1432,8 @@ static int rt2400pci_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
> IEEE80211_HW_SIGNAL_DBM |
> IEEE80211_HW_SUPPORTS_PS |
> IEEE80211_HW_PS_NULLFUNC_STACK;
> - rt2x00dev->hw->extra_tx_headroom = 0;
> + rt2x00dev->hw->extra_tx_headroom = rt2x00dev->ops->extra_tx_headroom +
> + RT2X00_ALIGN_SIZE;
Can't rt2x00lib initialize rt2x00dev->hw->extra_tx_headroom?
The drivers aren't performing the aligning, so it is logical that rt2x00lib
adds the required bytes rather than the drivers. The driver already sets
the value in ops->extra_tx_headroom, so it can rely on rt2x00lib to do the rest.
> diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
> index b809c49..de358b5 100644
> --- a/drivers/net/wireless/rt2x00/rt2800lib.c
> +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
> @@ -2030,11 +2030,8 @@ int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
> IEEE80211_HW_SUPPORTS_PS |
> IEEE80211_HW_PS_NULLFUNC_STACK;
>
> - if (rt2x00_intf_is_usb(rt2x00dev))
> - rt2x00dev->hw->extra_tx_headroom =
> - TXINFO_DESC_SIZE + TXWI_DESC_SIZE;
> - else if (rt2x00_intf_is_pci(rt2x00dev))
> - rt2x00dev->hw->extra_tx_headroom = TXWI_DESC_SIZE;
> + rt2x00dev->hw->extra_tx_headroom = rt2x00dev->ops->extra_tx_headroom +
> + RT2X00_L2PAD_SIZE;
In this case we don't use RT2X00_ALIGN_SIZE, but the driver does set a flag to tell
rt2x00lib that L2padding should be used rather then aligning. So this case would still
hold when it is moved to rt2x00lib.
> /*
> + * Constants for extra TX headroom for alignment purposes.
> + */
> +#define RT2X00_ALIGN_SIZE 4
> +#define RT2X00_L2PAD_SIZE 8
#define RT2X00_L2PAD_SIZE RT2X00_ALIGN_SIZE + 4
Would probably better indicate why you are using 8.
Ivo
next prev parent reply other threads:[~2009-11-23 18:33 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-23 7:15 [PATCH 0/6] Assorted fixes and cleanups for rt2x00 and mac80211 Gertjan van Wingerde
2009-11-23 7:16 ` [PATCH 1/6] rt2x00: Only initialize HT on rt2800 devices that support it Gertjan van Wingerde
2009-11-23 7:16 ` [PATCH 2/6] rt2x00: Remove unused variable frame_control from rt2x00mac_tx Gertjan van Wingerde
2009-11-23 7:16 ` [PATCH 3/6] rt2x00: Clean up use of rt2x00_intf_is_pci Gertjan van Wingerde
2009-11-23 7:16 ` [PATCH 4/6] rt2x00: Fix typo (lengt --> length) in rt2x00queue.c Gertjan van Wingerde
2009-11-23 7:16 ` [PATCH 5/6] rt2x00: Properly request tx headroom for alignment operations Gertjan van Wingerde
2009-11-23 7:16 ` [PATCH 6/6] mac80211: Allow extra TX headroom to be consumed by drivers Gertjan van Wingerde
2009-11-23 10:41 ` Johannes Berg
2009-11-23 19:26 ` Gertjan van Wingerde
2009-11-23 7:35 ` [PATCH 5/6] rt2x00: Properly request tx headroom for alignment operations Julian Calaby
2009-11-23 19:18 ` Gertjan van Wingerde
2009-11-23 10:38 ` Johannes Berg
2009-11-23 19:25 ` Gertjan van Wingerde
2009-11-23 18:33 ` Ivo van Doorn [this message]
2009-11-23 20:51 ` Gertjan van Wingerde
2009-11-23 18:29 ` [PATCH 4/6] rt2x00: Fix typo (lengt --> length) in rt2x00queue.c Ivo van Doorn
2009-11-23 18:13 ` [PATCH 3/6] rt2x00: Clean up use of rt2x00_intf_is_pci Ivo van Doorn
2009-11-23 18:12 ` [PATCH 2/6] rt2x00: Remove unused variable frame_control from rt2x00mac_tx Ivo van Doorn
2009-11-23 9:58 ` [PATCH 1/6] rt2x00: Only initialize HT on rt2800 devices that support it Simon Raffeiner
2009-11-23 19:20 ` Gertjan van Wingerde
2009-11-23 18:12 ` Ivo van Doorn
2009-11-23 19:30 ` Gertjan van Wingerde
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=200911231933.04875.IvDoorn@gmail.com \
--to=ivdoorn@gmail.com \
--cc=gwingerde@gmail.com \
--cc=linux-wireless@vger.kernel.org \
--cc=users@rt2x00.serialmonkey.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.