On Mon, 21 Feb 2000, Ralf Baechle wrote:
> On Mon, Feb 21, 2000 at 10:54:45AM +0100, Geert Uytterhoeven wrote:
> > > Modified files:
> > > include/asm-mips: uaccess.h
> > > include/asm-mips64: uaccess.h
> > >
> > > Log message:
> > > Fix copy_from_user() in modules and 64-bit kernel.
> >
> > Now the assembler complains with
> >
> > Warning: Used $at without ".set noat"
>
> I just tried to build an Indy kernel and did not get this warning.
I guess it depends on the configuration. From looking at the list of files I
got complaints for, I do believe you didn't get them when building for an Indy.
Can you try to compile the module for the loop block device? The problem
happens near the call to copy_from_user() in loop_set_status(). The generated
code is (warning position indicated with `>>>'):
.set noreorder
.set noat
.set noat
la $1, __copy_user
jalr $1
.set at
>>> addu $1, $13, $7
.set at
.set reorder
move $7, $6
#NO_APP
$L1492:
.set noreorder
.set nomacro
bne $7,$0,$L1502
li $2,-14 # 0xfffffff2
.set macro
.set reorder
I guess the problem is the nested .set noat/at construct, where __MODULE_JAL
does .set at while copy_from_user() assumes we're still in noat mode?
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven ------------- Sony Software Development Center Europe (SDCE)
Geert.Uytterhoeven@sonycom.com ------------------- Sint-Stevens-Woluwestraat 55
Voice +32-2-7248638 Fax +32-2-7262686 ---------------- B-1130 Brussels, Belgium
|