Subject: Re: dcache BUG()

From: Paul Mielke <[email-masked]>
Date: Thu, 10 May 2001 21:23:35 -0700

At 12:10 PM 5/10/01 -0700, Frank Rowand wrote:

>So if the lwarx occurs,
>
>then an interrupt alters the flow of execution,
>and the interrupt handler uses a stw to implement atomic_set(),
>
>then the interrupt handler returns to the original flow of execution,
>
>then the stwcx. succeeds, even though the value of the semaphore was
>altered by the atomic_set().

Frank,

I don't see how the above example can actually cause a failure.  Isn't it
a fundamental assumption that any change of process context must
clear the reservation bit?  If you don't do that, then none of this works.

So just before the RFI at step 4) of your example, the reservation bit
should be cleared and then the stwcx in the interrupted context fails
as one would expect.

Paul Mielke                        [email-masked]
RouteFree, Inc.                   (650) 739-5377

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/