diff options
author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2007-11-30 10:23:16 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-12-01 17:44:10 -0500 |
commit | 0f9fe9b7148f95f018ae2c97f7fa1a35364ea785 (patch) | |
tree | 7690a22b6de42051502099e9f03b4c225abe1a94 /drivers/ata | |
parent | 04d86d6fc0477f217d60667adfc26f1f56264cc9 (diff) |
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 <mroos@linux.ee> 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 <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata')
-rw-r--r-- | drivers/ata/libata-core.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 53d11017a5c3..b514a80f1370 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) | |||
6967 | if (ap->ops->port_start) { | 6967 | if (ap->ops->port_start) { |
6968 | rc = ap->ops->port_start(ap); | 6968 | rc = ap->ops->port_start(ap); |
6969 | if (rc) { | 6969 | if (rc) { |
6970 | ata_port_printk(ap, KERN_ERR, "failed to " | 6970 | if (rc != -ENODEV) |
6971 | "start port (errno=%d)\n", rc); | 6971 | dev_printk(KERN_ERR, host->dev, "failed to start port %d (errno=%d)\n", i, rc); |
6972 | goto err_out; | 6972 | goto err_out; |
6973 | } | 6973 | } |
6974 | } | 6974 | } |
6975 | |||
6976 | ata_eh_freeze_port(ap); | 6975 | ata_eh_freeze_port(ap); |
6977 | } | 6976 | } |
6978 | 6977 | ||