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