* [PATCH] power: supply: cpcap-battery: fix invalid usage of list cursor
@ 2021-04-14 6:47 zhuguangqing83
2021-04-20 14:13 ` Sebastian Reichel
0 siblings, 1 reply; 2+ messages in thread
From: zhuguangqing83 @ 2021-04-14 6:47 UTC (permalink / raw)
To: Sebastian Reichel; +Cc: linux-pm, linux-kernel, Guangqing Zhu
From: Guangqing Zhu <zhuguangqing83@gmail.com>
Fix invalid usage of a list_for_each_entry in cpcap_battery_irq_thread().
When list is empty or if the list is completely traversed (without breaking
from the loop on one of the entries) then the list cursor does not point
to a valid entry and therefore should not be used. "if (!d)" will never
happen, maybe we should use "if (&d->node == &ddata->irq_list)".
Fixes: 874b2adbed125 ("power: supply: cpcap-battery: Add a battery driver")
Signed-off-by: Guangqing Zhu <zhuguangqing83@gmail.com>
---
drivers/power/supply/cpcap-battery.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/power/supply/cpcap-battery.c b/drivers/power/supply/cpcap-battery.c
index 6d5bcdb9f45d..8169dc71a786 100644
--- a/drivers/power/supply/cpcap-battery.c
+++ b/drivers/power/supply/cpcap-battery.c
@@ -786,7 +786,7 @@ static irqreturn_t cpcap_battery_irq_thread(int irq, void *data)
break;
}
- if (!d)
+ if (&d->node == &ddata->irq_list)
return IRQ_NONE;
latest = cpcap_battery_latest(ddata);
--
2.17.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] power: supply: cpcap-battery: fix invalid usage of list cursor
2021-04-14 6:47 [PATCH] power: supply: cpcap-battery: fix invalid usage of list cursor zhuguangqing83
@ 2021-04-20 14:13 ` Sebastian Reichel
0 siblings, 0 replies; 2+ messages in thread
From: Sebastian Reichel @ 2021-04-20 14:13 UTC (permalink / raw)
To: zhuguangqing83; +Cc: linux-pm, linux-kernel, Tony Lindgren
[-- Attachment #1: Type: text/plain, Size: 1519 bytes --]
[+Cc Tony]
Hi,
On Wed, Apr 14, 2021 at 02:47:24PM +0800, zhuguangqing83@gmail.com wrote:
> From: Guangqing Zhu <zhuguangqing83@gmail.com>
>
> Fix invalid usage of a list_for_each_entry in cpcap_battery_irq_thread().
> When list is empty or if the list is completely traversed (without breaking
> from the loop on one of the entries) then the list cursor does not point
> to a valid entry and therefore should not be used. "if (!d)" will never
> happen, maybe we should use "if (&d->node == &ddata->irq_list)".
Commit message does not make sense. I think you meant to say:
Empty list or fully traversed list points to list head, which is not
NULL (and before the first element containing real data).
> Fixes: 874b2adbed125 ("power: supply: cpcap-battery: Add a battery driver")
> Signed-off-by: Guangqing Zhu <zhuguangqing83@gmail.com>
> ---
> drivers/power/supply/cpcap-battery.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/power/supply/cpcap-battery.c b/drivers/power/supply/cpcap-battery.c
> index 6d5bcdb9f45d..8169dc71a786 100644
> --- a/drivers/power/supply/cpcap-battery.c
> +++ b/drivers/power/supply/cpcap-battery.c
> @@ -786,7 +786,7 @@ static irqreturn_t cpcap_battery_irq_thread(int irq, void *data)
> break;
> }
>
> - if (!d)
> + if (&d->node == &ddata->irq_list)
> return IRQ_NONE;
Please use list_entry_is_head() instead of open coding it.
> latest = cpcap_battery_latest(ddata);
Thanks,
-- Sebastian
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-04-20 14:13 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-14 6:47 [PATCH] power: supply: cpcap-battery: fix invalid usage of list cursor zhuguangqing83
2021-04-20 14:13 ` Sebastian Reichel
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).