cpu: Only activate thread 0 in Minor if the CPU is active
authorAndreas Sandberg <andreas.sandberg@arm.com>
Thu, 30 Jul 2015 09:15:50 +0000 (10:15 +0100)
committerAndreas Sandberg <andreas.sandberg@arm.com>
Thu, 30 Jul 2015 09:15:50 +0000 (10:15 +0100)
commitff8195235e647fbe5e303a1da391544fc436ca47
tree60f6e35f145b56e48abbe139ab3aca4bd7b6cb1d
parent473a0dcc63135a32cc5f736c14a3142a34b4352e
cpu: Only activate thread 0 in Minor if the CPU is active

Minor currently activates thread 0 in startup() to work around an
issue where activateContext() is called from LiveProcess before the
process entry point is known. When activateContext() is called, Minor
creates a branch instruction to the process's entry point. The first
time it is called, the branch points to an undefined location (0). The
call in startup() updates the branch to point to the actual entry
point.

When instantiating a switched out Minor CPU, it still tries to
activate thread 0. This is clearly incorrect since a switched out CPU
can't have any active threads. This changeset adds a check to ensure
that the thread is active before reactivating it.
src/cpu/minor/cpu.cc