Re: [patch 067/104] libata: improve phantom device detection

Tejun Heo
2008-12-04T04:22:50Z

> 2.6.27-stable review patch. If anyone has any objections, please let us know.
>
> ------------------
> From: Tejun Heo <tj@kernel.org>
>
> commit 6a6b97d360702b98c02c7fca4c4e088dcf3a2985 upstream.
>
> Currently libata uses four methods to detect device presence.
>
> 1. PHY status if available.
> 2. TF register R/W test (only promotes presence, never demotes)
> 3. device signature after reset
> 4. IDENTIFY failure detection in SFF state machine
>
> Combination of the above works well in most cases but recently there
> have been a few reports where a phantom device causes unnecessary
> delay during probe. In both cases, PHY status wasn't available. In
> one case, it passed #2 and #3 and failed IDENTIFY with ATA_ERR which
> didn't qualify as #4. The other failed #2 but as it passed #3 and #4,
> it still caused failure.
>
> In both cases, phantom device reported diagnostic failure, so these
> cases can be safely worked around by considering any !ATA_DRQ IDENTIFY
> failure as NODEV_HINT if diagnostic failure is set.
>
> Signed-off-by: Tejun Heo <tj@kernel.org>
> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

Alan thinks this patch could cause regression. Given that we're
nearing the end of 2.6.28-rc cycles, I don't think it's critical to
include this into 2.6.27-stable or at least it can wait a bit more.

Thanks.

--
tejun