]> git.baikalelectronics.ru Git - kernel.git/commit
libata: leave port thawed after reset failure
authorTejun Heo <tj@kernel.org>
Wed, 25 May 2011 10:23:56 +0000 (12:23 +0200)
committerJeff Garzik <jgarzik@pobox.com>
Sat, 23 Jul 2011 21:57:36 +0000 (17:57 -0400)
commitf6f1571fd0dc28673cb9f4eca89430e872fef7de
tree997f2828b26aa532284ce2cf96c03e951f1fb599
parentfaa1343f38304837785894c4bdf30ec8279f10ca
libata: leave port thawed after reset failure

libata EH intentionally left a port frozen if it failed
ata_eh_reset().  The intention was avoiding continuous loop of resets
when the controller or attached device is flaky and reporting spurious
hotplug events.  Once port enters this state, it can be recovered with
manual rescan, which seemed reasonable.

However, outside of my convoluted test setup, there have been very few
reports justifying this choice while there have been more cases where
the automatic freezing of the port after hotplug attempt of a faulty
device caused confusion and led to unnecessary resets.

This patch changes the behavior so that the port is thawed after reset
failure.  This change doesn't necessarily solve but makes it easier
and more intuitive to work around hotplug related problems
(ie. re-pluggin or power cycling the device) as reported in the
followings.

  https://bugzilla.kernel.org/show_bug.cgi?id=34712
  http://thread.gmane.org/gmane.linux.kernel/1123265/focus=49548

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Reartes Guillermo <rtguille@gmail.com>
Reported-by: Bruce Stenning <b.stenning@indigovision.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
drivers/ata/libata-eh.c