sata_mv delayed eh handling
commit29d187bb1e30682e228ce461c487d78d945c3e4f
authorMark Lord <liml@rtr.ca>
Fri, 2 May 2008 06:15:37 +0000 (2 02:15 -0400)
committerJeff Garzik <jgarzik@redhat.com>
Tue, 6 May 2008 15:38:24 +0000 (6 11:38 -0400)
treebd43da31c7a0853438f0593f553b0dd019f0bd33
parent10acf3b0d3b46c6ef5d6f0722f72ad9b743ea848
sata_mv delayed eh handling

Introduce a new "delayed error handling" mechanism in sata_mv,
to enable us to eventually deal with multiple simultaneous NCQ
failures on a single host link when a PM is present.

This involves a port flag (MV_PP_FLAG_DELAYED_EH) to prevent new
commands being queued, and a pmp bitmap to indicate which pmp links
had NCQ errors.

The new mv_pmp_error_handler() uses those values to invoke
ata_eh_analyze_ncq_error() on each failed link, prior to freezing
the port and passing control to sata_pmp_error_handler().

This is based upon a strategy suggested by Tejun.

For now, we just implement the delayed mechanism.
The next patch in this series will add the multiple-NCQ EH code
to take advantage of it.

Signed-off-by: Mark Lord <mlord@pobox.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/sata_mv.c