From: Chuck Ebbert <cebbert@redhat.com>
To: Al Viro <viro@ftp.linux.org.uk>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
Jeff Garzik <jgarzik@pobox.com>
Subject: Re: [PATCH] fix atl1 braino
Date: Tue, 13 Feb 2007 12:36:51 -0500 [thread overview]
Message-ID: <45D1F733.5050205@redhat.com> (raw)
In-Reply-To: <20070213071256.GF4095@ftp.linux.org.uk>
Al Viro wrote:
> Spot the bug...
>
> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
> ---
>
> diff --git a/drivers/net/atl1/atl1_hw.c b/drivers/net/atl1/atl1_hw.c
> index 08b2d78..e28707a 100644
> --- a/drivers/net/atl1/atl1_hw.c
> +++ b/drivers/net/atl1/atl1_hw.c
> @@ -357,7 +357,7 @@ void atl1_hash_set(struct atl1_hw *hw, u32 hash_value)
> */
> hash_reg = (hash_value >> 31) & 0x1;
> hash_bit = (hash_value >> 26) & 0x1F;
> - mta = ioread32((hw + REG_RX_HASH_TABLE) + (hash_reg << 2));
> + mta = ioread32((hw->hw_addr + REG_RX_HASH_TABLE) + (hash_reg << 2));
> mta |= (1 << hash_bit);
> iowrite32(mta, (hw->hw_addr + REG_RX_HASH_TABLE) + (hash_reg << 2));
> }
The comment above is funny:
349 /*
350 * The HASH Table is a register array of 2 32-bit registers.
351 * It is treated like an array of 64 bits. We want to set
352 * bit BitArray[hash_value]. So we figure out what register
353 * the bit is in, read it, OR in the new bit, then write
354 * back the new value. The register is determined by the
355 * upper 7 bits of the hash value and the bit within that
356 * register are determined by the lower 5 bits of the value.
How can you use seven bits to choose between two registers?
And they're not using the lower 5 bits, but rather bits 30..26.
prev parent reply other threads:[~2007-02-13 17:36 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-13 7:12 [PATCH] fix atl1 braino Al Viro
2007-02-13 17:21 ` Chris Snook
2007-02-13 17:36 ` Chuck Ebbert [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=45D1F733.5050205@redhat.com \
--to=cebbert@redhat.com \
--cc=jgarzik@pobox.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=viro@ftp.linux.org.uk \
/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.