From: Ivo van Doorn <ivdoorn@gmail.com>
To: Daniel Wagner <wagi@monom.org>
Cc: linux-wireless@vger.kernel.org,
Johannes Berg <johannes@sipsolutions.net>
Subject: Re: [PATCH] rt2x00mac: In error case stop netdev queue, free skb and return NETDEV_TX_OK
Date: Wed, 23 Jul 2008 19:02:46 +0200 [thread overview]
Message-ID: <200807231902.47026.IvDoorn@gmail.com> (raw)
In-Reply-To: <48875EE5.3060303@monom.org>
On Wednesday 23 July 2008, Daniel Wagner wrote:
> Ivo van Doorn wrote:
> > On Wednesday 23 July 2008, Daniel Wagner wrote:
> >> It is not allowed to use NETDEV_TX_BUSY in tx path anymore.
> >
> > If not, then why is mac80211 checking and handling the return value
> > and is tx() still a function returning an int. mac80211 is actually requeueing
> > the frame when the hardware fails to send it, so why should that be completely blocked?
>
> Well, I might be completely wrong here. I got this idea from following mail on netdev:
> http://marc.info/?l=linux-wireless&m=121025252321824&w=2
Hmm, well Johannes just indicated that the code I mentioned earlier will be removed,
in that case I am fine with a patch like this, however with a few adjustments. ;)
> >> --- a/drivers/net/wireless/rt2x00/rt2x00mac.c
> >> +++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
> >> @@ -46,7 +46,7 @@ static int rt2x00mac_tx_rts_cts(struct rt2x00_dev *rt2x00dev,
> >> skb = dev_alloc_skb(size + rt2x00dev->hw->extra_tx_headroom);
> >> if (!skb) {
> >> WARNING(rt2x00dev, "Failed to create RTS/CTS frame.\n");
> >> - return NETDEV_TX_BUSY;
> >> + return -1;
> >
> > I am kind of missing the point here, this patch seems to come down to:
> > We can't return TX_BUSY so we return a random other value
>
> Unfortunately yes. The last return in this function is still NETDEV_TX_OK. My idea
> was to return 0 on success in error -1. Is this not the expected normal
> 'typeless' return behavior of a function, no?
Please make it a decent -E... error code then. Looks far less obscure then -1.
Also could you make the exit code with
ieee80211_stop_queue(rt2x00dev->hw, qid);
dev_kfree_skb_any(skb);
return NETDEV_TX_OK;
and exit_fail goto?
Saves a lot of duplicate code. ;)
Thanks,
Ivo
next prev parent reply other threads:[~2008-07-23 16:45 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-23 9:27 [PATCH] rt2x00mac: In error case stop netdev queue, free skb and return NETDEV_TX_OK Daniel Wagner
2008-07-23 16:22 ` Ivo van Doorn
2008-07-23 16:32 ` Johannes Berg
2008-07-23 16:40 ` Daniel Wagner
2008-07-23 17:02 ` Ivo van Doorn [this message]
2008-07-23 16:51 ` Daniel Wagner
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=200807231902.47026.IvDoorn@gmail.com \
--to=ivdoorn@gmail.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=wagi@monom.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).