Hi On 2017-10-02, gregkh@xxxxxxxxxxxxxxxxxxx wrote: > This is a note to let you know that I've just added the patch titled > > KVM: VMX: avoid double list add with VT-d posted interrupts > > to the 4.13-stable tree which can be found at: > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > > The filename of the patch is: > kvm-vmx-avoid-double-list-add-with-vt-d-posted-interrupts.patch > and it can be found in the queue-4.13 subdirectory. This patch, as part of the current queue-4.13, breaks the build on i386 (amd64/ x86_64 builds fine): CC [M] arch/x86/kvm/vmx.o In file included from /build/linux-aptosid-4.13/arch/x86/include/asm/atomic.h:7:0, from /build/linux-aptosid-4.13/include/linux/atomic.h:4, from /build/linux-aptosid-4.13/include/linux/mm_types_task.h:12, from /build/linux-aptosid-4.13/include/linux/mm_types.h:4, from /build/linux-aptosid-4.13/arch/x86/kvm/irq.h:25, from /build/linux-aptosid-4.13/arch/x86/kvm/vmx.c:19: /build/linux-aptosid-4.13/arch/x86/kvm/vmx.c: In function '__pi_post_block': /build/linux-aptosid-4.13/arch/x86/include/asm/cmpxchg.h:129:2: warning: '__ret' is used uninitialized in this function [-Wuninitialized] __ret; \ ^~~~~ /build/linux-aptosid-4.13/arch/x86/include/asm/cmpxchg.h:86:21: note: '__ret' was declared here __typeof__(*(ptr)) __ret; \ ^ /build/linux-aptosid-4.13/arch/x86/include/asm/cmpxchg.h:133:2: note: in expansion of macro '__raw_cmpxchg' __raw_cmpxchg((ptr), (old), (new), (size), LOCK_PREFIX) ^~~~~~~~~~~~~ /build/linux-aptosid-4.13/arch/x86/include/asm/cmpxchg.h:148:2: note: in expansion of macro '__cmpxchg' __cmpxchg(ptr, old, new, sizeof(*(ptr))) ^~~~~~~~~ /build/linux-aptosid-4.13/arch/x86/kvm/vmx.c:11422:11: note: in expansion of macro 'cmpxchg' } while (cmpxchg(&pi_desc->control, old.control, ^~~~~~~ /build/linux-aptosid-4.13/arch/x86/kvm/vmx.c: In function 'vmx_vcpu_load': /build/linux-aptosid-4.13/arch/x86/kvm/vmx.c:2226:2: warning: '__ret' may be used uninitialized in this function [-Wmaybe-uninitialized] } while (cmpxchg(&pi_desc->control, old.control, ^ In file included from /build/linux-aptosid-4.13/arch/x86/include/asm/atomic.h:7:0, from /build/linux-aptosid-4.13/include/linux/atomic.h:4, from /build/linux-aptosid-4.13/include/linux/mm_types_task.h:12, from /build/linux-aptosid-4.13/include/linux/mm_types.h:4, from /build/linux-aptosid-4.13/arch/x86/kvm/irq.h:25, from /build/linux-aptosid-4.13/arch/x86/kvm/vmx.c:19: /build/linux-aptosid-4.13/arch/x86/include/asm/cmpxchg.h:86:21: note: '__ret' was declared here __typeof__(*(ptr)) __ret; \ ^ /build/linux-aptosid-4.13/arch/x86/include/asm/cmpxchg.h:133:2: note: in expansion of macro '__raw_cmpxchg' __raw_cmpxchg((ptr), (old), (new), (size), LOCK_PREFIX) ^~~~~~~~~~~~~ /build/linux-aptosid-4.13/arch/x86/include/asm/cmpxchg.h:148:2: note: in expansion of macro '__cmpxchg' __cmpxchg(ptr, old, new, sizeof(*(ptr))) ^~~~~~~~~ /build/linux-aptosid-4.13/arch/x86/kvm/vmx.c:2226:11: note: in expansion of macro 'cmpxchg' } while (cmpxchg(&pi_desc->control, old.control, ^~~~~~~ In function 'vmx_vcpu_pi_load', inlined from 'vmx_vcpu_load' at /build/linux-aptosid-4.13/arch/x86/kvm/vmx.c:2301:2: /build/linux-aptosid-4.13/arch/x86/include/asm/cmpxchg.h:127:3: error: call to '__cmpxchg_wrong_size' declared with attribute error: Bad argument size for cmpxchg __cmpxchg_wrong_size(); \ ^~~~~~~~~~~~~~~~~~~~~~ /build/linux-aptosid-4.13/arch/x86/include/asm/cmpxchg.h:133:2: note: in expansion of macro '__raw_cmpxchg' __raw_cmpxchg((ptr), (old), (new), (size), LOCK_PREFIX) ^~~~~~~~~~~~~ /build/linux-aptosid-4.13/arch/x86/include/asm/cmpxchg.h:148:2: note: in expansion of macro '__cmpxchg' __cmpxchg(ptr, old, new, sizeof(*(ptr))) ^~~~~~~~~ /build/linux-aptosid-4.13/arch/x86/kvm/vmx.c:2226:11: note: in expansion of macro 'cmpxchg' } while (cmpxchg(&pi_desc->control, old.control, ^~~~~~~ In function '__pi_post_block', inlined from 'pi_post_block' at /build/linux-aptosid-4.13/arch/x86/kvm/vmx.c:11521:2, inlined from 'vmx_post_block' at /build/linux-aptosid-4.13/arch/x86/kvm/vmx.c:11530:2: /build/linux-aptosid-4.13/arch/x86/include/asm/cmpxchg.h:127:3: error: call to '__cmpxchg_wrong_size' declared with attribute error: Bad argument size for cmpxchg __cmpxchg_wrong_size(); \ ^~~~~~~~~~~~~~~~~~~~~~ /build/linux-aptosid-4.13/arch/x86/include/asm/cmpxchg.h:133:2: note: in expansion of macro '__raw_cmpxchg' __raw_cmpxchg((ptr), (old), (new), (size), LOCK_PREFIX) ^~~~~~~~~~~~~ /build/linux-aptosid-4.13/arch/x86/include/asm/cmpxchg.h:148:2: note: in expansion of macro '__cmpxchg' __cmpxchg(ptr, old, new, sizeof(*(ptr))) ^~~~~~~~~ /build/linux-aptosid-4.13/arch/x86/kvm/vmx.c:11422:11: note: in expansion of macro 'cmpxchg' } while (cmpxchg(&pi_desc->control, old.control, ^~~~~~~ /build/linux-aptosid-4.13/scripts/Makefile.build:302: recipe for target 'arch/x86/kvm/vmx.o' failed make[7]: *** [arch/x86/kvm/vmx.o] Error 1 Reverting just these patches from queue-4.13 kvm-vmx-avoid-double-list-add-with-vt-d-posted-interrupts.patch kvm-vmx-simplify-and-fix-vmx_vcpu_pi_load.patch fixes the problem for me (tested on i386 and x86_64); the failing config for i386 is attached (xz compressed). Regards Stefan Lippers-Hollmann
Attachment:
config-4.13.0-4.slh.2-aptosid-686.xz
Description: application/xz