[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <78C9135A3D2ECE4B8162EBDCE82CAD77061418BF@nekter>
Date: Mon, 18 Jan 2010 02:20:06 -0500
From: "Ramkrishna Vepa" <Ramkrishna.Vepa@...erion.com>
To: "Roel Kluin" <roel.kluin@...il.com>, <netdev@...r.kernel.org>,
"Andrew Morton" <akpm@...ux-foundation.org>,
"LKML" <linux-kernel@...r.kernel.org>,
"David S. Miller" <davem@...emloft.net>
Subject: RE: [PATCH] S2io: two branches the same in wait_for_cmd_complete()
> Regardless of the bit_state, the branches execute the same code.
>
> Signed-off-by: Roel Kluin <roel.kluin@...il.com>
> ---
> drivers/net/s2io.c | 13 +++----------
> 1 files changed, 3 insertions(+), 10 deletions(-)
>
> Maybe something else was intended?
> this was introduced in commit 9fc93a41a1ad11
>
> diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
> index cc42186..0e353d6 100644
> --- a/drivers/net/s2io.c
> +++ b/drivers/net/s2io.c
> @@ -3415,16 +3415,9 @@ static int wait_for_cmd_complete(void __iomem
> *addr, u64 busy_bit,
>
> do {
> val64 = readq(addr);
> - if (bit_state == S2IO_BIT_RESET) {
> - if (!(val64 & busy_bit)) {
> - ret = SUCCESS;
> - break;
> - }
> - } else {
> - if (!(val64 & busy_bit)) {
> - ret = SUCCESS;
> - break;
> - }
> + if (!(val64 & busy_bit)) {
> + ret = SUCCESS;
> + break;
> }
>
> if (in_interrupt())
> --
Thanks for catching this bug. The fix should be as follows -
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -3421,7 +3421,7 @@ static int wait_for_cmd_complete(void __iomem
*addr, u64 busy_bit,
break;
}
} else {
- if (!(val64 & busy_bit)) {
+ if (val64 & busy_bit) {
ret = SUCCESS;
break;
}
We've not hit this bug because wait_for_cmd_complete() is always called
with S2IO_BIT_RESET.
Ram
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists