2016-10-12 01:20:57

by majun (Euler7)

[permalink] [raw]
Subject: [PATCH] ACPI: fix the process flow for 0 which return from acpi_register_gsi

The return value 0 from acpi_register_gsi() means irq mapping failed.
So, we should process this case in else branch.

Signed-off-by: MaJun <[email protected]>
---
drivers/acpi/resource.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
index 56241eb..9918326 100644
--- a/drivers/acpi/resource.c
+++ b/drivers/acpi/resource.c
@@ -416,7 +416,7 @@ static void acpi_dev_get_irqresource(struct resource *res, u32 gsi,

res->flags = acpi_dev_irq_flags(triggering, polarity, shareable);
irq = acpi_register_gsi(NULL, gsi, triggering, polarity);
- if (irq >= 0) {
+ if (irq > 0) {
res->start = irq;
res->end = irq;
} else {
--
1.7.12.4



2016-10-12 02:07:24

by Hanjun Guo

[permalink] [raw]
Subject: Re: [PATCH] ACPI: fix the process flow for 0 which return from acpi_register_gsi

On 2016/10/12 9:20, MaJun wrote:
> The return value 0 from acpi_register_gsi() means irq mapping failed.
> So, we should process this case in else branch.
>
> Signed-off-by: MaJun <[email protected]>
> ---
> drivers/acpi/resource.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
> index 56241eb..9918326 100644
> --- a/drivers/acpi/resource.c
> +++ b/drivers/acpi/resource.c
> @@ -416,7 +416,7 @@ static void acpi_dev_get_irqresource(struct resource *res, u32 gsi,
>
> res->flags = acpi_dev_irq_flags(triggering, polarity, shareable);
> irq = acpi_register_gsi(NULL, gsi, triggering, polarity);
> - if (irq >= 0) {
> + if (irq > 0) {

On x86 or IA64, irq 0 is a valid irq number as far as I know.

Thanks
Hanjun