lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 3 Oct 2017 10:08:38 +0200
From:   Paolo Bonzini <pbonzini@...hat.com>
To:     Stefan Lippers-Hollmann <s.l-h@....de>, gregkh@...uxfoundation.org
Cc:     linux-kernel@...r.kernel.org, arei.gonglei@...wei.com,
        longpeng2@...wei.com, rkrcmar@...hat.com,
        wangxinxin.wang@...wei.com, weidong.huang@...wei.com,
        stable@...r.kernel.org
Subject: Re: Patch "KVM: VMX: avoid double list add with VT-d posted
 interrupts" has been added to the 4.13-stable tree

On 03/10/2017 09:46, Stefan Lippers-Hollmann wrote:
> Hi
> 
> On 2017-10-02, gregkh@...uxfoundation.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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ