> -----Original Message----- > From: Alexander Graf [mailto:ag...@suse.de] > Sent: Tuesday, December 18, 2012 6:51 AM > To: Bhushan Bharat-R65777 > Cc: qemu-devel qemu-devel; Peter Maydell; Jan Kiszka; qemu-...@nongnu.org > List; > Marcelo Tosatti; David Howells > Subject: Re: [PATCH v2] Added uapi directory into linux-header > > > On 18.12.2012, at 02:14, Bhushan Bharat-R65777 wrote: > > >>> +++ b/scripts/update-linux-headers.sh > >>> @@ -46,14 +46,26 @@ for arch in $ARCHLIST; do > >>> > >>> make -C "$linux" INSTALL_HDR_PATH="$tmpdir" SRCARCH=$arch > >>> headers_install > >>> > >>> + if [ -e "$linux/arch/$arch/include/uapi" ] && > >>> + ! [ -e "$output/linux-headers/uapi" ] ; then > >>> + mkdir "$output/linux-headers/uapi" > >> > >> mkdir -p > >> > >> But looking through this whole thing, it seems like the root cause is > >> actually different. We don't want any uapi directories exposed to > >> user space. So let's go back a step: > >> > >> Why do we need the uapi include dir? Because some header is using it. > >> > >> linux-headers/asm-powerpc/kvm_para.h: > > > > The kvm_para.h (also kvm.h) are now defined in include/uapi/asm/ > > > > Is not this the correct thing that any header file in include/uapi/asm/ (in > this case kvm_para.h) includes another header file (epapr_hcalls.h) in same > directory? > > > > Also I think now only the uapi/asm/*.h files should be exposed to userspace > (QEMU here). > > make headers_install should basically remove all the uapi magic and give us > normal backwards-compatible asm trees :).
I am perfectly fine, How we can do this now :) -Bharat > > > Alex > > > > > Waiting for David's comment for better clarity ... > > > > -Bharat > > > >> > >> #include <uapi/asm/epapr_hcalls.h> > >> > >> This is the root cause of the problem. We must never manually include > >> any uapi header paths. We only ever include their normal > >> asm-counterparts which then may include uapi (in kernel) or actually > >> are uapi (in user space). David, please correct me if I'm wrong. > >> > >> Could you please try and see if this kernel side patch makes things > >> work for you too? > >> > >> > >> Alex > >> > >> > >> diff --git a/arch/powerpc/include/uapi/asm/kvm_para.h > >> b/arch/powerpc/include/uapi/asm/kvm_para.h > >> index ed0e025..e3af328 100644 > >> --- a/arch/powerpc/include/uapi/asm/kvm_para.h > >> +++ b/arch/powerpc/include/uapi/asm/kvm_para.h > >> @@ -78,7 +78,7 @@ struct kvm_vcpu_arch_shared { > >> > >> #define KVM_HCALL_TOKEN(num) _EV_HCALL_TOKEN(EV_KVM_VENDOR_ID, num) > >> > >> -#include <uapi/asm/epapr_hcalls.h> > >> +#include <asm/epapr_hcalls.h> > >> > >> #define KVM_FEATURE_MAGIC_PAGE 1 > >> > > > > > > >