libata: assume no device is attached if both IDENTIFYs are aborted
authorTejun Heo <htejun@gmail.com>
Sun, 23 Mar 2008 06:16:53 +0000 (15:16 +0900)
committerJeff Garzik <jeff@garzik.org>
Tue, 25 Mar 2008 02:09:38 +0000 (22:09 -0400)
commit1ffc151fcddf524d0c76709d7e7a2af0255acb6b
treea13ad1dd628fe302ed64672ef282c21d31f251b9
parentb63b133165b876838e8685350ef469620f4abd99
libata: assume no device is attached if both IDENTIFYs are aborted

This is to fix bugzilla #10254.  QSI cdrom attached to pata_sis as
secondary master appears as phantom device for the slave.
Interestingly, instead of not setting DRQ after IDENTIFY which
triggers NODEV_HINT, it aborts both IDENTIFY and IDENTIFY PACKET which
makes EH retry.

Modify EH such that it assumes no device is attached if both flavors
of IDENTIFY are aborted by the device.  There really isn't much point
in retrying when the device actively aborts the commands.

While at it, convert NODEV detection message to ata_dev_printk() to
help debugging obscure detection problems.

This problem was reported by Jan Bücken.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Jan Bücken <jb.faq@gmx.de>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/ata/libata-core.c