summaryrefslogtreecommitdiff
path: root/kernel/acpi.c
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2014-09-03 16:05:48 +0200
committerMichal Idziorek <m.i@gmx.at>2014-09-03 16:05:48 +0200
commitae361f46b092264f5107eaaf8fc594e0ca679014 (patch)
tree560ec382c3b3c9b5759996df7fdcd8f6032a763c /kernel/acpi.c
parente5e674724ec527c45efaa1622d0e9a1618757ca3 (diff)
fix bug in apic.c and update of Readme
Diffstat (limited to 'kernel/acpi.c')
-rw-r--r--kernel/acpi.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/acpi.c b/kernel/acpi.c
index da16be8..586336c 100644
--- a/kernel/acpi.c
+++ b/kernel/acpi.c
@@ -65,8 +65,10 @@ uint8_t *apci_get_next_entry(uint8_t *addr,smp_processors *procdata)
// usable
if(addr[4]&1)
{
- if(procdata->processors>=SMP_MAX_PROC)
+ if(procdata->processors>=SMP_MAX_PROC){
+
panic(FOOLOS_MODULE_NAME,"we do not support that many processors. recompile with higher SMP_MAX_PROC.");
+ }
procdata->local_apic_id[procdata->processors]=addr[3];
procdata->processors++;
@@ -139,6 +141,8 @@ bool acpi_find(smp_processors *procdata)
{
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Looking for RSDP Table");
char *search=0x7ffff; //will be 16 bit aligned;
+ procdata->processors=0;
+ procdata->boot=0;
while(search<=0xfffff)
{