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 */
|
||||
|
||||
if (loej) {
|
||||
if (!start && s->tray_locked) {
|
||||
if (!start && !s->tray_open && s->tray_locked) {
|
||||
sense = bdrv_is_inserted(s->bs)
|
||||
? SENSE_NOT_READY : SENSE_ILLEGAL_REQUEST;
|
||||
ide_atapi_cmd_error(s, sense, ASC_MEDIA_REMOVAL_PREVENTED);
|
||||
|
Loading…
Reference in New Issue
Block a user