mirror of
https://git.proxmox.com/git/qemu
synced 2025-08-07 14:59:10 +00:00
ide/atapi: Don't fail eject when tray is already open
MMC-5 6.40.2.6 specifies that START STOP UNIT succeeds when the drive already has the requested state. cmd_start_stop_unit() fails when asked to eject while the tray is open and locked. Fix that. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
eb93d5d990
commit
48f65b3f52
@ -910,7 +910,7 @@ static void cmd_start_stop_unit(IDEState *s, uint8_t* buf)
|
|||||||
bool loej = buf[4] & 2; /* load on start, eject on !start */
|
bool loej = buf[4] & 2; /* load on start, eject on !start */
|
||||||
|
|
||||||
if (loej) {
|
if (loej) {
|
||||||
if (!start && s->tray_locked) {
|
if (!start && !s->tray_open && s->tray_locked) {
|
||||||
sense = bdrv_is_inserted(s->bs)
|
sense = bdrv_is_inserted(s->bs)
|
||||||
? SENSE_NOT_READY : SENSE_ILLEGAL_REQUEST;
|
? SENSE_NOT_READY : SENSE_ILLEGAL_REQUEST;
|
||||||
ide_atapi_cmd_error(s, sense, ASC_MEDIA_REMOVAL_PREVENTED);
|
ide_atapi_cmd_error(s, sense, ASC_MEDIA_REMOVAL_PREVENTED);
|
||||||
|
Loading…
Reference in New Issue
Block a user