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]
Message-ID: <20160418155440.GC24051@linux-mips.org>
Date:	Mon, 18 Apr 2016 17:54:40 +0200
From:	Ralf Baechle <ralf@...ux-mips.org>
To:	"Maciej W. Rozycki" <macro@...tec.com>
Cc:	"Maciej W. Rozycki" <macro@...ux-mips.org>,
	kbuild test robot <fengguang.wu@...el.com>,
	Paul Burton <paul.burton@...tec.com>, kbuild-all@...org,
	linux-kernel@...r.kernel.org
Subject: Re: {standard input}:136: Error: number (0x9000000080000000) larger
 than 32 bits

On Mon, Apr 18, 2016 at 03:25:56PM +0100, Maciej W. Rozycki wrote:

> On Mon, 18 Apr 2016, Ralf Baechle wrote:
> 
> > The old case btw, affects ip22 with a random_config:
> > 
> >   CC      arch/mips/mm/sc-ip22.o
> > {standard input}: Assembler messages:
> > {standard input}:137: Error: number (0x9000000080000000) larger than 32 bits
> > {standard input}:162: Error: number (0x9000000080000000) larger than 32 bits
> > scripts/Makefile.build:258: recipe for target 'arch/mips/mm/sc-ip22.o' failed
> > make[2]: *** [arch/mips/mm/sc-ip22.o] Error 1
> > scripts/Makefile.build:403: recipe for target 'arch/mips/mm' failed
> > make[1]: *** [arch/mips/mm] Error 2
> > Makefile:947: recipe for target 'arch/mips' failed
> > make: *** [arch/mips] Error 2
> > 
> > and I was able to reproduce it with binutils 2.26 and commit
> > c517d838eb7d07bbe9507871fab3931deccff539 ("Linux 4.0-rc1").  The code
> > in question looks like:
> > 
> > static inline void indy_sc_wipe(unsigned long first, unsigned long last)
> > {
> >         unsigned long tmp;
> > 
> >         __asm__ __volatile__(
> >         ".set\tpush\t\t\t# indy_sc_wipe\n\t"
> >         ".set\tnoreorder\n\t"
> >         ".set\tmips3\n\t"
> >         ".set\tnoat\n\t"
> >         "mfc0\t%2, $12\n\t"
> >         "li\t$1, 0x80\t\t\t# Go 64 bit\n\t"
> >         "mtc0\t$1, $12\n\t"
> > 
> >         "dli\t$1, 0x9000000080000000\n\t"
> 
>  That does not help me, I'm afraid, I can't trigger the issue with this 
> piece of code alone.  It may be caused by a particular combination of GAS
> command line options and `.set' directives.
> 
>  Since you can reproduce it, can you please send me the offending .s file 
> (`make arch/mips/mm/sc-ip22.s') and the GAS invocation line used?  GCC 
> will print the latter along all kinds of diagnostic stuff if -v is passed 
> to an invocation involving assembly (e.g. `make V=1 CFLAGS_sc-ip22.o=-v 
> arch/mips/mm/sc-ip22.o').  You can send me the whole diagnostics, I'll 
> filter what I need.
> 
>  I think it'll be the most efficient way to move forward; otherwise I may 
> keep missing the issue.

I extracted a rather simple test case:

$ echo >> testcase .s << EOF
        .set    mips3
        dli     $2, 0x9000000080000000
EOF
$ mips-linux-as -mips3 -march=r4600 -o testcase.o testcase.s
testcase.s: Assembler messages:
testcase.s:2: Error: number (0x9000000080000000) larger than 32 bits
$ mips-linux-as -mips4 -march=vr5000 -o testcase.o testcase.s
$

I can trigger the error message with vanilla 2.25 and 2.26 but not 2.24.

  Ralf

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ