From 28d9d4cfdea0d468c2e12e3670fce5253557259a Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Wed, 14 Jun 2017 16:34:12 +0200 Subject: [PATCH 1/3] remove obsolete comment --- drivers/net/mmnif.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/net/mmnif.c b/drivers/net/mmnif.c index 3ff08aa44..29e8034cf 100644 --- a/drivers/net/mmnif.c +++ b/drivers/net/mmnif.c @@ -686,8 +686,6 @@ err_t mmnif_init(struct netif *netif) /* maximum transfer unit */ netif->mtu = 1500; - /* broadcast capability, keep all default flags */ - //netif->flags |= NETIF_FLAG_BROADCAST; /* set link up */ netif->flags |= NETIF_FLAG_LINK_UP; From 278c7f21f03ffc4789e82f6806572fe2f4d4ae0c Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Wed, 14 Jun 2017 23:29:11 +0200 Subject: [PATCH 2/3] remove typo --- arch/x86/kernel/isrs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/isrs.c b/arch/x86/kernel/isrs.c index dd2583f27..f79cdbd0b 100644 --- a/arch/x86/kernel/isrs.c +++ b/arch/x86/kernel/isrs.c @@ -225,7 +225,7 @@ static void arch_fault_handler(struct state *s) else LOG_WARNING("Unknown exception %d", s->int_no); - LOG_ERROR(" Exception (%d) on core %d at %#x:%#lx, fs = %#lx, gs = %#lx, error code = 0x%#lx, task id = %u, rflags = %#x\n", + LOG_ERROR(" Exception (%d) on core %d at %#x:%#lx, fs = %#lx, gs = %#lx, error code = %#lx, task id = %u, rflags = %#x\n", s->int_no, CORE_ID, s->cs, s->rip, s->fs, s->gs, s->error, per_core(current_task)->id, s->rflags); LOG_ERROR("rax %#lx, rbx %#lx, rcx %#lx, rdx %#lx, rbp, %#lx, rsp %#lx rdi %#lx, rsi %#lx, r8 %#lx, r9 %#lx, r10 %#lx, r11 %#lx, r12 %#lx, r13 %#lx, r14 %#lx, r15 %#lx\n", s->rax, s->rbx, s->rcx, s->rdx, s->rbp, s->rsp, s->rdi, s->rsi, s->r8, s->r9, s->r10, s->r11, s->r12, s->r13, s->r14, s->r15); From 15153db3953a09c52ec4766135495abd24b74943 Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Wed, 14 Jun 2017 23:29:59 +0200 Subject: [PATCH 3/3] mov wakeup_core to task.c --- arch/x86/kernel/apic.c | 18 ------------------ arch/x86/kernel/tasks.c | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/arch/x86/kernel/apic.c b/arch/x86/kernel/apic.c index d4b0a7637..ff968c3a5 100644 --- a/arch/x86/kernel/apic.c +++ b/arch/x86/kernel/apic.c @@ -1033,24 +1033,6 @@ int apic_send_ipi(uint64_t dest, uint8_t irq) return 0; } -void wakeup_core(uint32_t core_id) -{ - // if mwait is available, an IPI isn't required to wakeup the core - if (has_mwait()) - return; - - // no self IPI required - if (core_id == CORE_ID) - return; - - // no IPI required if core is offline - if (!online[core_id]) - return; - - LOG_DEBUG("wakeup core %d\n", core_id); - apic_send_ipi(core_id, 83+32); -} - static void apic_err_handler(struct state *s) { LOG_ERROR("Got APIC error 0x%x\n", lapic_read(APIC_ESR)); diff --git a/arch/x86/kernel/tasks.c b/arch/x86/kernel/tasks.c index 1a2155027..d293c6331 100644 --- a/arch/x86/kernel/tasks.c +++ b/arch/x86/kernel/tasks.c @@ -207,3 +207,17 @@ void wait_for_task(void) mwait(0x2 /* 0x2 = c3, 0xF = c0 */, 1 /* break on interrupt flag */); } } + +void wakeup_core(uint32_t core_id) +{ + // if mwait is available, an IPI isn't required to wakeup the core + if (has_mwait()) + return; + + // no self IPI required + if (core_id == CORE_ID) + return; + + LOG_DEBUG("wakeup core %d\n", core_id); + apic_send_ipi(core_id, 83+32); +}