diff options
-rw-r--r-- | kvm_coalesced_mmio.c | 9 | ||||
-rw-r--r-- | kvm_i8259.c | 4 | ||||
-rw-r--r-- | kvm_ioapic.c | 4 | ||||
-rw-r--r-- | kvm_lapic.c | 8 | ||||
-rw-r--r-- | kvm_mmu.c | 12 | ||||
-rw-r--r-- | kvm_vmx.c | 9 |
6 files changed, 8 insertions, 38 deletions
diff --git a/kvm_coalesced_mmio.c b/kvm_coalesced_mmio.c index 2b4fc52..7c097e3 100644 --- a/kvm_coalesced_mmio.c +++ b/kvm_coalesced_mmio.c @@ -15,12 +15,9 @@ static struct kvm_coalesced_mmio_dev * to_mmio(struct kvm_io_device *dev) { -#ifdef XXX - return (container_of(dev, struct kvm_coalesced_mmio_dev, dev)); -#else - XXX_KVM_PROBE; - return ((struct kvm_coalesced_mmio_dev *)dev); -#endif + uintptr_t dp = (uintptr_t)dev; + return ((struct kvm_coalesced_mmio_dev *)(dp - + offsetof(struct kvm_coalesced_mmio_dev, dev))); } static int diff --git a/kvm_i8259.c b/kvm_i8259.c index 022bcf5..ccdde2d 100644 --- a/kvm_i8259.c +++ b/kvm_i8259.c @@ -475,11 +475,7 @@ picdev_in_range(gpa_t addr) static inline struct kvm_pic * to_pic(struct kvm_io_device *dev) { -#ifdef XXX_KVM_DOESNTCOMPILE - return (container_of(dev, struct kvm_pic, dev)); -#else return ((struct kvm_pic *)((caddr_t)dev-offsetof(struct kvm_pic, dev))); -#endif } static int diff --git a/kvm_ioapic.c b/kvm_ioapic.c index ab5c3f9..e0c3309 100644 --- a/kvm_ioapic.c +++ b/kvm_ioapic.c @@ -283,12 +283,8 @@ kvm_ioapic_update_eoi(struct kvm *kvm, int vector, int trigger_mode) static struct kvm_ioapic * to_ioapic(struct kvm_io_device *dev) { -#ifdef XXX_KVM_DOESNTCOMPILE - return (container_of(dev, struct kvm_ioapic, dev)); -#else return (struct kvm_ioapic *)(((caddr_t)dev) - offsetof(struct kvm_ioapic, dev)); -#endif } static int diff --git a/kvm_lapic.c b/kvm_lapic.c index 5b5278c..ec122df 100644 --- a/kvm_lapic.c +++ b/kvm_lapic.c @@ -600,12 +600,8 @@ __apic_read(struct kvm_lapic *apic, unsigned int offset) static inline struct kvm_lapic * to_lapic(struct kvm_io_device *dev) { -#ifdef XXX - return (container_of(dev, struct kvm_lapic, dev)); -#else - XXX_KVM_PROBE; - return (dev->lapic); -#endif + return ((struct kvm_lapic *)((uintptr_t)dev - + offsetof(struct kvm_lapic, dev))); } int @@ -1452,13 +1452,9 @@ kvm_mmu_change_mmu_pages(struct kvm *kvm, unsigned int kvm_nr_mmu_pages) !list_is_empty(&kvm->arch.active_mmu_pages)) { struct kvm_mmu_page *page; -#ifdef XXX_KVM_DOESNTCOMPILE - page = container_of(kvm->arch.active_mmu_pages.prev, - struct kvm_mmu_page, link); -#else page = (struct kvm_mmu_page *) list_head(&kvm->arch.active_mmu_pages); -#endif + /* page removed by kvm_mmu_zap_page */ used_pages -= kvm_mmu_zap_page(kvm, page); used_pages--; @@ -2713,13 +2709,7 @@ __kvm_mmu_free_some_pages(struct kvm_vcpu *vcpu) !list_is_empty(&vcpu->kvm->arch.active_mmu_pages)) { struct kvm_mmu_page *sp; -#ifdef XXX - sp = container_of(vcpu->kvm->arch.active_mmu_pages.prev, - struct kvm_mmu_page, link); -#else - XXX_KVM_PROBE; sp = list_head(&vcpu->kvm->arch.active_mmu_pages); -#endif kvm_mmu_zap_page(vcpu->kvm, sp); KVM_KSTAT_INC(vcpu->kvm, kvmks_mmu_recycled); } @@ -178,13 +178,8 @@ typedef struct vcpu_vmx { static struct vcpu_vmx * to_vmx(struct kvm_vcpu *vcpu) { -#ifdef XXX_KVM_DOESNTCOMPILE - return (container_of(vcpu, struct vcpu_vmx, vcpu)); -#else - /* assumes vcpu is first field in vcpu_vmx */ - /* because gcc with kernel flags complains about container_of */ - return ((struct vcpu_vmx *)vcpu); -#endif + return ((struct vcpu_vmx *)((uintptr_t)vcpu - + offsetof(struct vcpu_vmx, vcpu))); } typedef struct vmcs_config { |