bhyve: Move the gdb_active check to gdb_cpu_suspend().
The check needs to be in the public routine (gdb_cpu_suspend()), not
in the internal routine called from various places
(_gdb_cpu_suspend()). All the other callers of _gdb_cpu_suspend()
already check gdb_active, and this breaks the use of snapshots when
the debug server is not enabled since gdb_cpu_suspend() tries to lock
an uninitialized mutex.
Reported by: Darius Mihai, Elena Mihailescu
Reviewed by: elenamihailescu22_gmail.com
Fixes: 621b509048
Differential Revision: https://reviews.freebsd.org/D29538
This commit is contained in:
parent
600bd6ce06
commit
eacc27affe
@ -731,8 +731,6 @@ static void
|
||||
_gdb_cpu_suspend(int vcpu, bool report_stop)
|
||||
{
|
||||
|
||||
if (!gdb_active)
|
||||
return;
|
||||
debug("$vCPU %d suspending\n", vcpu);
|
||||
CPU_SET(vcpu, &vcpus_waiting);
|
||||
if (report_stop && CPU_CMP(&vcpus_waiting, &vcpus_suspended) == 0)
|
||||
@ -807,6 +805,8 @@ void
|
||||
gdb_cpu_suspend(int vcpu)
|
||||
{
|
||||
|
||||
if (!gdb_active)
|
||||
return;
|
||||
pthread_mutex_lock(&gdb_lock);
|
||||
_gdb_cpu_suspend(vcpu, true);
|
||||
gdb_cpu_resume(vcpu);
|
||||
|
Loading…
Reference in New Issue
Block a user