Re: [GIT PULL -tip v3] fix 39 'make headers_check' warnings

Avi Kivity
2009-01-19T09:21:16Z

Ingo Molnar wrote:
> (Avi Cc:-ed)
>
> * Jaswinder Singh Rajput <jaswinder@kernel.org> wrote:
>
>
>> headers_check fix: linux/kvm.h
>>
>
>
>> diff --git a/include/linux/kvm.h b/include/linux/kvm.h
>> index 5715f19..5d004bc 100644
>> --- a/include/linux/kvm.h
>> +++ b/include/linux/kvm.h
>> @@ -58,12 +58,14 @@ struct kvm_irqchip {
>> __u32 pad;
>> union {
>> char dummy[512]; /* reserving space */
>> +#ifdef __KERNEL__
>> #ifdef CONFIG_X86
>> struct kvm_pic_state pic;
>> #endif
>> #if defined(CONFIG_X86) || defined(CONFIG_IA64)
>> struct kvm_ioapic_state ioapic;
>> #endif
>> +#endif /* __KERNEL__ */
>> } chip;
>> };
>>
>
> Avi, does user-space need the kvm_irqchip definition from this header? If
> not then it would be cleaner to mark this whole structure as #ifdef
> __KERNEL__.
>
>

It does. This patch will break userspace.

Doesn't 'make headers_install' unifder the CONFIG_ stuff?

>> @@ -384,18 +386,24 @@ struct kvm_trace_rec {
>> #define KVM_CAP_MP_STATE 14
>> #define KVM_CAP_COALESCED_MMIO 15
>> #define KVM_CAP_SYNC_MMU 16 /* Changes to host mmap are reflected in guest */
>> +#ifdef __KERNEL__
>> #if defined(CONFIG_X86)||defined(CONFIG_IA64)
>> #define KVM_CAP_DEVICE_ASSIGNMENT 17
>> #endif
>> +#endif /* __KERNEL__ */
>> #define KVM_CAP_IOMMU 18
>> +#ifdef __KERNEL__
>> #if defined(CONFIG_X86)
>> #define KVM_CAP_DEVICE_MSI 20
>> #endif
>> +#endif /* __KERNEL__ */
>> /* Bug in KVM_SET_USER_MEMORY_REGION fixed: */
>> #define KVM_CAP_DESTROY_MEMORY_REGION_WORKS 21
>> +#ifdef __KERNEL__
>> #if defined(CONFIG_X86)
>> #define KVM_CAP_USER_NMI 22
>> #endif
>> +#endif /* __KERNEL__ */
>>
>
> likewise, are these bits really used by user-space KVM bits? If not then
> the whole thing could go into an #ifdef __KERNEL__ block.
>

They are. This bits advertise to userspace what features kvm supports,
both compile- and run-time.

--
error compiling committee.c: too many arguments to function