scsi-disk: removable hard disks support load/eject
Support for the LOEJ bit of the START/STOP UNIT command 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. Without the LOEJ bit, START/STOP UNIT does nothing for all devices. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
6a8a685c4d
commit
b456a71c4a
|
@ -1248,7 +1248,7 @@ static int scsi_disk_emulate_start_stop(SCSIDiskReq *r)
|
||||||
bool start = req->cmd.buf[4] & 1;
|
bool start = req->cmd.buf[4] & 1;
|
||||||
bool loej = req->cmd.buf[4] & 2; /* load on start, eject on !start */
|
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) {
|
if (!start && !s->tray_open && s->tray_locked) {
|
||||||
scsi_check_condition(r,
|
scsi_check_condition(r,
|
||||||
bdrv_is_inserted(s->qdev.conf.bs)
|
bdrv_is_inserted(s->qdev.conf.bs)
|
||||||
|
|
Loading…
Reference in a new issue