彭浩(Richard) <[email protected]> writes: > pic_in_kernel(),ioapic_in_kernel() and irqchip_kernel() have the > same implementation.
'pic_in_kernel()' name is misleading, one may think this is about lapic and it's not. Also, ioapic_in_kernel() doesn't have that many users, can we maybe converge on using irqchip_*() functions everywhere? > > Signed-off-by: Peng Hao <[email protected]> > --- > arch/x86/kvm/ioapic.h | 8 ++------ > arch/x86/kvm/irq.h | 14 ++++---------- > arch/x86/kvm/lapic.c | 1 + > arch/x86/kvm/mmu/mmu.c | 1 + > arch/x86/kvm/x86.c | 1 + > 5 files changed, 9 insertions(+), 16 deletions(-) > > diff --git a/arch/x86/kvm/ioapic.h b/arch/x86/kvm/ioapic.h > index 2fb2e3c..7a3c53b 100644 > --- a/arch/x86/kvm/ioapic.h > +++ b/arch/x86/kvm/ioapic.h > @@ -5,7 +5,7 @@ > #include <linux/kvm_host.h> > > #include <kvm/iodev.h> > - > +#include "irq.h" > struct kvm; > struct kvm_vcpu; > > @@ -108,11 +108,7 @@ do {\ > > static inline int ioapic_in_kernel(struct kvm *kvm) > { > -int mode = kvm->arch.irqchip_mode; > - > -/* Matches smp_wmb() when setting irqchip_mode */ > -smp_rmb(); > -return mode == KVM_IRQCHIP_KERNEL; > +return irqchip_kernel(kvm); > } > > void kvm_rtc_eoi_tracking_restore_one(struct kvm_vcpu *vcpu); > diff --git a/arch/x86/kvm/irq.h b/arch/x86/kvm/irq.h > index f173ab6..e133c1a 100644 > --- a/arch/x86/kvm/irq.h > +++ b/arch/x86/kvm/irq.h > @@ -16,7 +16,6 @@ > #include <linux/spinlock.h> > > #include <kvm/iodev.h> > -#include "ioapic.h" > #include "lapic.h" > > #define PIC_NUM_PINS 16 > @@ -66,15 +65,6 @@ void kvm_pic_destroy(struct kvm *kvm); > int kvm_pic_read_irq(struct kvm *kvm); > void kvm_pic_update_irq(struct kvm_pic *s); > > -static inline int pic_in_kernel(struct kvm *kvm) > -{ > -int mode = kvm->arch.irqchip_mode; > - > -/* Matches smp_wmb() when setting irqchip_mode */ > -smp_rmb(); > -return mode == KVM_IRQCHIP_KERNEL; > -} > - > static inline int irqchip_split(struct kvm *kvm) > { > int mode = kvm->arch.irqchip_mode; > @@ -93,6 +83,10 @@ static inline int irqchip_kernel(struct kvm *kvm) > return mode == KVM_IRQCHIP_KERNEL; > } > > +static inline int pic_in_kernel(struct kvm *kvm) > +{ > +return irqchip_kernel(kvm); > +} > static inline int irqchip_in_kernel(struct kvm *kvm) > { > int mode = kvm->arch.irqchip_mode; > diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c > index 9af25c9..de4d046 100644 > --- a/arch/x86/kvm/lapic.c > +++ b/arch/x86/kvm/lapic.c > @@ -36,6 +36,7 @@ > #include <linux/jump_label.h> > #include "kvm_cache_regs.h" > #include "irq.h" > +#include "ioapic.h" > #include "trace.h" > #include "x86.h" > #include "cpuid.h" > diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c > index 8071952..6133f69 100644 > --- a/arch/x86/kvm/mmu/mmu.c > +++ b/arch/x86/kvm/mmu/mmu.c > @@ -16,6 +16,7 @@ > */ > > #include "irq.h" > +#include "ioapic.h" > #include "mmu.h" > #include "x86.h" > #include "kvm_cache_regs.h" > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index d786c7d..c8b62ac 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -18,6 +18,7 @@ > > #include <linux/kvm_host.h> > #include "irq.h" > +#include "ioapic.h" > #include "mmu.h" > #include "i8254.h" > #include "tss.h" > -- > 2.7.4 > > ________________________________ > OPPO > > 本电子邮件及其附件含有OPPO公司的保密信息,仅限于邮件指明的收件人使用(包含个人及群组)。禁止任何人在未经授权的情况下以任何形式使用。如果您错收了本邮件,请立即以电子邮件通知发件人并删除本邮件及其附件。 > > This e-mail and its attachments contain confidential information from OPPO, > which is intended only for the person or entity whose address is listed > above. Any use of the information contained herein in any way (including, but > not limited to, total or partial disclosure, reproduction, or dissemination) > by persons other than the intended recipient(s) is prohibited. If you receive > this e-mail in error, please notify the sender by phone or email immediately > and delete it! -- Vitaly

