[PATCH] usb-serial: Fix data corruption with usb serial emulation
* Remove the unused send_buf variable and its constant. * Fix a math error The variables recv_ptr and recv_used are not large enough to hold the constant 384, which causes data corruption when the pointer is reset with: s->recv_ptr = (s->recv_ptr + len) % RECV_BUF; Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5242 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
		
							parent
							
								
									49237acdb7
								
							
						
					
					
						commit
						8109b9b6bf
					
				| 
						 | 
				
			
			@ -22,7 +22,6 @@ do { printf("usb-serial: " fmt , ##args); } while (0)
 | 
			
		|||
#endif
 | 
			
		||||
 | 
			
		||||
#define RECV_BUF 384
 | 
			
		||||
#define SEND_BUF 128        // Not used for now
 | 
			
		||||
 | 
			
		||||
/* Commands */
 | 
			
		||||
#define FTDI_RESET		0
 | 
			
		||||
| 
						 | 
				
			
			@ -94,9 +93,8 @@ typedef struct {
 | 
			
		|||
    uint16_t vendorid;
 | 
			
		||||
    uint16_t productid;
 | 
			
		||||
    uint8_t recv_buf[RECV_BUF];
 | 
			
		||||
    uint8_t recv_ptr;
 | 
			
		||||
    uint8_t recv_used;
 | 
			
		||||
    uint8_t send_buf[SEND_BUF];
 | 
			
		||||
    uint16_t recv_ptr;
 | 
			
		||||
    uint16_t recv_used;
 | 
			
		||||
    uint8_t event_chr;
 | 
			
		||||
    uint8_t error_chr;
 | 
			
		||||
    uint8_t event_trigger;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue