libi386/biosacpi.c - bad RSDP checksum search

Andrew Pantyukhin infofarmer at freebsd.org
Wed Dec 9 10:32:53 UTC 2009


On Tue, Dec 08, 2009 at 04:49:13PM +0300, Andrew Pantyukhin wrote:
> Oops. I obviously made a wrong assumption. I'll try to confirm.

Yep, the good RSDP is found later.

So I think either a "bad checksum" should be followed by a "good
checksum" or it should only be printed if no good RSDP has been
found. Attached are a couple of alternative tiny patches.

Otherwise, a FAQ entry should be added to keep the mere mortals
like me from wondering about the error message. FWIW, it comes up
on many (most?) IBM System x machines.
-------------- next part --------------
Index: biosacpi.c
===================================================================
--- biosacpi.c	(revision 200054)
+++ biosacpi.c	(working copy)
@@ -129,6 +129,7 @@
 		printf("acpi: bad RSDP checksum (%d)\n", sum);
 		continue;
 	    }
+	    printf("acpi: good RSDP checksum (%d)\n", sum);
 	    return(rsdp);
 	}
     }
-------------- next part --------------
Index: biosacpi.c
===================================================================
--- biosacpi.c	(revision 200054)
+++ biosacpi.c	(working copy)
@@ -125,12 +125,12 @@
 	    sum = 0;
 	    for (idx = 0; idx < RSDP_CHECKSUM_LENGTH; idx++)
 		sum += *(cp + idx);
-	    if (sum != 0) {
-		printf("acpi: bad RSDP checksum (%d)\n", sum);
+	    if (sum != 0)
 		continue;
-	    }
 	    return(rsdp);
 	}
     }
+    if (sum != 0)
+	printf("acpi: no RSDP with good checksum found\n");
     return(NULL);
 }


More information about the freebsd-acpi mailing list