Subject: Re: CVS [email-masked]: linux

From: Ralf Baechle <[email-masked]>
Date: Mon, 21 Feb 2000 12:58:20 +0100

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.

  Ralf

---

From: Ralf Baechle <[email-masked]>
Date: Mon, 21 Feb 2000 19:03:52 +0100

On Mon, Feb 21, 2000 at 04:46:52PM +0100, Geert Uytterhoeven wrote:

> 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?

Yep, looking at the assembler code your report immediately made sense.
Fix going to CVS as I write this.

  Ralf

---

From: Geert Uytterhoeven <[email-masked]>
Date: Mon, 21 Feb 2000 18:45:30 -0800

> 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

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven ------------- Sony Software Development Center Europe (SDCE)
[email-masked] ------------------- Sint-Stevens-Woluwestraat 55
Voice +32-2-7248638 Fax +32-2-7262686 ---------------- B-1130 Brussels, Belgium