On Wed, May 29, 2013 at 12:14 AM, Philip J. Kelleher
<[email protected]> wrote:
> From: Philip J Kelleher <[email protected]>
>
> Unfortunaly, our CPU register path does not do any kind of
> EEH error checking. So to fix this issue, an ioread32 was
> added to the CPU register timeout code. This way, the
> driver can check to see if the timeout was caused by an EEH
> error or not.


> +++ linux-block/drivers/block/rsxx/cregs.c      2013-05-01 18:59:57.596197150 
> -0500
> @@ -431,6 +431,15 @@ static int __issue_creg_rw(struct rsxx_c
>         *hw_stat = completion.creg_status;
>
>         if (completion.st) {
> +               /*
> +                * This read is needed to verify that there has not been any
> +                * extreme errors that might have occurred, i.e. EEH. The
> +                * function iowrite32 will not detect EEH errors, so it is
> +                * necessary that we recover if such an error is the reason
> +                * for the timeout.
> +                */
> +               ioread32(card->regmap + SCRATCH);

This is just a dummy read, right? Perhaps you may add this word to the
explanation.

--
With Best Regards,
Andy Shevchenko
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to