diff options
| author | Patrick Williams <iawillia@us.ibm.com> | 2012-07-31 10:26:12 -0500 |
|---|---|---|
| committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-08-10 11:38:42 -0500 |
| commit | 99f217daf307b3cd963bcbce8eb7b025d58f734e (patch) | |
| tree | 87a82faba5be946460ff25f222f0f10a03afdfce /src/kernel/exception.C | |
| parent | da472c60655393f0bb49113713a8be2bdd2a9b6f (diff) | |
| download | blackbird-hostboot-99f217daf307b3cd963bcbce8eb7b025d58f734e.tar.gz blackbird-hostboot-99f217daf307b3cd963bcbce8eb7b025d58f734e.zip | |
Support for master winkle.
RTC: 44730
Change-Id: Ifaeecc659e1bfd8ded4744dc591fc993471519ba
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1471
Tested-by: Jenkins Server
Reviewed-by: Mark W. Wenning <wenning@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/kernel/exception.C')
| -rw-r--r-- | src/kernel/exception.C | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/kernel/exception.C b/src/kernel/exception.C index 0d63d0a73..071f10b1e 100644 --- a/src/kernel/exception.C +++ b/src/kernel/exception.C @@ -38,7 +38,7 @@ namespace ExceptionHandles bool PrivInstr(task_t*); } -const uint64_t EXCEPTION_SRR1_MASK = 0x00000000783F0000; +const uint64_t EXCEPTION_SRR1_MASK = 0x00000000783F0000; const uint64_t EXCEPTION_SRR1_PRIVINS = 0x0000000000040000; extern "C" @@ -56,12 +56,12 @@ void kernel_execute_prog_ex() } if (!handled) { - printk("Program exception, killing task %d\n", t->tid); - TaskManager::endTask(t, NULL, TASK_STATUS_CRASHED); + printk("Program exception, killing task %d\n", t->tid); + TaskManager::endTask(t, NULL, TASK_STATUS_CRASHED); } } -const uint64_t EXCEPTION_DSISR_MASK = 0x0000000048000000; +const uint64_t EXCEPTION_DSISR_MASK = 0x0000000048000000; const uint64_t EXCEPTION_DSISR_PTEMISS = 0x0000000040000000; const uint64_t EXCEPTION_DSISR_PERMERR = 0x0000000008000000; const uint64_t EXCEPTION_DSISR_STORE = 0x0000000002000000; @@ -75,7 +75,7 @@ void kernel_execute_data_storage() bool handled = false; switch(exception) { - case EXCEPTION_DSISR_PTEMISS: + case EXCEPTION_DSISR_PTEMISS: { uint64_t is_store = getDSISR() & EXCEPTION_DSISR_STORE; handled = VmmManager::pteMiss(t, getDAR(), 0 != is_store); @@ -87,16 +87,16 @@ void kernel_execute_data_storage() uint64_t is_store = getDSISR() & EXCEPTION_DSISR_STORE; if (is_store) { - handled = VmmManager::pteMiss(t, getDAR(), true); + handled = VmmManager::pteMiss(t, getDAR(), true); } - break; + break; } } if (!handled) { - printk("Data Storage exception on %d: %lx, %lx @ %p\n", - t->tid, getDAR(), getDSISR(), t->context.nip); - TaskManager::endTask(t, NULL, TASK_STATUS_CRASHED); + printk("Data Storage exception on %d: %lx, %lx @ %p\n", + t->tid, getDAR(), getDSISR(), t->context.nip); + TaskManager::endTask(t, NULL, TASK_STATUS_CRASHED); } } @@ -129,7 +129,7 @@ void kernel_execute_inst_storage() { printk("Inst Storage exception on %d: %lx, %lx\n", t->tid, getSRR0(), getSRR1()); - TaskManager::endTask(t, NULL, TASK_STATUS_CRASHED); + TaskManager::endTask(t, NULL, TASK_STATUS_CRASHED); } } @@ -169,19 +169,19 @@ namespace ExceptionHandles { uint32_t* instruction = reinterpret_cast<uint32_t*>(phys_addr); - // Check for 'doze' and skip over. This avoids a task-crash + // Check for 'nap' and skip over. This avoids a task-crash // if for some reason we entered back into the task without // priviledge raised. - if (*instruction == 0x4c000324) + if (*instruction == 0x4c000364) { - printk("Error: Doze executed with lowered permissions on %d\n", + printk("Error: Nap executed with lowered permissions on %d\n", t->tid); t->context.nip = static_cast<void*>(instruction + 1); return true; } } - return false; + return false; } } |

