summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMatthew Barth <msbarth@us.ibm.com>2011-08-29 15:48:57 -0500
committerMATTHEW S. BARTH <msbarth@us.ibm.com>2011-09-12 16:29:03 -0500
commitdcfca1f02b1a549ba57ca8e28372cef3e84268d0 (patch)
tree12e56cae37248b6ee62f75ba049f6a38d0348c24 /src
parent0c57368b19b2c47d8c3d6495d4fa166663c9c2ea (diff)
downloadtalos-hostboot-dcfca1f02b1a549ba57ca8e28372cef3e84268d0.tar.gz
talos-hostboot-dcfca1f02b1a549ba57ca8e28372cef3e84268d0.zip
Additional good/error path checks for creating block
Change-Id: If3bd74e0ee5ca4177d4bac506a4433ac3e1e778d Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/289 Tested-by: Jenkins Server Reviewed-by: MATTHEW S. BARTH <msbarth@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/kernel/basesegment.C11
-rw-r--r--src/kernel/blockmsghdlr.C1
2 files changed, 5 insertions, 7 deletions
diff --git a/src/kernel/basesegment.C b/src/kernel/basesegment.C
index 72ace03c8..94aafec40 100644
--- a/src/kernel/basesegment.C
+++ b/src/kernel/basesegment.C
@@ -23,13 +23,13 @@
#include <limits.h>
#include <errno.h>
#include <util/singleton.H>
+#include <util/align.H>
#include <kernel/basesegment.H>
#include <kernel/segmentmgr.H>
#include <kernel/block.H>
#include <kernel/vmmmgr.H>
#include <kernel/cpuid.H>
-//#include <kernel/console.H>
#define SLBE_s 40
@@ -117,14 +117,13 @@ int BaseSegment::_mmAllocBlock(MessageQueue* i_mq,void* i_va,uint64_t i_size)
uint64_t l_blockSizeTotal = 0;
iv_block->totalBlocksAlloc(l_blockSizeTotal);
//Verify input address and size falls within this segment's address range
- if ((l_vaddr < this->getBaseAddress() ||
- l_vaddr >= (this->getBaseAddress() + (1ull << SLBE_s))) &&
- (l_blockSizeTotal+i_size <= (1ull << SLBE_s)))
+ if (l_vaddr < this->getBaseAddress() ||
+ l_vaddr >= (this->getBaseAddress() + (1ull << SLBE_s)) ||
+ (l_blockSizeTotal + ALIGN_PAGE(i_size)) >= (1ull << SLBE_s))
{
return -1;
}
- //TODO - Align i_size to page size
- Block* l_block = new Block(l_vaddr, i_size, i_mq);
+ Block* l_block = new Block(l_vaddr, ALIGN_PAGE(i_size), i_mq);
l_block->setParent(this);
iv_block->appendBlock(l_block);
return 0;
diff --git a/src/kernel/blockmsghdlr.C b/src/kernel/blockmsghdlr.C
index 0a3140e9d..cf1683cab 100644
--- a/src/kernel/blockmsghdlr.C
+++ b/src/kernel/blockmsghdlr.C
@@ -22,7 +22,6 @@
// IBM_PROLOG_END
#include <kernel/blockmsghdlr.H>
#include <kernel/block.H>
-//#include <kernel/console.H>
MessageHandler::HandleResult BlockMsgHdlr::handleResponse(
msg_sys_types_t i_type, void* i_key, task_t* i_task, int i_rc)
OpenPOWER on IntegriCloud