Re: [PATCH] PNPACPI parser fix

From: matthieu castet
Date: Sat Feb 05 2005 - 04:15:39 EST


Hi,

matthieu castet wrote:
Hi,

This patch is very old (11/2004), but never get merged even if acked by Shaohua Li.
As you can see in the bugzilla report (http://bugzilla.kernel.org/show_bug.cgi?id=3912), it solve parsing issue in the pnpacpi core : the pnpacpi parser supposed that are no
resource after EndDependentFn.

Please apply this patch.
Thanks.

Matthieu CASTET

oops, the attachement was wrong.

Here is the patch.


Regards,

Matthieu --- linux-2.6.9/drivers/pnp/pnpacpi/rsparser.c.old 2004-11-12 22:55:10.000000000 +0100
+++ linux-2.6.9/drivers/pnp/pnpacpi/rsparser.c 2004-11-20 10:44:36.000000000 +0100
@@ -443,6 +443,7 @@

struct acpipnp_parse_option_s {
struct pnp_option *option;
+ struct pnp_option *option_independent;
struct pnp_dev *dev;
};

@@ -506,7 +507,15 @@
parse_data->option = option;
break;
case ACPI_RSTYPE_END_DPF:
- return AE_CTRL_TERMINATE;
+ /*only one EndDependentFn is allowed*/
+ if (!parse_data->option_independent) {
+ pnp_warn("PnPACPI: more than one EndDependentFn");
+ return AE_ERROR;
+ }
+ parse_data->option = parse_data->option_independent;
+ parse_data->option_independent = NULL;
+ break;
default:
pnp_warn("PnPACPI:Option type: %d not handle", res->id);
return AE_ERROR;
@@ -524,6 +533,7 @@
parse_data.option = pnp_register_option_independent(dev);
if (!parse_data.option)
return AE_ERROR;
+ parse_data.option_independent = parse_data.option;
parse_data.dev = dev;
status = acpi_walk_resources(handle, METHOD_NAME__PRS,
pnpacpi_option_resource, &parse_data);