2010-01-17 15:05:23

by Roel Kluin

[permalink] [raw]
Subject: [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 <[email protected]>
---
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())


2010-01-18 03:13:55

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] S2io: two branches the same in wait_for_cmd_complete()

From: Roel Kluin <[email protected]>
Date: Sun, 17 Jan 2010 16:10:04 +0100

> Regardless of the bit_state, the branches execute the same code.
>
> Signed-off-by: Roel Kluin <[email protected]>
> ---
> drivers/net/s2io.c | 13 +++----------
> 1 files changed, 3 insertions(+), 10 deletions(-)
>
> Maybe something else was intended?
> this was introduced in commit 9fc93a41a1ad11

If you know the guilty commit, at least do the author(s) of commit
and/or the driver maintainer(s) the courtesy of CC:'ing them on
patches like this.

I've fixed this up here in my reply.

> 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())

2010-01-18 03:58:39

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] S2io: two branches the same in wait_for_cmd_complete()

On Sun, 2010-01-17 at 19:13 -0800, David Miller wrote:
> From: Roel Kluin <[email protected]>
> Date: Sun, 17 Jan 2010 16:10:04 +0100
> > Regardless of the bit_state, the branches execute the same code.
> > Signed-off-by: Roel Kluin <[email protected]>
> > ---
> > drivers/net/s2io.c | 13 +++----------
> > 1 files changed, 3 insertions(+), 10 deletions(-)
> > Maybe something else was intended?
> > this was introduced in commit 9fc93a41a1ad11
> If you know the guilty commit, at least do the author(s) of commit
> and/or the driver maintainer(s) the courtesy of CC:'ing them on
> patches like this.

One way to do that is to use:
$ ./scripts/get_maintainer.pl --git-blame <patch>

2010-01-18 07:35:23

by Ramkrishna Vepa

[permalink] [raw]
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 <[email protected]>
> ---
> 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

2010-01-19 09:59:53

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] S2io: two branches the same in wait_for_cmd_complete()

From: "Ramkrishna Vepa" <[email protected]>
Date: Mon, 18 Jan 2010 02:20:06 -0500

> Thanks for catching this bug. The fix should be as follows -

This doesn't apply to net-2.6, and I'd need your signoff too.

Please fix this up and resubmit, thanks.