* XEN_DOMCTL_set_broken_page_p2m
* XEN_DOMCTL_setnodeaffinity
* XEN_DOMCTL_gdbsx_guestmemio
- * XEN_DOMCTL_gdbsx_pausevcpu
- * XEN_DOMCTL_gdbsx_unpausevcpu
- * XEN_DOMCTL_gdbsx_domstatus
__HYPERVISOR_sysctl (xen/include/public/sysctl.h)
if ( !d->controller_pause_count )
break;
ret = -EINVAL;
- if ( domctl->u.gdbsx_pauseunp_vcpu.vcpu >= MAX_VIRT_CPUS ||
+ if ( domctl->u.gdbsx_pauseunp_vcpu.vcpu >= d->max_vcpus ||
(v = d->vcpu[domctl->u.gdbsx_pauseunp_vcpu.vcpu]) == NULL )
break;
- vcpu_pause(v);
- ret = 0;
+ ret = vcpu_pause_by_systemcontroller(v);
}
break;
if ( !d->controller_pause_count )
break;
ret = -EINVAL;
- if ( domctl->u.gdbsx_pauseunp_vcpu.vcpu >= MAX_VIRT_CPUS ||
+ if ( domctl->u.gdbsx_pauseunp_vcpu.vcpu >= d->max_vcpus ||
(v = d->vcpu[domctl->u.gdbsx_pauseunp_vcpu.vcpu]) == NULL )
break;
- if ( !atomic_read(&v->pause_count) )
- printk("WARN: Unpausing vcpu:%d which is not paused\n", v->vcpu_id);
- vcpu_unpause(v);
- ret = 0;
+ ret = vcpu_unpause_by_systemcontroller(v);
+ if ( ret == -EINVAL )
+ printk(XENLOG_G_WARNING
+ "WARN: d%d attempting to unpause %pv which is not paused\n",
+ current->domain->domain_id, v);
}
break;