ide: Correct improper smart self test counter reset in ide core.
The SMART self test counter was incorrectly being reset to zero, not 1. This had the effect that on every 21st SMART EXECUTE OFFLINE: * We would write off the beginning of a dynamically allocated buffer * We forgot the SMART history Fix this. Signed-off-by: Benoit Canet <benoit@irqsave.net> Message-id: 1397336390-24664-1-git-send-email-benoit.canet@irqsave.net Reviewed-by: Markus Armbruster <armbru@redhat.com> Cc: qemu-stable@nongnu.org Acked-by: Kevin Wolf <kwolf@redhat.com> [PMM: tweaked commit message as per suggestions from Markus] Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
		
							parent
							
								
									590e5dd98f
								
							
						
					
					
						commit
						940973ae0b
					
				@ -1602,7 +1602,7 @@ static bool cmd_smart(IDEState *s, uint8_t cmd)
 | 
				
			|||||||
        case 2: /* extended self test */
 | 
					        case 2: /* extended self test */
 | 
				
			||||||
            s->smart_selftest_count++;
 | 
					            s->smart_selftest_count++;
 | 
				
			||||||
            if (s->smart_selftest_count > 21) {
 | 
					            if (s->smart_selftest_count > 21) {
 | 
				
			||||||
                s->smart_selftest_count = 0;
 | 
					                s->smart_selftest_count = 1;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            n = 2 + (s->smart_selftest_count - 1) * 24;
 | 
					            n = 2 + (s->smart_selftest_count - 1) * 24;
 | 
				
			||||||
            s->smart_selftest_data[n] = s->sector;
 | 
					            s->smart_selftest_data[n] = s->sector;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user