Re: [PATCH v3 2/5] KVM: X86: Move irrelevant declarations out of ioapic.h

From: Vitaly Kuznetsov
Date: Tue Dec 03 2019 - 04:36:50 EST


Peter Xu <peterx@xxxxxxxxxx> writes:

> kvm_apic_match_dest() is declared in both ioapic.h and lapic.h.
> Removing the declaration in ioapic.h.
>
> kvm_apic_compare_prio() is declared in ioapic.h but defined in
> lapic.c. Moving the declaration to lapic.h.
>
> kvm_irq_delivery_to_apic() is declared in ioapic.h but defined in
> irq_comm.c. Moving the declaration to irq.h.

Nitpicking: 'imperative mode' requested by Sean would be "remove the
declaration", "move the declaration",...

>
> While at it, include irq.h in hyperv.c because it needs to use
> kvm_irq_delivery_to_apic().

"While at it" is being used when you are trying to squeeze in a (small)
unrelated change (fix a typo, rename a variable,...) but here it's not
the case: including irq.h to hyperv.c is mandatory (to not break the
build).

"Include irq.h in hyperv.c to support the change" would do (but honestly
I don't see much value in the statement so I'd rather omit in in the
changelog).

>
> Signed-off-by: Peter Xu <peterx@xxxxxxxxxx>
> ---
> arch/x86/kvm/hyperv.c | 1 +
> arch/x86/kvm/ioapic.h | 6 ------
> arch/x86/kvm/irq.h | 3 +++
> arch/x86/kvm/lapic.h | 2 +-
> 4 files changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
> index 23ff65504d7e..c7d4640b7b1c 100644
> --- a/arch/x86/kvm/hyperv.c
> +++ b/arch/x86/kvm/hyperv.c
> @@ -33,6 +33,7 @@
> #include <trace/events/kvm.h>
>
> #include "trace.h"
> +#include "irq.h"
>
> #define KVM_HV_MAX_SPARSE_VCPU_SET_BITS DIV_ROUND_UP(KVM_MAX_VCPUS, 64)
>
> diff --git a/arch/x86/kvm/ioapic.h b/arch/x86/kvm/ioapic.h
> index ea1a4e0297da..2fb2e3c80724 100644
> --- a/arch/x86/kvm/ioapic.h
> +++ b/arch/x86/kvm/ioapic.h
> @@ -116,9 +116,6 @@ static inline int ioapic_in_kernel(struct kvm *kvm)
> }
>
> void kvm_rtc_eoi_tracking_restore_one(struct kvm_vcpu *vcpu);
> -bool kvm_apic_match_dest(struct kvm_vcpu *vcpu, struct kvm_lapic *source,
> - int short_hand, unsigned int dest, int dest_mode);
> -int kvm_apic_compare_prio(struct kvm_vcpu *vcpu1, struct kvm_vcpu *vcpu2);
> void kvm_ioapic_update_eoi(struct kvm_vcpu *vcpu, int vector,
> int trigger_mode);
> int kvm_ioapic_init(struct kvm *kvm);
> @@ -126,9 +123,6 @@ void kvm_ioapic_destroy(struct kvm *kvm);
> int kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int irq_source_id,
> int level, bool line_status);
> void kvm_ioapic_clear_all(struct kvm_ioapic *ioapic, int irq_source_id);
> -int kvm_irq_delivery_to_apic(struct kvm *kvm, struct kvm_lapic *src,
> - struct kvm_lapic_irq *irq,
> - struct dest_map *dest_map);
> void kvm_get_ioapic(struct kvm *kvm, struct kvm_ioapic_state *state);
> void kvm_set_ioapic(struct kvm *kvm, struct kvm_ioapic_state *state);
> void kvm_ioapic_scan_entry(struct kvm_vcpu *vcpu,
> diff --git a/arch/x86/kvm/irq.h b/arch/x86/kvm/irq.h
> index 7c6233d37c64..f173ab6b407e 100644
> --- a/arch/x86/kvm/irq.h
> +++ b/arch/x86/kvm/irq.h
> @@ -113,5 +113,8 @@ int apic_has_pending_timer(struct kvm_vcpu *vcpu);
>
> int kvm_setup_default_irq_routing(struct kvm *kvm);
> int kvm_setup_empty_irq_routing(struct kvm *kvm);
> +int kvm_irq_delivery_to_apic(struct kvm *kvm, struct kvm_lapic *src,
> + struct kvm_lapic_irq *irq,
> + struct dest_map *dest_map);
>
> #endif
> diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h
> index 39925afdfcdc..0b9bbadd1f3c 100644
> --- a/arch/x86/kvm/lapic.h
> +++ b/arch/x86/kvm/lapic.h
> @@ -83,7 +83,7 @@ int kvm_lapic_reg_read(struct kvm_lapic *apic, u32 offset, int len,
> void *data);
> bool kvm_apic_match_dest(struct kvm_vcpu *vcpu, struct kvm_lapic *source,
> int short_hand, unsigned int dest, int dest_mode);
> -
> +int kvm_apic_compare_prio(struct kvm_vcpu *vcpu1, struct kvm_vcpu *vcpu2);
> bool __kvm_apic_update_irr(u32 *pir, void *regs, int *max_irr);
> bool kvm_apic_update_irr(struct kvm_vcpu *vcpu, u32 *pir, int *max_irr);
> void kvm_apic_update_ppr(struct kvm_vcpu *vcpu);

Reviewed-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>

--
Vitaly