On Mon, Jul 16, 2012 at 2:25 PM, Paolo Bonzini <pbonz...@redhat.com> wrote:
> Support for START/STOP UNIT right now is limited to CD-ROMs.  This is wrong,
> since removable hard disks (in the real world: SD card readers) also support
> it in pretty much the same way.

I remember vaguely tuning a set of large SCSI hard disks
(non-removable) so that they all didn't start immediately at the same
time (which could have burned out the PSU) but only with START UNIT
command. I think Linux or maybe even the BIOS started the drives
(nicely in sequence) before accessing the drive.

>
> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
> ---
>  hw/scsi-disk.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
> index bcec66b..42bae3b 100644
> --- a/hw/scsi-disk.c
> +++ b/hw/scsi-disk.c
> @@ -1251,7 +1251,7 @@ static int scsi_disk_emulate_start_stop(SCSIDiskReq *r)
>      bool start = req->cmd.buf[4] & 1;
>      bool loej = req->cmd.buf[4] & 2; /* load on start, eject on !start */
>
> -    if (s->qdev.type == TYPE_ROM && loej) {
> +    if ((s->features & (1 << SCSI_DISK_F_REMOVABLE)) && loej) {
>          if (!start && !s->tray_open && s->tray_locked) {
>              scsi_check_condition(r,
>                                   bdrv_is_inserted(s->qdev.conf.bs)
> --
> 1.7.10.4
>
>
>

Reply via email to