From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751184AbdJCIIo (ORCPT ); Tue, 3 Oct 2017 04:08:44 -0400 Received: from mx1.redhat.com ([209.132.183.28]:44292 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751102AbdJCIIn (ORCPT ); Tue, 3 Oct 2017 04:08:43 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 2349B5F2974 Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=pbonzini@redhat.com Subject: Re: Patch "KVM: VMX: avoid double list add with VT-d posted interrupts" has been added to the 4.13-stable tree To: Stefan Lippers-Hollmann , gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, arei.gonglei@huawei.com, longpeng2@huawei.com, rkrcmar@redhat.com, wangxinxin.wang@huawei.com, weidong.huang@huawei.com, stable@vger.kernel.org References: <1506947409121185@kroah.com> <20171003094625.34dedc87@mir> From: Paolo Bonzini Message-ID: <972b2885-4a33-b30f-7fd0-bae0c4fe5aa3@redhat.com> Date: Tue, 3 Oct 2017 10:08:38 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <20171003094625.34dedc87@mir> Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Tue, 03 Oct 2017 08:08:43 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 03/10/2017 09:46, Stefan Lippers-Hollmann wrote: > Hi > > On 2017-10-02, gregkh@linuxfoundation.org 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). There is another patch in the kvm tree to fix it, I'll send it to stable immediately. Paolo