mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-07-05 03:26:29 +00:00
HV: add pcpu id check before send IPI
to avoid send IPI to self, also improve the related code: 1. get_cpu_id is uint16_t now 2. MISRA-C requirement. like add {} Signed-off-by: Minggui Cao <minggui.cao@intel.com> Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
parent
c25a62e5b0
commit
462284fa7d
@ -104,8 +104,9 @@ void vcpu_make_request(struct vcpu *vcpu, uint16_t eventid)
|
||||
* scheduling, we need change here to determine it target vcpu is
|
||||
* VMX non-root or root mode
|
||||
*/
|
||||
if ((int)get_cpu_id() != vcpu->pcpu_id)
|
||||
if (get_cpu_id() != vcpu->pcpu_id) {
|
||||
send_single_ipi(vcpu->pcpu_id, VECTOR_NOTIFY_VCPU);
|
||||
}
|
||||
}
|
||||
|
||||
static int vcpu_do_pending_event(struct vcpu *vcpu)
|
||||
|
@ -157,7 +157,7 @@ int vmexit_handler(struct vcpu *vcpu)
|
||||
uint16_t basic_exit_reason;
|
||||
int ret;
|
||||
|
||||
if ((int)get_cpu_id() != vcpu->pcpu_id) {
|
||||
if (get_cpu_id() != vcpu->pcpu_id) {
|
||||
pr_fatal("vcpu is not running on its pcpu!");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -101,7 +101,9 @@ void make_reschedule_request(struct vcpu *vcpu)
|
||||
struct sched_context *ctx = &per_cpu(sched_ctx, vcpu->pcpu_id);
|
||||
|
||||
bitmap_set_lock(NEED_RESCHEDULE, &ctx->flags);
|
||||
send_single_ipi(vcpu->pcpu_id, VECTOR_NOTIFY_VCPU);
|
||||
if (get_cpu_id() != vcpu->pcpu_id) {
|
||||
send_single_ipi(vcpu->pcpu_id, VECTOR_NOTIFY_VCPU);
|
||||
}
|
||||
}
|
||||
|
||||
int need_reschedule(uint16_t pcpu_id)
|
||||
@ -153,7 +155,9 @@ void make_pcpu_offline(uint16_t pcpu_id)
|
||||
struct sched_context *ctx = &per_cpu(sched_ctx, pcpu_id);
|
||||
|
||||
bitmap_set_lock(NEED_OFFLINE, &ctx->flags);
|
||||
send_single_ipi(pcpu_id, VECTOR_NOTIFY_VCPU);
|
||||
if (get_cpu_id() != pcpu_id) {
|
||||
send_single_ipi(pcpu_id, VECTOR_NOTIFY_VCPU);
|
||||
}
|
||||
}
|
||||
|
||||
int need_offline(uint16_t pcpu_id)
|
||||
|
Loading…
Reference in New Issue
Block a user