lkml.org 
[lkml]   [2005]   [Feb]   [5]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
DateSat, 05 Feb 2005 10:07:08 +0100
Frommatthieu castet <>
SubjectRe: [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);
\
 
 \ /
  Last update: 2005-03-22 14:10    [from the cache]
©2003-2008