pnpacpi mishandles port io ADDRESS resources
Subsystems (2)
PATCH 1/1 pnpacpi mishandles port io ADDRESS resources
ACPI ADDRESSn resources can describe both memory and port io, but the current code assumes they're descibing memory, which isn't true for HP's ia64 systems.
drivers/pnp/pnpacpi/rsparser.c +24 -9
@@ -221,19 +221,34 @@ static acpi_status pnpacpi_allocated_res res->data.fixed_memory32.address_length);break ;case ACPI_RESOURCE_TYPE_ADDRESS16 : -pnpacpi_parse_allocated_memresource (res_table, - res->data.address16.minimum, - res->data.address16.address_length); +if (res->data.address.resource_type ==0 ) +pnpacpi_parse_allocated_memresource (res_table, + res->data.address16.minimum, + res->data.address16.address_length); +else if (res->data.address.resource_type ==1 ) +pnpacpi_parse_allocated_ioresource (res_table, + res->data.address16.minimum, + res->data.address16.address_length);break ;case ACPI_RESOURCE_TYPE_ADDRESS32 : -pnpacpi_parse_allocated_memresource (res_table, - res->data.address32.minimum, - res->data.address32.address_length); +if (res->data.address.resource_type ==0 ) +pnpacpi_parse_allocated_memresource (res_table, + res->data.address32.minimum, + res->data.address32.address_length); +else if (res->data.address.resource_type ==1 ) +pnpacpi_parse_allocated_ioresource (res_table, + res->data.address32.minimum, + res->data.address32.address_length);break ;case ACPI_RESOURCE_TYPE_ADDRESS64 : -pnpacpi_parse_allocated_memresource (res_table, - res->data.address64.minimum, - res->data.address64.address_length); +if (res->data.address.resource_type ==0 ) +pnpacpi_parse_allocated_memresource (res_table, + res->data.address64.minimum, + res->data.address64.address_length); +else if (res->data.address.resource_type ==1 ) +pnpacpi_parse_allocated_ioresource (res_table, + res->data.address64.minimum, + res->data.address64.address_length);break ;case ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64 :
Le Sat, 10 Jun 2006 10:41:50 -0600, Matthew Wilcox a écrit :
Quoted 5 lines
ACPI ADDRESSn resources can describe both memory and port io, but the current code assumes they're descibing memory, which isn't true for HP's ia64 systems.
There already a patch for that in -mm kernel
Matthieu
ACPI patch process problems again
Quoted 6 lines · Matthieu CASTET
Le Sat, 10 Jun 2006 10:41:50 -0600, Matthew Wilcox a ?crit?:
Quoted 4 lines
ACPI ADDRESSn resources can describe both memory and port io, but the current code assumes they're descibing memory, which isn't true for HP's ia64 systems.
There already a patch for that in -mm kernel
Yes, the original author just contacted me to tell me. It seems to me that we have a process problem when a bug gets fixed on March 28th, but not propagated upstream by June 10th. That's almost 11 weeks, and I'm sure it'll be more by the time it's finally merged. I thought the days of ACPI process problems were behind us ;-(
Re: ACPI patch process problems again
Hi,
Quoted 9 lines · Matthew Wilcox
Quoted 7 lines · Matthieu CASTET
Le Sat, 10 Jun 2006 10:41:50 -0600, Matthew Wilcox a ?crit?:
Quoted 4 lines
ACPI ADDRESSn resources can describe both memory and port io, but the current code assumes they're descibing memory, which isn't true for HP's ia64 systems.
Quoted 8 lines
Quoted 1 line
There already a patch for that in -mm kernel
Yes, the original author just contacted me to tell me. It seems to me that we have a process problem when a bug gets fixed on March 28th, but not propagated upstream by June 10th. That's almost 11 weeks, and I'm sure it'll be more by the time it's finally merged. I thought the days of ACPI process problems were behind us ;-(
The problem is that this patch (and your patch) introduce a regression for some boxes.
See http://bugzilla.kernel.org/show_bug.cgi?id=6292 for more info.
I submited today a fix for this regression.
Matthieu