Commit 0f9fe9b7148f95f018ae2c97f7fa1a35364ea785

Authored by Alan Cox
Committed by Jeff Garzik
1 parent 04d86d6fc0

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>

Showing 1 changed file with 2 additions and 3 deletions Side-by-side Diff

drivers/ata/libata-core.c
... ... @@ -6967,12 +6967,11 @@
6967 6967 if (ap->ops->port_start) {
6968 6968 rc = ap->ops->port_start(ap);
6969 6969 if (rc) {
6970   - ata_port_printk(ap, KERN_ERR, "failed to "
6971   - "start port (errno=%d)\n", rc);
  6970 + if (rc != -ENODEV)
  6971 + dev_printk(KERN_ERR, host->dev, "failed to start port %d (errno=%d)\n", i, rc);
6972 6972 goto err_out;
6973 6973 }
6974 6974 }
6975   -
6976 6975 ata_eh_freeze_port(ap);
6977 6976 }
6978 6977