cvs commit: src/sys/kern kern_timeout.c

YONETANI Tomokazu qhwt+dragonfly-commits at les.ath.cx
Sun Apr 25 08:19:19 PDT 2004


Hi.
On Mon, Mar 15, 2004 at 12:23:48PM -0800, Matthew Dillon wrote:
> dillon      2004/03/15 12:23:48 PST
> 
> DragonFly src repository
> 
>   Modified files:
>     sys/kern             kern_timeout.c 
>   Log:
>   nextsoftcheck (which is a really aweful interrupt interlock hack) needs to
>   be volatile.
>   
>   Revision  Changes    Path
>   1.8       +1 -1      src/sys/kern/kern_timeout.c
> 
> 
> http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_timeout.c.diff?r1=1.7&r2=1.8&f=h

I'm seeing the following warnings after this change:
/home/source/dragonfly/src/sys/kern/kern_timeout.c:114: warning: assignment discards qualifiers from pointer target type
/home/source/dragonfly/src/sys/kern/kern_timeout.c:138: warning: assignment discards qualifiers from pointer target type

The current code makes the memory object pointed to by nextsoftcheck
volatile(so that accesses to members of nextsoftcheck are not cached),
but not the nextsoftcheck itself. Since c has no volatile qualifier,
derefences through c is not volatile, making the volatility on
nextsoftcheck useless.

If you want to make nextsoftcheck itself volatile, you have to change
it as follows:

static struct callout *volatile nextsoftcheck;

If you want to make both nextsoftcheck and the memory location pointed to
by it volatile:

static volatile struct callout *volatile nextsoftcheck;





More information about the Commits mailing list