Subject: Re: how to avoid re-ordering?
To: Witold J. Wnuk <witek@wnuk.eu.org>
From: Frank van der Linden <fvdl@wasabisystems.com>
List: tech-kern
Date: 12/17/2001 16:16:13
On Mon, Dec 17, 2001 at 03:22:40PM +0100, Witold J. Wnuk wrote:
> You are referring to "FREE_LOCK(&lk)" calls, right? (as opposed to the rest
> of FREE_LOCK calls)
>
> movl lk,%edx
> movl %edx,cpl
> movl ipending,%eax
> movl $-1,lk+4 // HERE lk.lkt_held is updated after cpl
> xorl $-1,%edx
> testl %eax,%edx
> je .L443
> call Xspllower
>
> If so, shouldn't "static struct lockit lk" be declared volatile?
It is modified from an interrupt context, so it should be declared
volatile. Though making sure that spl/splx can't be reordered
for additional safety seems like sane thing to do as well.
- Frank
--
Frank van der Linden fvdl@wasabisystems.com
======================================================================
Quality NetBSD CDs, Support & Service. http://www.wasabisystems.com/