Skip to contentSkip to conversation

pnpacpi mishandles port io ADDRESS resources

PATCH In review Matthew Wilcox 2 participants 4 messages Jun 10, 2006

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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:
#1 lore raw

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

#2 lore raw

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 ;-(

#3 lore raw

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