protos/limine: Fix off-by-1 error in HHDM MAXPHYADDR bounds check
diff --git a/common/protos/limine.c b/common/protos/limine.c
index eaa62061..ee25bf91 100644
--- a/common/protos/limine.c
+++ b/common/protos/limine.c
@@ -570,7 +570,10 @@ noreturn void limine_load(char *config, char *cmdline) {
maxphyaddr = eax & 0xff;
}
- if (hhdm_span_top >= (uint64_t)1 << maxphyaddr) {
+ if (maxphyaddr > 64) {
+ panic(true, "limine: MAXPHYADDR > 64");
+ }
+ if (maxphyaddr < 64 && hhdm_span_top > (uint64_t)1 << maxphyaddr) {
panic(true, "limine: Top of HHDM exceeds maximum allowable MAXPHYADDR value");
}
#endif
