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

From: Ralf Baechle <[email-masked]>
Date: Wed, 3 Oct 2001 19:50:59 +0200

On Wed, Oct 03, 2001 at 01:02:56PM +0200, Maciej W. Rozycki wrote:

> > Modified files:
> > 	arch/mips/kernel: scall_o32.S sysmips.c 
> > 
> > Log message:
> > 	Barf.
> 
>  The new mips_atomic_set() doesn't mask interrupts in the non-ll/sc case. 
> Thus it may fail to keep coherency.  Is it intentional? 

Yes.  Assuming do_page_fault did it's job successfully the address which
has been passed as argument to sysmips() is now writable and thus we
won't take any pagefaults.

There are two remaining failure scenarios which probably are't very
interesting for practical usage.  It's when an interrupt is accessing
the same address.  This could be fixed by disabling interrupts.
The other case is missaligned words.

>  Also the bad_stack exit point for the ll/sc case looks suspicient to me.

Indeed, the symbol deserves a better name.  Cut'n'paste happens ;-)

  Ralf

---

From: Jun Sun <[email-masked]>
Date: Wed, 03 Oct 2001 14:13:30 -0700

> The other case is missaligned words.

And a third one - when you enable kernel preemption with the preemptable
kernel patch. :-)

Jun

---

From: Ralf Baechle <[email-masked]>
Date: Wed, 3 Oct 2001 23:27:45 +0200

> And a third one - when you enable kernel preemption with the preemptable

Other people's problem.

  Ralf