From: Bob Copeland <me@bobcopeland.com>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Jiri Slaby <jirislaby@gmail.com>,
Nick Kossifidis <mickflemm@gmail.com>,
"Luis R. Rodriguez" <mcgrof@qca.qualcomm.com>,
"John W. Linville" <linville@tuxdriver.com>,
linux-wireless@vger.kernel.org, ath5k-devel@venema.h4ckr.net,
kernel-janitors@vger.kernel.org
Subject: Re: [patch] ath5k: remove some unneeded error handling code
Date: Wed, 5 Oct 2011 08:33:24 -0400 [thread overview]
Message-ID: <20111005123324.GB3662@hash.lan> (raw)
In-Reply-To: <20111005054637.GA32077@elgon.mountain>
On Wed, Oct 05, 2011 at 08:46:37AM +0300, Dan Carpenter wrote:
> th5k_hw_setup_tx_queue() returns a valid offset into the ah->ah_txq[]
ath5k_....
> array. The ah->ah_txq[] and the ah->txqs[] array are the same size.
> Both have AR5K_NUM_TX_QUEUES elements. So this error handling code
> will never trigger.
This originally came from the HAL. I concur that this code will not
be executed, since the enum from which ath5k_hw_setup_tx_queue() selects
qnum has all elements less than AR5K_NUM_TX_QUEUES, which in turn is equal
to ARRAY_SIZE(ah->txqs). ath5k_hw_setup_tx_queue() already uses qnum in
a memset of a same-sized array (ah->txq).
> Also it's wrong. The call to ath5k_hw_release_tx_queue() with a qnum
> of AR5K_NUM_TX_QUEUES or more will just trigger a WARN_ON() and
> return. Or if it missed the WARN_ON(), it would just corrupt some
> memory and return.
"corrupt memory and return" sounds undeserving of the adverb 'just' :)
I guess you are trying to say that it should not have called
ath5k_hw_release_tx_queue() but I read this comment as saying the
ATH5K_ERR() was superfluous?
ath5k_hw_release_tx_queue() compares against the queue capabilities
instead of AR5K_NUM_TX_QUEUES, so there's extra potential for the
"just corrupt memory and return" case -- but since those are also
initialized to AR5K_NUM_TX_QUEUES{,_NO_QCU}, that case won't happen
either.
All that to say the patch is fine, but the patch description didn't
convince me so I double-checked. My comments above reflect how I
might have worded it.
Thanks for the patch!
Reviewed-by: Bob Copeland <me@bobcopeland.com>
>
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
>
> diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
> index e9ea38d..b346d04 100644
> --- a/drivers/net/wireless/ath/ath5k/base.c
> +++ b/drivers/net/wireless/ath/ath5k/base.c
> @@ -921,12 +921,6 @@ ath5k_txq_setup(struct ath5k_hw *ah,
> */
> return ERR_PTR(qnum);
> }
> - if (qnum >= ARRAY_SIZE(ah->txqs)) {
> - ATH5K_ERR(ah, "hw qnum %u out of range, max %tu!\n",
> - qnum, ARRAY_SIZE(ah->txqs));
> - ath5k_hw_release_tx_queue(ah, qnum);
> - return ERR_PTR(-EINVAL);
> - }
> txq = &ah->txqs[qnum];
> if (!txq->setup) {
> txq->qnum = qnum;
>
--
Bob Copeland %% www.bobcopeland.com
prev parent reply other threads:[~2011-10-05 13:04 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-05 5:46 [patch] ath5k: remove some unneeded error handling code Dan Carpenter
2011-10-05 12:33 ` Bob Copeland [this message]
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=20111005123324.GB3662@hash.lan \
--to=me@bobcopeland.com \
--cc=ath5k-devel@venema.h4ckr.net \
--cc=dan.carpenter@oracle.com \
--cc=jirislaby@gmail.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=mcgrof@qca.qualcomm.com \
--cc=mickflemm@gmail.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 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).