From: Alan Cox Date: Fri, 30 Nov 2007 15:23:16 +0000 (+0000) Subject: libata: Fix early use of port printk. (Was Re: ata4294967295: failed to start port... X-Git-Tag: v2.6.24-rc4~10^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0f9fe9b7148f95f018ae2c97f7fa1a35364ea785;p=platform%2Fkernel%2Flinux-exynos.git libata: Fix early use of port printk. (Was Re: ata4294967295: failed to start port (errno=-19)) On Fri, 30 Nov 2007 14:34:11 +0200 (EET) Meelis Roos wrote: > > Can you stick a stack trace in at that point ? That would help diagnose > > it a great deal quicker. > > Finally done - found out hard way that BUG() is too bad and > dump_st5ack() suits me better. Thanks. This should fix the real cause, and also allow for port start to fail politely with -ENODEV. Signed-off-by: Alan Cox Signed-off-by: Jeff Garzik --- diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 53d1101..b514a80 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -6967,12 +6967,11 @@ int ata_host_start(struct ata_host *host) if (ap->ops->port_start) { rc = ap->ops->port_start(ap); if (rc) { - ata_port_printk(ap, KERN_ERR, "failed to " - "start port (errno=%d)\n", rc); + if (rc != -ENODEV) + dev_printk(KERN_ERR, host->dev, "failed to start port %d (errno=%d)\n", i, rc); goto err_out; } } - ata_eh_freeze_port(ap); }