From 048789fdce6b406de3b7149f8171afd63eea1829 Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Tue, 3 Jan 2012 11:10:42 -0600 Subject: 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 Reviewed-by: Melissa J. Connell Reviewed-by: Douglas R. Gilbert Reviewed-by: MATTHEW S. BARTH --- src/kernel/stacksegment.C | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/kernel/stacksegment.C') 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; } -- cgit v1.2.3