2021-08-02 12:19:03

by Tang Bin

[permalink] [raw]
Subject: [PATCH] input: cpcap-pwrbutton: Add an error handling

The function cpcap_power_button_probe() does not perform
sufficient error checking after executing platform_get_irq(),
thus fix it.

Signed-off-by: Tang Bin <[email protected]>
---
drivers/input/misc/cpcap-pwrbutton.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/input/misc/cpcap-pwrbutton.c b/drivers/input/misc/cpcap-pwrbutton.c
index 0abef6321..0a1f2e8b4 100644
--- a/drivers/input/misc/cpcap-pwrbutton.c
+++ b/drivers/input/misc/cpcap-pwrbutton.c
@@ -57,6 +57,9 @@ static int cpcap_power_button_probe(struct platform_device *pdev)
int irq = platform_get_irq(pdev, 0);
int err;

+ if (irq < 0)
+ return irq;
+
button = devm_kmalloc(&pdev->dev, sizeof(*button), GFP_KERNEL);
if (!button)
return -ENOMEM;
--
2.20.1.windows.1





2021-09-06 04:21:23

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [PATCH] input: cpcap-pwrbutton: Add an error handling

Hi,

On Mon, Aug 02, 2021 at 08:17:40PM +0800, Tang Bin wrote:
> The function cpcap_power_button_probe() does not perform
> sufficient error checking after executing platform_get_irq(),
> thus fix it.

Yes, indeed. request_irq will fail regardless, but it is nice to return
proper error code.

>
> Signed-off-by: Tang Bin <[email protected]>
> ---
> drivers/input/misc/cpcap-pwrbutton.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/input/misc/cpcap-pwrbutton.c b/drivers/input/misc/cpcap-pwrbutton.c
> index 0abef6321..0a1f2e8b4 100644
> --- a/drivers/input/misc/cpcap-pwrbutton.c
> +++ b/drivers/input/misc/cpcap-pwrbutton.c
> @@ -57,6 +57,9 @@ static int cpcap_power_button_probe(struct platform_device *pdev)
> int irq = platform_get_irq(pdev, 0);
> int err;
>
> + if (irq < 0)
> + return irq;

I moved the platform_get_irq() here and applied, thank you.

--
Dmitry