* SCSI synchronization and error handling
@ 2004-06-30 19:43 Jeff Garzik
2004-07-01 0:49 ` James Bottomley
0 siblings, 1 reply; 2+ messages in thread
From: Jeff Garzik @ 2004-06-30 19:43 UTC (permalink / raw)
To: SCSI Mailing List; +Cc: James Bottomley
I'm doing some more work on my scsi LLD, libata, and have a few
questions for the experts in the crowd.
In ATA, some commands need to be sent when no other commands are queued
to hardware. Let's say I have a command stream that looks like
queued write
queued read
queued read
queued write
non-queued SMART command
queued write
queued write
What's the best way to ensure that the SMART command is only executed
after preceding, queued commands are completed? My guess is to return
MLQUEUE_BUSY if (a) ->queuecommand is passed a non-queued command AND
(b) there are commands queued to hardware already.
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: SCSI synchronization and error handling
2004-06-30 19:43 SCSI synchronization and error handling Jeff Garzik
@ 2004-07-01 0:49 ` James Bottomley
0 siblings, 0 replies; 2+ messages in thread
From: James Bottomley @ 2004-07-01 0:49 UTC (permalink / raw)
To: Jeff Garzik; +Cc: SCSI Mailing List
On Wed, 2004-06-30 at 14:43, Jeff Garzik wrote:
> What's the best way to ensure that the SMART command is only executed
> after preceding, queued commands are completed? My guess is to return
> MLQUEUE_BUSY if (a) ->queuecommand is passed a non-queued command AND
> (b) there are commands queued to hardware already.
So you have to quiesce the device before issuing the smart command? In
which case, scsi_quiesce_device() is the API you want. Or is this some
type of command ordering problem you're trying to solve?
James
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-07-01 0:50 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-06-30 19:43 SCSI synchronization and error handling Jeff Garzik
2004-07-01 0:49 ` James Bottomley
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox