diff --git a/hermit/arch/x86/kernel/apic.c b/hermit/arch/x86/kernel/apic.c index fa6d77c87..9e583235c 100644 --- a/hermit/arch/x86/kernel/apic.c +++ b/hermit/arch/x86/kernel/apic.c @@ -50,7 +50,7 @@ extern const void kernel_start; #define IOAPIC_ADDR ((size_t) &kernel_start - 2*PAGE_SIZE) #define LAPIC_ADDR ((size_t) &kernel_start - 1*PAGE_SIZE) -#define MAX_APIC_CORES 128 +#define MAX_APIC_CORES MAX_CORES // IO APIC MMIO structure: write reg, then read or write data. typedef struct { diff --git a/hermit/include/hermit/config.h b/hermit/include/hermit/config.h index 45dc326ab..09a589b06 100644 --- a/hermit/include/hermit/config.h +++ b/hermit/include/hermit/config.h @@ -32,7 +32,7 @@ extern "C" { #endif -#define MAX_CORES 64 +#define MAX_CORES 128 #define MAX_TASKS (MAX_CORES*2+2) #define MAX_ISLE 8 #define MAX_FNAME 128 @@ -50,7 +50,6 @@ extern "C" { #define BYTE_ORDER LITTLE_ENDIAN -#define LIBOS #define DYNAMIC_TICKS #define BUILTIN_EXPECT(exp, b) __builtin_expect((exp), (b)) diff --git a/hermit/kernel/tasks.c b/hermit/kernel/tasks.c index 9aae78185..fe45ba017 100644 --- a/hermit/kernel/tasks.c +++ b/hermit/kernel/tasks.c @@ -409,8 +409,10 @@ int clone_task(tid_t* id, entry_point_t ep, void* arg, uint8_t prio) kprintf("start new thread %d on core %d with stack address %p\n", i, core_id, stack); out: - if (ret) + if (ret) { destroy_stack(stack, DEFAULT_STACK_SIZE); + destroy_stack(ist, KERNEL_STACK_SIZE); + } #if 0 if (core_id != CORE_ID) @@ -510,6 +512,7 @@ out: if (ret) { destroy_stack(stack, DEFAULT_STACK_SIZE); + destroy_stack(ist, KERNEL_STACK_SIZE); kfree(counter); }