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