sim: Prevent segfault in the wakeCpu m5op if id is invalid
Change-Id: I86229cedb206e10326cdee3f09a5c871e49c8d48 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/3965
This commit is contained in:
committed by
Andreas Sandberg
parent
c0875dfc39
commit
8e8ad9daa3
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2010-2012, 2015 ARM Limited
|
||||
* Copyright (c) 2010-2012, 2015, 2017 ARM Limited
|
||||
* All rights reserved
|
||||
*
|
||||
* The license below extends only to copyright in the software and shall
|
||||
@@ -285,6 +285,13 @@ wakeCPU(ThreadContext *tc, uint64_t cpuid)
|
||||
{
|
||||
DPRINTF(PseudoInst, "PseudoInst::wakeCPU(%i)\n", cpuid);
|
||||
System *sys = tc->getSystemPtr();
|
||||
|
||||
if (sys->numContexts() <= cpuid) {
|
||||
warn("PseudoInst::wakeCPU(%i), cpuid greater than number of contexts"
|
||||
"(%i)\n",cpuid, sys->numContexts());
|
||||
return;
|
||||
}
|
||||
|
||||
ThreadContext *other_tc = sys->threadContexts[cpuid];
|
||||
if (other_tc->status() == ThreadContext::Suspended)
|
||||
other_tc->activate();
|
||||
|
||||
Reference in New Issue
Block a user