x86/HVM: drop vector parameter from .pi_update_irte() hook

It's redundant with the struct pirq * being passed, and the vector field
in struct msi_desc wanting to be cleared can be derived from v (and hence
pi_desc) being NULL.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger@xenproject.org>
This commit is contained in:
Jan Beulich committed 2026-09-28 14:26:40 +02:00
1 parent 57c648a35b
commit c8f29e5e2e
3 files changed
+7 -8

No files matched your search

+2 -2
View File
@@ -395,7 +395,7 @@ void vmx_pi_hooks_deassign(struct domain *d)
* when guest changes MSI/MSI-X information.
*/
static int cf_check vmx_pi_update_irte(const struct vcpu *v,
const struct pirq *pirq, uint8_t gvec)
const struct pirq *pirq)
{
const struct pi_desc *pi_desc = v ? &v->arch.hvm.vmx.pi_desc : NULL;
struct irq_desc *desc;
@@ -414,7 +414,7 @@ static int cf_check vmx_pi_update_irte(const struct vcpu *v,
goto unlock_out;
}
msi_desc->pi_desc = pi_desc;
msi_desc->gvec = gvec;
msi_desc->gvec = pi_desc ? pirq_dpci(pirq)->gmsi.gvec : 0;
msg = msi_desc->msg;
spin_unlock_irq(&desc->lock);
+3 -4
View File
@@ -220,8 +220,7 @@ struct hvm_function_table {
void (*sync_pir_to_irr)(struct vcpu *v);
bool (*test_pir)(const struct vcpu *v, uint8_t vector);
void (*handle_eoi)(uint8_t vector, int isr);
int (*pi_update_irte)(const struct vcpu *v, const struct pirq *pirq,
uint8_t gvec);
int (*pi_update_irte)(const struct vcpu *v, const struct pirq *pirq);
void (*update_vlapic_mode)(struct vcpu *v);
/*Walk nested p2m */
@@ -835,9 +834,9 @@ static inline void hvm_set_nonreg_state(struct vcpu *v,
}
static inline int hvm_pi_update_irte(const struct vcpu *v,
const struct pirq *pirq, uint8_t gvec)
const struct pirq *pirq)
{
return alternative_call(hvm_funcs.pi_update_irte, v, pirq, gvec);
return alternative_call(hvm_funcs.pi_update_irte, v, pirq);
}
static inline void hvm_update_vlapic_mode(struct vcpu *v)
+2 -2
View File
@@ -388,7 +388,7 @@ int pt_irq_create_bind(
/* Use interrupt posting if it is supported. */
if ( iommu_intpost )
{
rc = hvm_pi_update_irte(vcpu, info, pirq_dpci->gmsi.gvec);
rc = hvm_pi_update_irte(vcpu, info);
if ( rc )
{
@@ -689,7 +689,7 @@ int pt_irq_destroy_bind(
what = "bogus";
}
else if ( pirq_dpci && pirq_dpci->gmsi.posted )
hvm_pi_update_irte(NULL, pirq, 0);
hvm_pi_update_irte(NULL, pirq);
if ( pirq_dpci && (pirq_dpci->flags & HVM_IRQ_DPCI_MAPPED) &&
list_empty(&pirq_dpci->digl_list) )
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.