RE: [patch 11/18] pnpacpi: reject ACPI_PRODUCER resources

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



NAK, per Shaohua's comments in the bug report. 

>-----Original Message-----
>From: akpm@xxxxxxxx [mailto:akpm@xxxxxxxx] 
>Sent: Saturday, June 24, 2006 7:37 PM
>To: Brown, Len
>Cc: linux-acpi@xxxxxxxxxxxxxxx; akpm@xxxxxxxx; 
>castet.matthieu@xxxxxxx; ambx1@xxxxxxxxxx; 
>bjorn.helgaas@xxxxxx; uwe.bugla@xxxxxx
>Subject: [patch 11/18] pnpacpi: reject ACPI_PRODUCER resources
>
>
>From: matthieu castet <castet.matthieu@xxxxxxx>
>
>A patch in -mm kernel correct the parsing of "address 
>resources" of pnpacpi. 
>Before we assumed it was memory only, but it could be also IO.
>
>But this change show an hidden bug : some resources could be 
>producer type
>that are not handled by pnp layer.  So we should ignore the producer
>resources.
>
>This patch fixes bug 6292 
>(http://bugzilla.kernel.org/show_bug.cgi?id=6292).
>Some devices like PNP0A03 have 0xd00-0xffff and 0x0-0xcf7 as 
>IO producer 
>resources.
>
>Before correcting "address resources" parsing, it was seen as 
>memory and was
>harmless, because nobody tried to reserve this memory range as 
>it should be
>IO.
>
>With the correction it become IO resources, and make failed 
>all others device
>that want to register IO in this range and use pnp layer (like 
>a ISA sound
>card).
>
>The solution is to ignore producer resources
>
>Signed-off-by: Matthieu CASTET <castet.matthieu@xxxxxxx>
>Signed-off-by: Uwe Bugla <uwe.bugla@xxxxxx>
>Cc: Bjorn Helgaas <bjorn.helgaas@xxxxxx>
>Cc: Adam Belay <ambx1@xxxxxxxxxx>
>Cc: "Brown, Len" <len.brown@xxxxxxxxx>
>Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
>---
>
> drivers/pnp/pnpacpi/rsparser.c |    8 ++++++++
> 1 file changed, 8 insertions(+)
>
>diff -puN 
>drivers/pnp/pnpacpi/rsparser.c~pnpacpi-reject-acpi_producer-res
>ources drivers/pnp/pnpacpi/rsparser.c
>--- 
>a/drivers/pnp/pnpacpi/rsparser.c~pnpacpi-reject-acpi_producer-resources
>+++ a/drivers/pnp/pnpacpi/rsparser.c
>@@ -170,6 +170,9 @@ pnpacpi_parse_allocated_address_space(st
> 		return;
> 	}
> 
>+	if (p->producer_consumer == ACPI_PRODUCER)
>+		return;
>+
> 	if (p->resource_type == ACPI_MEMORY_RANGE)
> 		pnpacpi_parse_allocated_memresource(res_table,
> 				p->minimum, p->address_length);
>@@ -248,9 +251,14 @@ static acpi_status pnpacpi_allocated_res
> 		break;
> 
> 	case ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64:
>+		if (res->data.ext_address64.producer_consumer 
>== ACPI_PRODUCER)
>+			return AE_OK;
> 		break;
> 
> 	case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
>+		if (res->data.extended_irq.producer_consumer == 
>ACPI_PRODUCER)
>+			return AE_OK;
>+
> 		for (i = 0; i < 
>res->data.extended_irq.interrupt_count; i++) {
> 			pnpacpi_parse_allocated_irqresource(res_table,
> 				res->data.extended_irq.interrupts[i],
>_
>
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux