All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] ACPI, PCI, ISA: Call ISA-specific code only for architectures which support ISA.
@ 2014-02-10 13:00 Tomasz Nowicki
  2014-02-10 13:00 ` [PATCH 2/2] ACPI, PCI, ISA: Fix memory leak when there is no IRQ in the ACPI subsystem Tomasz Nowicki
  2014-02-15  1:05 ` [PATCH 1/2] ACPI, PCI, ISA: Call ISA-specific code only for architectures which support ISA Rafael J. Wysocki
  0 siblings, 2 replies; 8+ messages in thread
From: Tomasz Nowicki @ 2014-02-10 13:00 UTC (permalink / raw)
  To: lenb, rjw; +Cc: linux-acpi, linux-kernel, Tomasz Nowicki

This commit enables ISA-specific code if and only if CONFIG_{E}ISA is set
in the kernel configuration so that we do not have to maintain
acpi_isa_irq_to_gsi() function for architectures which do not support ISA.

Signed-off-by: Tomasz Nowicki <tomasz.nowicki@linaro.org>
---
 drivers/acpi/pci_irq.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
index 41c5e1b..b0e31b6 100644
--- a/drivers/acpi/pci_irq.c
+++ b/drivers/acpi/pci_irq.c
@@ -418,6 +418,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
 	 * driver reported one, then use it. Exit in any case.
 	 */
 	if (gsi < 0) {
+#if IS_ENABLED(CONFIG_ISA) || IS_ENABLED(CONFIG_EISA)
 		u32 dev_gsi;
 		/* Interrupt Line values above 0xF are forbidden */
 		if (dev->irq > 0 && (dev->irq <= 0xF) &&
@@ -427,10 +428,9 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
 			acpi_register_gsi(&dev->dev, dev_gsi,
 					  ACPI_LEVEL_SENSITIVE,
 					  ACPI_ACTIVE_LOW);
-		} else {
-			dev_warn(&dev->dev, "PCI INT %c: no GSI\n",
-				 pin_name(pin));
-		}
+		} else
+#endif
+		dev_warn(&dev->dev, "PCI INT %c: no GSI\n", pin_name(pin));
 
 		return 0;
 	}
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] ACPI, PCI, ISA: Fix memory leak when there is no IRQ in the ACPI subsystem.
  2014-02-10 13:00 [PATCH 1/2] ACPI, PCI, ISA: Call ISA-specific code only for architectures which support ISA Tomasz Nowicki
@ 2014-02-10 13:00 ` Tomasz Nowicki
  2014-02-18  1:02   ` Rafael J. Wysocki
  2014-02-15  1:05 ` [PATCH 1/2] ACPI, PCI, ISA: Call ISA-specific code only for architectures which support ISA Rafael J. Wysocki
  1 sibling, 1 reply; 8+ messages in thread
From: Tomasz Nowicki @ 2014-02-10 13:00 UTC (permalink / raw)
  To: lenb, rjw; +Cc: linux-acpi, linux-kernel, Tomasz Nowicki

Whenever we register ISA interrupt or not, we need to free the IRQ routing
table entry.

Signed-off-by: Tomasz Nowicki <tomasz.nowicki@linaro.org>
---
 drivers/acpi/pci_irq.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
index b0e31b6..6ec0f36 100644
--- a/drivers/acpi/pci_irq.c
+++ b/drivers/acpi/pci_irq.c
@@ -432,6 +432,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
 #endif
 		dev_warn(&dev->dev, "PCI INT %c: no GSI\n", pin_name(pin));
 
+		kfree(entry);
 		return 0;
 	}
 
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] ACPI, PCI, ISA: Call ISA-specific code only for architectures which support ISA.
  2014-02-10 13:00 [PATCH 1/2] ACPI, PCI, ISA: Call ISA-specific code only for architectures which support ISA Tomasz Nowicki
  2014-02-10 13:00 ` [PATCH 2/2] ACPI, PCI, ISA: Fix memory leak when there is no IRQ in the ACPI subsystem Tomasz Nowicki
@ 2014-02-15  1:05 ` Rafael J. Wysocki
  2014-02-19 10:28   ` Tomasz Nowicki
  1 sibling, 1 reply; 8+ messages in thread
From: Rafael J. Wysocki @ 2014-02-15  1:05 UTC (permalink / raw)
  To: Tomasz Nowicki; +Cc: lenb, linux-acpi, linux-kernel

On Monday, February 10, 2014 02:00:10 PM Tomasz Nowicki wrote:
> This commit enables ISA-specific code if and only if CONFIG_{E}ISA is set
> in the kernel configuration so that we do not have to maintain
> acpi_isa_irq_to_gsi() function for architectures which do not support ISA.
> 
> Signed-off-by: Tomasz Nowicki <tomasz.nowicki@linaro.org>
> ---
>  drivers/acpi/pci_irq.c |    8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
> index 41c5e1b..b0e31b6 100644
> --- a/drivers/acpi/pci_irq.c
> +++ b/drivers/acpi/pci_irq.c
> @@ -418,6 +418,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
>  	 * driver reported one, then use it. Exit in any case.
>  	 */
>  	if (gsi < 0) {
> +#if IS_ENABLED(CONFIG_ISA) || IS_ENABLED(CONFIG_EISA)

Can you please move the code in question into a separate function and make
that function depend on the above (with an empty stub for when they are not
enabled)?

>  		u32 dev_gsi;
>  		/* Interrupt Line values above 0xF are forbidden */
>  		if (dev->irq > 0 && (dev->irq <= 0xF) &&
> @@ -427,10 +428,9 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
>  			acpi_register_gsi(&dev->dev, dev_gsi,
>  					  ACPI_LEVEL_SENSITIVE,
>  					  ACPI_ACTIVE_LOW);
> -		} else {
> -			dev_warn(&dev->dev, "PCI INT %c: no GSI\n",
> -				 pin_name(pin));
> -		}
> +		} else
> +#endif
> +		dev_warn(&dev->dev, "PCI INT %c: no GSI\n", pin_name(pin));
>  
>  		return 0;
>  	}
> 

-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] ACPI, PCI, ISA: Fix memory leak when there is no IRQ in the ACPI subsystem.
  2014-02-10 13:00 ` [PATCH 2/2] ACPI, PCI, ISA: Fix memory leak when there is no IRQ in the ACPI subsystem Tomasz Nowicki
@ 2014-02-18  1:02   ` Rafael J. Wysocki
  2014-02-18 10:21     ` Tomasz Nowicki
  0 siblings, 1 reply; 8+ messages in thread
From: Rafael J. Wysocki @ 2014-02-18  1:02 UTC (permalink / raw)
  To: Tomasz Nowicki; +Cc: lenb, linux-acpi, linux-kernel

On Monday, February 10, 2014 02:00:11 PM Tomasz Nowicki wrote:
> Whenever we register ISA interrupt or not, we need to free the IRQ routing
> table entry.
> 
> Signed-off-by: Tomasz Nowicki <tomasz.nowicki@linaro.org>
> ---
>  drivers/acpi/pci_irq.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
> index b0e31b6..6ec0f36 100644
> --- a/drivers/acpi/pci_irq.c
> +++ b/drivers/acpi/pci_irq.c
> @@ -432,6 +432,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
>  #endif
>  		dev_warn(&dev->dev, "PCI INT %c: no GSI\n", pin_name(pin));
>  
> +		kfree(entry);

If I'm not mistaken, entry is always NULL here, isn't it?

>  		return 0;
>  	}
>  
> 

-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] ACPI, PCI, ISA: Fix memory leak when there is no IRQ in the ACPI subsystem.
  2014-02-18  1:02   ` Rafael J. Wysocki
@ 2014-02-18 10:21     ` Tomasz Nowicki
  2014-02-18 15:26       ` Rafael J. Wysocki
  0 siblings, 1 reply; 8+ messages in thread
From: Tomasz Nowicki @ 2014-02-18 10:21 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: lenb, linux-acpi, linux-kernel

On 18.02.2014 02:02, Rafael J. Wysocki wrote:
> On Monday, February 10, 2014 02:00:11 PM Tomasz Nowicki wrote:
>> Whenever we register ISA interrupt or not, we need to free the IRQ routing
>> table entry.
>>
>> Signed-off-by: Tomasz Nowicki <tomasz.nowicki@linaro.org>
>> ---
>>   drivers/acpi/pci_irq.c |    1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
>> index b0e31b6..6ec0f36 100644
>> --- a/drivers/acpi/pci_irq.c
>> +++ b/drivers/acpi/pci_irq.c
>> @@ -432,6 +432,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
>>   #endif
>>   		dev_warn(&dev->dev, "PCI INT %c: no GSI\n", pin_name(pin));
>>
>> +		kfree(entry);
>
> If I'm not mistaken, entry is always NULL here, isn't it?
acpi_pci_link_allocate_irq() can return negative gsi even if entry != 
NULL. For that case we'd have memory leak.
>
>>   		return 0;
>>   	}
>>
>>
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] ACPI, PCI, ISA: Fix memory leak when there is no IRQ in the ACPI subsystem.
  2014-02-18 10:21     ` Tomasz Nowicki
@ 2014-02-18 15:26       ` Rafael J. Wysocki
  2014-02-19 10:26         ` Tomasz Nowicki
  0 siblings, 1 reply; 8+ messages in thread
From: Rafael J. Wysocki @ 2014-02-18 15:26 UTC (permalink / raw)
  To: Tomasz Nowicki; +Cc: lenb, linux-acpi, linux-kernel

On Tuesday, February 18, 2014 11:21:39 AM Tomasz Nowicki wrote:
> On 18.02.2014 02:02, Rafael J. Wysocki wrote:
> > On Monday, February 10, 2014 02:00:11 PM Tomasz Nowicki wrote:
> >> Whenever we register ISA interrupt or not, we need to free the IRQ routing
> >> table entry.
> >>
> >> Signed-off-by: Tomasz Nowicki <tomasz.nowicki@linaro.org>
> >> ---
> >>   drivers/acpi/pci_irq.c |    1 +
> >>   1 file changed, 1 insertion(+)
> >>
> >> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
> >> index b0e31b6..6ec0f36 100644
> >> --- a/drivers/acpi/pci_irq.c
> >> +++ b/drivers/acpi/pci_irq.c
> >> @@ -432,6 +432,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
> >>   #endif
> >>   		dev_warn(&dev->dev, "PCI INT %c: no GSI\n", pin_name(pin));
> >>
> >> +		kfree(entry);
> >
> > If I'm not mistaken, entry is always NULL here, isn't it?
>
> acpi_pci_link_allocate_irq() can return negative gsi even if entry != 
> NULL. For that case we'd have memory leak.

And that's what your changelog should be saying, isn't it?

Queued up for 3.14 and marked for -stable.  I had to rebase it, though, so
please check the result in linux-pm.git/linux-next.

Thanks!

-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] ACPI, PCI, ISA: Fix memory leak when there is no IRQ in the ACPI subsystem.
  2014-02-18 15:26       ` Rafael J. Wysocki
@ 2014-02-19 10:26         ` Tomasz Nowicki
  0 siblings, 0 replies; 8+ messages in thread
From: Tomasz Nowicki @ 2014-02-19 10:26 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: lenb, linux-acpi, linux-kernel

On 18.02.2014 16:26, Rafael J. Wysocki wrote:
> On Tuesday, February 18, 2014 11:21:39 AM Tomasz Nowicki wrote:
>> On 18.02.2014 02:02, Rafael J. Wysocki wrote:
>>> On Monday, February 10, 2014 02:00:11 PM Tomasz Nowicki wrote:
>>>> Whenever we register ISA interrupt or not, we need to free the IRQ routing
>>>> table entry.
>>>>
>>>> Signed-off-by: Tomasz Nowicki <tomasz.nowicki@linaro.org>
>>>> ---
>>>>    drivers/acpi/pci_irq.c |    1 +
>>>>    1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
>>>> index b0e31b6..6ec0f36 100644
>>>> --- a/drivers/acpi/pci_irq.c
>>>> +++ b/drivers/acpi/pci_irq.c
>>>> @@ -432,6 +432,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
>>>>    #endif
>>>>    		dev_warn(&dev->dev, "PCI INT %c: no GSI\n", pin_name(pin));
>>>>
>>>> +		kfree(entry);
>>>
>>> If I'm not mistaken, entry is always NULL here, isn't it?
>>
>> acpi_pci_link_allocate_irq() can return negative gsi even if entry !=
>> NULL. For that case we'd have memory leak.
>
> And that's what your changelog should be saying, isn't it?
It should, sorry.
>
> Queued up for 3.14 and marked for -stable.  I had to rebase it, though, so
> please check the result in linux-pm.git/linux-next.
It's OK. Thanks.

Tomasz

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] ACPI, PCI, ISA: Call ISA-specific code only for architectures which support ISA.
  2014-02-15  1:05 ` [PATCH 1/2] ACPI, PCI, ISA: Call ISA-specific code only for architectures which support ISA Rafael J. Wysocki
@ 2014-02-19 10:28   ` Tomasz Nowicki
  0 siblings, 0 replies; 8+ messages in thread
From: Tomasz Nowicki @ 2014-02-19 10:28 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: lenb, linux-acpi, linux-kernel



On 15.02.2014 02:05, Rafael J. Wysocki wrote:
> On Monday, February 10, 2014 02:00:10 PM Tomasz Nowicki wrote:
>> This commit enables ISA-specific code if and only if CONFIG_{E}ISA is set
>> in the kernel configuration so that we do not have to maintain
>> acpi_isa_irq_to_gsi() function for architectures which do not support ISA.
>>
>> Signed-off-by: Tomasz Nowicki <tomasz.nowicki@linaro.org>
>> ---
>>   drivers/acpi/pci_irq.c |    8 ++++----
>>   1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c
>> index 41c5e1b..b0e31b6 100644
>> --- a/drivers/acpi/pci_irq.c
>> +++ b/drivers/acpi/pci_irq.c
>> @@ -418,6 +418,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
>>   	 * driver reported one, then use it. Exit in any case.
>>   	 */
>>   	if (gsi < 0) {
>> +#if IS_ENABLED(CONFIG_ISA) || IS_ENABLED(CONFIG_EISA)
>
> Can you please move the code in question into a separate function and make
> that function depend on the above (with an empty stub for when they are not
> enabled)?
Thanks for suggestion, I will resend as next version.
>
>>   		u32 dev_gsi;
>>   		/* Interrupt Line values above 0xF are forbidden */
>>   		if (dev->irq > 0 && (dev->irq <= 0xF) &&
>> @@ -427,10 +428,9 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
>>   			acpi_register_gsi(&dev->dev, dev_gsi,
>>   					  ACPI_LEVEL_SENSITIVE,
>>   					  ACPI_ACTIVE_LOW);
>> -		} else {
>> -			dev_warn(&dev->dev, "PCI INT %c: no GSI\n",
>> -				 pin_name(pin));
>> -		}
>> +		} else
>> +#endif
>> +		dev_warn(&dev->dev, "PCI INT %c: no GSI\n", pin_name(pin));
>>
>>   		return 0;
>>   	}
>>
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-02-19 10:28 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-10 13:00 [PATCH 1/2] ACPI, PCI, ISA: Call ISA-specific code only for architectures which support ISA Tomasz Nowicki
2014-02-10 13:00 ` [PATCH 2/2] ACPI, PCI, ISA: Fix memory leak when there is no IRQ in the ACPI subsystem Tomasz Nowicki
2014-02-18  1:02   ` Rafael J. Wysocki
2014-02-18 10:21     ` Tomasz Nowicki
2014-02-18 15:26       ` Rafael J. Wysocki
2014-02-19 10:26         ` Tomasz Nowicki
2014-02-15  1:05 ` [PATCH 1/2] ACPI, PCI, ISA: Call ISA-specific code only for architectures which support ISA Rafael J. Wysocki
2014-02-19 10:28   ` Tomasz Nowicki

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.