hyperv: address HvSintRoute by X86CPU pointer

Use X86CPU pointer to refer to the respective HvSintRoute instead of
vp_index.  This is more convenient and also paves the way for future
enhancements.

Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
Message-Id: <20180921081836.29230-7-rkagan@virtuozzo.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Roman Kagan 2018-09-21 11:18:34 +03:00 committed by Paolo Bonzini
parent b56920245c
commit 09cfb2f635

View File

@ -18,7 +18,7 @@
struct HvSintRoute { struct HvSintRoute {
uint32_t sint; uint32_t sint;
uint32_t vp_index; X86CPU *cpu;
int gsi; int gsi;
EventNotifier sint_set_notifier; EventNotifier sint_set_notifier;
EventNotifier sint_ack_notifier; EventNotifier sint_ack_notifier;
@ -97,6 +97,12 @@ HvSintRoute *kvm_hv_sint_route_create(uint32_t vp_index, uint32_t sint,
HvSintRoute *sint_route; HvSintRoute *sint_route;
EventNotifier *ack_notifier; EventNotifier *ack_notifier;
int r, gsi; int r, gsi;
X86CPU *cpu;
cpu = hyperv_find_vcpu(vp_index);
if (!cpu) {
return NULL;
}
sint_route = g_new0(HvSintRoute, 1); sint_route = g_new0(HvSintRoute, 1);
r = event_notifier_init(&sint_route->sint_set_notifier, false); r = event_notifier_init(&sint_route->sint_set_notifier, false);
@ -128,7 +134,7 @@ HvSintRoute *kvm_hv_sint_route_create(uint32_t vp_index, uint32_t sint,
sint_route->gsi = gsi; sint_route->gsi = gsi;
sint_route->sint_ack_clb = sint_ack_clb; sint_route->sint_ack_clb = sint_ack_clb;
sint_route->sint_ack_clb_data = sint_ack_clb_data; sint_route->sint_ack_clb_data = sint_ack_clb_data;
sint_route->vp_index = vp_index; sint_route->cpu = cpu;
sint_route->sint = sint; sint_route->sint = sint;
return sint_route; return sint_route;