[PATCH] libata: improve EH action and EHI flag handling
authorTejun Heo <htejun@gmail.com>
Mon, 10 Jul 2006 14:18:46 +0000 (23:18 +0900)
committerJeff Garzik <jeff@garzik.org>
Wed, 19 Jul 2006 18:06:53 +0000 (14:06 -0400)
commit13abf50df209008b5d44075bafeeab42ace56aa6
tree5e8ea48d61c7e58560b04d33609a4a2bc6cf0012
parent7c8c2cff81b2b7f6dd3f9fd7b77033c1be5d7920
[PATCH] libata: improve EH action and EHI flag handling

Update ata_eh_about_to_do() and ata_eh_done() to improve EH action and
EHI flag handling.

* There are two types of EHI flags - one which expires on successful
  EH and the other which expires on a successful reset.  Make this
  distinction clear.

* Unlike other EH actions, reset actions are represented by two EH
  action masks and a EHI modifier.  Implement correct about_to_do/done
  semantics for resets.  That is, prior to reset, related EH info is
  sucked in from ehi and cleared, and after reset is complete, related
  EH info in ehc is cleared.

These changes improve consistency and remove unnecessary EH actions
caused by stale EH action masks and EHI flags.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/scsi/libata-eh.c
include/linux/libata.h