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] [day] [month] [year] [list]
Date:	Sun, 07 Jun 2009 13:03:50 +0300
From:	Avi Kivity <avi@...hat.com>
To:	Tetsuo Handa <penguin-kernel@...ove.SAKURA.ne.jp>
CC:	guillaume.thouvenin@....bull.net, linux-kernel@...r.kernel.org
Subject: Re: [2.6.30-rc8 KVM] gcc 3.3 dies at emulate_2op_cl().

Tetsuo Handa wrote:
> Avi Kivity wrote:
>   
>> I can eliminate _tmp by using lahf/sahf, but it's not going to be a 
>> trivial patch.
>>     
>
> I don't know what's happening here.
>
> If I comment out (_dst).bytes == 2 , it compiles.
> The problem happens only "w" + "unsigned short" case.
>
> # diff -urp arch/x86/kvm/x86_emulate.c~ arch/x86/kvm/x86_emulate.c
> --- arch/x86/kvm/x86_emulate.c~ 2009-06-03 12:07:25.000000000 +0900
> +++ arch/x86/kvm/x86_emulate.c  2009-06-07 17:52:05.591542272 +0900
> @@ -461,8 +461,8 @@ static u32 group2_table[] = {
>         do {                                                                    \
>                 switch ((_dst).bytes) {                                         \
>                 case 2:                                                         \
> -                       __emulate_2op_cl(_op, _cl, _src, _dst, _eflags,         \
> -                                               "w", unsigned short);           \
> +                       /* __emulate_2op_cl(_op, _cl, _src, _dst, _eflags,      \
> +                          "w", unsigned short); */             \
>                         break;                                                  \
>                 case 4:                                                         \
>                         __emulate_2op_cl(_op, _cl, _src, _dst, _eflags,         \
>   

It's a gcc register allocator bug.  Bugs don't have to be reasonable.


-- 
Do not meddle in the internals of kernels, for they are subtle and quick to panic.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists