summaryrefslogtreecommitdiffstats
path: root/src/kernel/stacksegment.C
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2012-01-03 11:10:42 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-01-05 00:57:01 -0600
commit048789fdce6b406de3b7149f8171afd63eea1829 (patch)
tree2291287f0fd3cb05441a96e72346e27436ebbba1 /src/kernel/stacksegment.C
parenta001b92d6d5ab2383a7c8c51f1ee43f8095d1d56 (diff)
downloadblackbird-hostboot-048789fdce6b406de3b7149f8171afd63eea1829.tar.gz
blackbird-hostboot-048789fdce6b406de3b7149f8171afd63eea1829.zip
Fix race condition between stackmanager and vmmmanager.
Change-Id: Ie3f3fb2050428af1fc398b1577dfc090cd7d26cf Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/591 Tested-by: Jenkins Server Reviewed-by: MIKE J. JONES <mjjones@us.ibm.com> Reviewed-by: Melissa J. Connell <missyc@us.ibm.com> Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: MATTHEW S. BARTH <msbarth@us.ibm.com>
Diffstat (limited to 'src/kernel/stacksegment.C')
-rw-r--r--src/kernel/stacksegment.C4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/kernel/stacksegment.C b/src/kernel/stacksegment.C
index 0ea3e24a8..f7ced0f1f 100644
--- a/src/kernel/stacksegment.C
+++ b/src/kernel/stacksegment.C
@@ -149,6 +149,8 @@ void* StackSegment::_createStack(tid_t i_task)
void StackSegment::_deleteStack(tid_t i_task)
{
+ VmmManager::getLock()->lock();
+
uint64_t l_addr_8mb = i_task * (8*MEGABYTE) + VMM_VADDR_STACK_SEGMENT;
StackBlockNode* l_node = iv_blockList.find(l_addr_8mb);
@@ -159,5 +161,7 @@ void StackSegment::_deleteStack(tid_t i_task)
delete l_node->block;
delete l_node;
+ VmmManager::getLock()->unlock();
+
return;
}
OpenPOWER on IntegriCloud