Subject: CVS commit: src/sys/dev
To: None <source-changes@NetBSD.org>
From: Manuel Bouyer <bouyer@netbsd.org>
List: source-changes
Date: 04/13/2004 19:51:06
Module Name: src
Committed By: bouyer
Date: Tue Apr 13 19:51:06 UTC 2004
Modified Files:
src/sys/dev/ata: ata.c
src/sys/dev/ic: wdcvar.h
Log Message:
Make wdc_channel->ch_flags volatile, and cast it to (void *) when used
in tsleep()/wakeup() to appease gcc. Otherwise, the ch_flags value may
be cached in a register in atabus_thread(), and when it sets the WDCF_TH_RUN
bit after tsleep() it may loose loose the changes made by an interrupt handler
or another thread.
Problem analysed by Jukka Andberg on tech-kern.
To generate a diff of this commit:
cvs rdiff -r1.27 -r1.28 src/sys/dev/ata/ata.c
cvs rdiff -r1.55 -r1.56 src/sys/dev/ic/wdcvar.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.