summaryrefslogtreecommitdiffstats
path: root/src/kernel
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2011-09-12 14:58:16 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2011-09-13 12:44:49 -0500
commitf00cbc2321649c74c078784a1fc47da3b10e1a54 (patch)
treee4bf96f22176dda426bc678602aef25bc95a3564 /src/kernel
parent89dc4c2dc72a77bc278b388d66681e943fb6d539 (diff)
downloadtalos-hostboot-f00cbc2321649c74c078784a1fc47da3b10e1a54.tar.gz
talos-hostboot-f00cbc2321649c74c078784a1fc47da3b10e1a54.zip
Return code cleanups.
Change-Id: I375c2f895f28b73948aa384dda781b31f027719b Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/334 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/basesegment.C2
-rw-r--r--src/kernel/devicesegment.C10
-rw-r--r--src/kernel/syscall.C11
3 files changed, 16 insertions, 7 deletions
diff --git a/src/kernel/basesegment.C b/src/kernel/basesegment.C
index 94aafec40..2c5b73c19 100644
--- a/src/kernel/basesegment.C
+++ b/src/kernel/basesegment.C
@@ -121,7 +121,7 @@ int BaseSegment::_mmAllocBlock(MessageQueue* i_mq,void* i_va,uint64_t i_size)
l_vaddr >= (this->getBaseAddress() + (1ull << SLBE_s)) ||
(l_blockSizeTotal + ALIGN_PAGE(i_size)) >= (1ull << SLBE_s))
{
- return -1;
+ return -EINVAL;
}
Block* l_block = new Block(l_vaddr, ALIGN_PAGE(i_size), i_mq);
l_block->setParent(this);
diff --git a/src/kernel/devicesegment.C b/src/kernel/devicesegment.C
index 793b29f1c..f158ab3ec 100644
--- a/src/kernel/devicesegment.C
+++ b/src/kernel/devicesegment.C
@@ -102,7 +102,7 @@ bool DeviceSegment::handlePageFault(task_t* i_task, uint64_t i_addr)
//Verify the device is mapped
uint64_t segment_ea = i_addr - this->getBaseAddress();
size_t idx = segment_ea / ((1ull << SLBE_s) / MMIO_MAP_DEVICES);
- uint64_t device_offset = segment_ea -
+ uint64_t device_offset = segment_ea -
(idx * (1ull << SLBE_s) / MMIO_MAP_DEVICES);
if (0 == iv_mmioMap[idx].addr ||
@@ -128,7 +128,7 @@ void* DeviceSegment::_mmioMap(void* ra, size_t pages)
{
iv_mmioMap[i].size = THIRTYTWO_GB;
iv_mmioMap[i].addr = reinterpret_cast<uint64_t>(ra);
- return reinterpret_cast<void*>(i *
+ return reinterpret_cast<void*>(i *
((1ull << SLBE_s) / MMIO_MAP_DEVICES) +
this->getBaseAddress());
}
@@ -142,7 +142,7 @@ void* DeviceSegment::_mmioMap(void* ra, size_t pages)
*/
int DeviceSegment::_mmioUnmap(void* ea, size_t pages)
{
- uint64_t segment_ea = reinterpret_cast<uint64_t>(ea) -
+ uint64_t segment_ea = reinterpret_cast<uint64_t>(ea) -
this->getBaseAddress();
size_t idx = segment_ea / ((1ull << SLBE_s) / MMIO_MAP_DEVICES);
if (0 != iv_mmioMap[idx].addr)
@@ -154,7 +154,7 @@ int DeviceSegment::_mmioUnmap(void* ea, size_t pages)
return 0;
}
- return -1;
+ return -EINVAL;
}
/**
@@ -203,7 +203,7 @@ void *DeviceSegment::_devMap(void *ra, SEG_DATA_SIZES i_devDataSize)
*/
int DeviceSegment::_devUnmap(void *ea)
{
- int rc = -1;
+ int rc = -EINVAL;
uint64_t segment_ea = reinterpret_cast<uint64_t>(ea);
//Verify input address falls within this segment's address range
if (segment_ea < this->getBaseAddress() ||
diff --git a/src/kernel/syscall.C b/src/kernel/syscall.C
index 622c970a7..af84cc173 100644
--- a/src/kernel/syscall.C
+++ b/src/kernel/syscall.C
@@ -220,6 +220,15 @@ namespace Systemcalls
{
MessageQueue* mq = (MessageQueue*) TASK_GETARG0(t);
msg_t* m = (msg_t*) TASK_GETARG1(t);
+
+ if ((NULL == mq) || (NULL == m))
+ {
+ printkd("NULL pointer for message queue (%p) or message (%p).\n",
+ mq, m);
+ TASK_SETRTN(t, -EINVAL);
+ return;
+ }
+
m->__reserved__async = 0; // set to async msg.
if (m->type >= MSG_FIRST_SYS_TYPE)
@@ -327,7 +336,7 @@ namespace Systemcalls
}
else
{
- TASK_SETRTN(t, -1);
+ TASK_SETRTN(t, -EBADF);
mq->lock.unlock();
}
}
OpenPOWER on IntegriCloud