diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2013-10-31 12:33:35 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-11-12 16:48:09 -0600 |
commit | 92324fc2313a6bf47f57562ed67cdbafa8a6834f (patch) | |
tree | b5f3a509ca907d34d9ecb435dad411910afbbefa | |
parent | 4c5b2801ef7b37337e0bf5e74c8169a97410f316 (diff) | |
download | talos-hostboot-92324fc2313a6bf47f57562ed67cdbafa8a6834f.tar.gz talos-hostboot-92324fc2313a6bf47f57562ed67cdbafa8a6834f.zip |
Clean up some kernel TODOs.
Change-Id: I1f33cfba258a99959e29f8625d6a8459405639f1
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/6985
Tested-by: Jenkins Server
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-rw-r--r-- | src/kernel/block.C | 17 | ||||
-rw-r--r-- | src/kernel/ptmgr.C | 2 | ||||
-rw-r--r-- | src/kernel/syscall.C | 3 |
3 files changed, 11 insertions, 11 deletions
diff --git a/src/kernel/block.C b/src/kernel/block.C index 7cd7e75af..4ed371e50 100644 --- a/src/kernel/block.C +++ b/src/kernel/block.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2011,2012 */ +/* COPYRIGHT International Business Machines Corp. 2011,2013 */ /* */ /* p1 */ /* */ @@ -39,6 +39,8 @@ #include <kernel/basesegment.H> #include <arch/ppc.H> +#include <usr/vmmconst.h> + #include <new> // Track eviction requests due to aging pages @@ -378,9 +380,8 @@ void Block::castOutPages(uint64_t i_type) iv_nextBlock->castOutPages(i_type); } - // TODO We will eventually need to skip other blocks as well, such as - // when the memory space grows. - if(iv_baseAddr != 0) // Skip base area + if((iv_baseAddr != VMM_ADDR_BASE_BLOCK) || // Skip base area + (iv_baseAddr != VMM_ADDR_EXTEND_BLOCK)) // Skip extended memory. { size_t rw_constraint = 5; size_t ro_constraint = 3; @@ -532,15 +533,17 @@ int Block::setPermSPTE( ShadowPTE* i_spte, uint64_t i_access_type) // if write_tracked if ( i_access_type & WRITE_TRACKED) { - // TODO.. fail if no message handler when trying to - // set a page to write tracked. - // If the page is already READ_ONLY // you cannot set to WRITE_TRACKED if (getPermission(i_spte) == READ_ONLY) { return -EINVAL; } + else if (NULL == iv_writeMsgHdlr) + { + return -EINVAL; + } + i_spte->setWriteTracked(true); } else diff --git a/src/kernel/ptmgr.C b/src/kernel/ptmgr.C index bb1380b4d..878dea807 100644 --- a/src/kernel/ptmgr.C +++ b/src/kernel/ptmgr.C @@ -313,8 +313,6 @@ void PageTableManager::flush( void ) /******************** Private/Protected Methods ********************/ -#include <sys/mm.h> //@TODO: Remove with 43401 -#include <usr/vmmconst.h> //@TODO: Remove with 43401. /** * @brief Constructor */ diff --git a/src/kernel/syscall.C b/src/kernel/syscall.C index 38178499c..ab78bd655 100644 --- a/src/kernel/syscall.C +++ b/src/kernel/syscall.C @@ -155,9 +155,8 @@ void kernel_execute_system_call() uint64_t syscall = t->context.gprs[3]; if (syscall >= SYSCALL_MAX) { - // TODO : kill task. printk("Invalid syscall : %ld\n", syscall); - while(1); + TaskManager::endTask(t, NULL, TASK_STATUS_CRASHED); } else { |