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