Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev

* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
libata: fix unexpectedly frozen port after ata_eh_reset()

+8 -4
+8 -4
drivers/ata/libata-eh.c
··· 2802 2802 } 2803 2803 2804 2804 /* 2805 - * Some controllers can't be frozen very well and may set 2806 - * spuruious error conditions during reset. Clear accumulated 2807 - * error information. As reset is the final recovery action, 2808 - * nothing is lost by doing this. 2805 + * Some controllers can't be frozen very well and may set spurious 2806 + * error conditions during reset. Clear accumulated error 2807 + * information and re-thaw the port if frozen. As reset is the 2808 + * final recovery action and we cross check link onlineness against 2809 + * device classification later, no hotplug event is lost by this. 2809 2810 */ 2810 2811 spin_lock_irqsave(link->ap->lock, flags); 2811 2812 memset(&link->eh_info, 0, sizeof(link->eh_info)); ··· 2814 2813 memset(&slave->eh_info, 0, sizeof(link->eh_info)); 2815 2814 ap->pflags &= ~ATA_PFLAG_EH_PENDING; 2816 2815 spin_unlock_irqrestore(link->ap->lock, flags); 2816 + 2817 + if (ap->pflags & ATA_PFLAG_FROZEN) 2818 + ata_eh_thaw_port(ap); 2817 2819 2818 2820 /* 2819 2821 * Make sure onlineness and classification result correspond.