ehci: simplify ehci_state_executing
ehci_state_executing does not need to check for p->usb_status == USB_RET_ASYNC or USB_RET_PROCERR, since ehci_execute_complete already does a similar check and will trigger an assert if either value is encountered. USB_RET_ASYNC should never be the packet status when execute_complete runs for obvious reasons, and USB_RET_PROCERR is only used by ehci_state_execute / ehci_execute not by ehci_state_executing / ehci_execute_complete. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
		
							parent
							
								
									53dd6f7032
								
							
						
					
					
						commit
						574ef17191
					
				| 
						 | 
				
			
			@ -2084,19 +2084,11 @@ out:
 | 
			
		|||
static int ehci_state_executing(EHCIQueue *q)
 | 
			
		||||
{
 | 
			
		||||
    EHCIPacket *p = QTAILQ_FIRST(&q->packets);
 | 
			
		||||
    int again = 0;
 | 
			
		||||
 | 
			
		||||
    assert(p != NULL);
 | 
			
		||||
    assert(p->qtdaddr == q->qtdaddr);
 | 
			
		||||
 | 
			
		||||
    ehci_execute_complete(q);
 | 
			
		||||
    if (p->usb_status == USB_RET_ASYNC) {
 | 
			
		||||
        goto out;
 | 
			
		||||
    }
 | 
			
		||||
    if (p->usb_status == USB_RET_PROCERR) {
 | 
			
		||||
        again = -1;
 | 
			
		||||
        goto out;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // 4.10.3
 | 
			
		||||
    if (!q->async) {
 | 
			
		||||
| 
						 | 
				
			
			@ -2114,11 +2106,8 @@ static int ehci_state_executing(EHCIQueue *q)
 | 
			
		|||
        ehci_set_state(q->ehci, q->async, EST_WRITEBACK);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    again = 1;
 | 
			
		||||
 | 
			
		||||
out:
 | 
			
		||||
    ehci_flush_qh(q);
 | 
			
		||||
    return again;
 | 
			
		||||
    return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue