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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Hans de Goede
						Hans de Goede