libata: use ata_port_printk() in ata_wait_idle()
authorTejun Heo <htejun@gmail.com>
Mon, 30 Jul 2007 05:23:03 +0000 (14:23 +0900)
committerJeff Garzik <jeff@garzik.org>
Fri, 12 Oct 2007 18:55:34 +0000 (14:55 -0400)
ata_wait_idle() identified controller by printing out the address of
the Status register.  This is bogus because 1. it's iomapped address
2. some controllers don't have Status register and don't initialize
the field.  Use ata_port_printk() instead.

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

index d98e8b5..86cc049 100644 (file)
@@ -1182,9 +1182,11 @@ static inline u8 ata_wait_idle(struct ata_port *ap)
 {
        u8 status = ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 1000);
 
+#ifdef ATA_DEBUG
        if (status != 0xff && (status & (ATA_BUSY | ATA_DRQ)))
-               DPRINTK("ATA: abnormal status 0x%X on port 0x%p\n",
-                       status, ap->ioaddr.status_addr);
+               ata_port_printk(ap, KERN_DEBUG, "abnormal Status 0x%X\n",
+                               status);
+#endif
 
        return status;
 }