mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	libata: clear ering on resume
Error timestamps are in jiffies which doesn't run while suspended and PHY events during resume isn't too uncommon. When the two are combined, it can lead to unnecessary speed downs if the machine is suspended and resumed repeatedly. Clear error history on resume. This was reported and verified in bnc#486803 by Vladimir Botka. Signed-off-by: Tejun Heo <tj@kernel.org> Reported-by: Vladimir Botka <vbotka@novell.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
		
							parent
							
								
									6ad58b245a
								
							
						
					
					
						commit
						6f9c1ea2c1
					
				
					 1 changed files with 13 additions and 0 deletions
				
			
		|  | @ -3507,6 +3507,8 @@ static void ata_eh_handle_port_suspend(struct ata_port *ap) | |||
|  */ | ||||
| static void ata_eh_handle_port_resume(struct ata_port *ap) | ||||
| { | ||||
| 	struct ata_link *link; | ||||
| 	struct ata_device *dev; | ||||
| 	unsigned long flags; | ||||
| 	int rc = 0; | ||||
| 
 | ||||
|  | @ -3521,6 +3523,17 @@ static void ata_eh_handle_port_resume(struct ata_port *ap) | |||
| 
 | ||||
| 	WARN_ON(!(ap->pflags & ATA_PFLAG_SUSPENDED)); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Error timestamps are in jiffies which doesn't run while | ||||
| 	 * suspended and PHY events during resume isn't too uncommon. | ||||
| 	 * When the two are combined, it can lead to unnecessary speed | ||||
| 	 * downs if the machine is suspended and resumed repeatedly. | ||||
| 	 * Clear error history. | ||||
| 	 */ | ||||
| 	ata_for_each_link(link, ap, HOST_FIRST) | ||||
| 		ata_for_each_dev(dev, link, ALL) | ||||
| 			ata_ering_clear(&dev->ering); | ||||
| 
 | ||||
| 	ata_acpi_set_state(ap, PMSG_ON); | ||||
| 
 | ||||
| 	if (ap->ops->port_resume) | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Tejun Heo
						Tejun Heo