libata: give devices one last chance even if recovery failed with -EINVAL
authorTejun Heo <htejun@gmail.com>
Fri, 11 May 2007 12:46:51 +0000 (14:46 +0200)
committerJeff Garzik <jeff@garzik.org>
Fri, 11 May 2007 22:09:18 +0000 (18:09 -0400)
commit8575b814097af648dad284bd3087875a11b13d18
tree33ee44f9bafab76229df2516c309f31fd6ef428d
parent54936f8b099325992f0f212a5e366fd5257c6c9c
libata: give devices one last chance even if recovery failed with -EINVAL

After certain errors, some devices report complete garbage on
IDENTIFY.  This can cause ata_dev_read_id() to fail with -EINVAL
resulting in immediate disabling of the device.  Give the device one
last chance after -EINVAL to allow recovery from such situations.  As
-EINVAL is triggered very rarely, this shouldn't cause any noticeable
affect on more common error paths.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Harald Dunkel <harald.dunkel@t-online.de>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/ata/libata-eh.c