Re: [PATCH scsi-misc-2.6 04/08] scsi: remove meaningless volatile qualifiers from structure definitions

Jeff Garzik
2005-03-23T04:22:42Z

James Bottomley wrote:
> On Wed, 2005-03-23 at 11:14 +0900, Tejun Heo wrote:
>
>> scsi_device->device_busy, Scsi_Host->host_busy and
>> ->host_failed have volatile qualifiers, but the qualifiers
>> don't serve any purpose. Kill them. While at it, protect
>> ->host_failed update in scsi_error for consistency and clarity.
>
>
> Well ... the data here is volatile so what you're advocating is a move
> away from a volatile variable model to a protected variable one ... did
> you audit all users of both of these to make sure we have protection on
> all of them? It looks like the sata strategy handlers would still rely
> on the volatile data.

volatile is almost always (a) buggy, or (b) hiding bugs. At the very
least, barriers are usually needed.

Almost every case really wants to be inside a spinlock, or atomic_t, or
similarly protected.

Specifically for SATA, I am making the presumption that SCSI is smart
enough not to mess with host_failed until my error handler completes.

Jeff