tree 4e5fbd235eb36500ef1c8a9cc8755f6048eecda2
parent a406d9e63e1d7088aad22565449de2e109300e5c
author Matthieu Castet <[EMAIL PROTECTED]> Fri, 25 Mar 2005 22:03:15 -0500
committer Len Brown <[EMAIL PROTECTED]> Tue, 12 Jul 2005 07:54:59 -0400

[ACPI] PNPACPI parse error

http://bugzilla.kernel.org/show_bug.cgi?id=3912

Written-by: matthieu castet <[EMAIL PROTECTED]>
Acked-by: Shaohua Li <[EMAIL PROTECTED]>
Signed-off-by: Len Brown <[EMAIL PROTECTED]>

 drivers/pnp/pnpacpi/rsparser.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/pnp/pnpacpi/rsparser.c b/drivers/pnp/pnpacpi/rsparser.c
--- a/drivers/pnp/pnpacpi/rsparser.c
+++ b/drivers/pnp/pnpacpi/rsparser.c
@@ -444,6 +444,7 @@ pnpacpi_parse_fixed_mem32_option(struct 
 
 struct acpipnp_parse_option_s {
        struct pnp_option *option;
+       struct pnp_option *option_independent;
        struct pnp_dev *dev;
 };
 
@@ -507,7 +508,14 @@ static acpi_status pnpacpi_option_resour
                        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: unknown resource type %d", res->id);
                        return AE_ERROR;
@@ -525,6 +533,7 @@ acpi_status pnpacpi_parse_resource_optio
        parse_data.option = pnp_register_independent_option(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);
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to