Messages in this thread Patch in this message | | | Date | Sat, 05 Feb 2005 10:07:08 +0100 | From | matthieu castet <> | Subject | Re: [PATCH] PNPACPI parser fix |
| |
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); | |