2022-03-17 15:26:08

by baihaowen

[permalink] [raw]
Subject: [PATCH] firmware: edd: Remove redundant condition

The logic !A || A && B is equivalent to !A || B. so we have
to make code clear.

Signed-off-by: Haowen Bai <[email protected]>
---
drivers/firmware/edd.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/firmware/edd.c b/drivers/firmware/edd.c
index 69353dd..5cc2389 100644
--- a/drivers/firmware/edd.c
+++ b/drivers/firmware/edd.c
@@ -685,8 +685,7 @@ static void edd_populate_dir(struct edd_device * edev)
int i;

for (i = 0; (attr = edd_attrs[i]) && !error; i++) {
- if (!attr->test ||
- (attr->test && attr->test(edev)))
+ if (!attr->test || attr->test(edev))
error = sysfs_create_file(&edev->kobj,&attr->attr);
}

--
2.7.4


2022-03-20 03:27:11

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] firmware: edd: Remove redundant condition

On Thu, Mar 17, 2022 at 06:05:20PM +0800, Haowen Bai wrote:
> The logic !A || A && B is equivalent to !A || B. so we have
> to make code clear.

But the logic here is:
(!A || (A && B))
not:
(!A || A && B)

as you write.

Is that the same? I don't want to have to dig up my son's logic
textbook...

How did you test this?

thanks,

greg k-h

2022-04-22 20:18:27

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] firmware: edd: Remove redundant condition

On Fri, Mar 18, 2022 at 10:33:12PM +0000, 白浩文 wrote:
> Dear Greg KH
>
> But the logic here is:
> (!A || (A && B))
> not:
> (!A || A && B)
>
> as you write
>
> No, what I wrote is
>
> the logic here is:
> (!A || (A && B))
> Is the same:
> (!A || B)

That is not what your changelog text says, and I quote:

> > The logic !A || A && B is equivalent to !A || B. so we have
> > to make code clear.

(note, top-posting is horrid and is why we do not do this, please fix
this in the future.)

So can you please fix up your changelog text to be correct and resend
it?

thanks,

greg k-h

2022-04-22 22:41:46

by baihaowen

[permalink] [raw]
Subject: [PATCH V2] firmware: edd: Remove redundant condition

The logic (!A || (A && B)) is equivalent to (!A || B). so we have
to make code clear.

Signed-off-by: Haowen Bai <[email protected]>
---
V1->V2:
change changelog text
1. !A || A && B -> (!A || (A && B))
2. !A || B -> (!A || B)

drivers/firmware/edd.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/firmware/edd.c b/drivers/firmware/edd.c
index 69353dd0ea22..5cc238916551 100644
--- a/drivers/firmware/edd.c
+++ b/drivers/firmware/edd.c
@@ -685,8 +685,7 @@ static void edd_populate_dir(struct edd_device * edev)
int i;

for (i = 0; (attr = edd_attrs[i]) && !error; i++) {
- if (!attr->test ||
- (attr->test && attr->test(edev)))
+ if (!attr->test || attr->test(edev))
error = sysfs_create_file(&edev->kobj,&attr->attr);
}

--
2.7.4