lkml.org 
[lkml]   [2006]   [Feb]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    SubjectRe: LibPATA code issues / 2.6.15.4
    Date
    On Friday 17 February 2006 03:45, Jeff Garzik wrote:
    >Submit a patch...

    You mean, something like this one?
    Untested at present, as I was hoping to hear
    back from one of the original problem reporters
    after they tested it.

    Cheers!



    -------- Original Message --------
    Subject: Re: LibPATA code issues / 2.6.15.4
    Date: Tue, 14 Feb 2006 13:00:36 -0500
    From: Mark Lord <lkml@rtr.ca>
    To: Justin Piszcz <jpiszcz@lucidpixels.com>
    CC: David Greaves <david@dgreaves.com>, Jeff Garzik <jgarzik@pobox.com>,
    linux-kernel@vger.kernel.org, IDE/ATA development list
    <linux-ide@vger.kernel.org>
    References: <Pine.LNX.4.64.0602140439580.3567@p34>
    <43F2050B.8020006@dgreaves.com> <Pine.LNX.4.64.0602141211350.10793@p34>

    On Tuesday 14 February 2006 12:12, Justin Piszcz wrote:
    > I would like to try the patch too, if available.

    Something like this: (for 2.6.16-rc3-git2, but should be okay on 2.6.15
    also).

    Untested: include the original SCSI opcode in printk's for libata SCSI
    errors,
    to help understand where the errors are coming from.

    Signed-Off-By: Mark Lord <mlord@pobox.com>

    --- linux/drivers/scsi/libata-scsi.c.orig 2006-02-12 19:27:25.000000000 -0500
    +++ linux/drivers/scsi/libata-scsi.c 2006-02-14 12:54:17.000000000 -0500
    @@ -420,6 +420,7 @@
    * @sk: the sense key we'll fill out
    * @asc: the additional sense code we'll fill out
    * @ascq: the additional sense code qualifier we'll fill out
    + * @opcode: the original SCSI command opcode byte
    *
    * Converts an ATA error into a SCSI error. Fill out pointers to
    * SK, ASC, and ASCQ bytes for later use in fixed or descriptor
    @@ -429,7 +430,7 @@
    * spin_lock_irqsave(host_set lock)
    */
    void ata_to_sense_error(unsigned id, u8 drv_stat, u8 drv_err, u8 *sk, u8
    *asc,
    - u8 *ascq)
    + u8 *ascq, u8 opcode)
    {
    int i;

    @@ -508,8 +509,8 @@
    }
    }
    /* No error? Undecoded? */
    - printk(KERN_WARNING "ata%u: no sense translation for status: 0x%02x\n",
    - id, drv_stat);
    + printk(KERN_WARNING "ata%u: no sense translation for op=0x%02x status:
    0x%02x\n",
    + id, opcode, drv_stat);

    /* For our last chance pick, use medium read error because
    * it's much more common than an ATA drive telling you a write
    @@ -520,8 +521,8 @@
    *ascq = 0x04; /* "auto-reallocation failed" */

    translate_done:
    - printk(KERN_ERR "ata%u: translated ATA stat/err 0x%02x/%02x to "
    - "SCSI SK/ASC/ASCQ 0x%x/%02x/%02x\n", id, drv_stat, drv_err,
    + printk(KERN_ERR "ata%u: translated op=0x%02x ATA stat/err 0x%02x/%02x to "
    + "SCSI SK/ASC/ASCQ 0x%x/%02x/%02x\n", id, opcode, drv_stat, drv_err,
    *sk, *asc, *ascq);
    return;
    }
    @@ -562,7 +563,7 @@
    */
    if (tf->command & (ATA_BUSY | ATA_DF | ATA_ERR | ATA_DRQ)) {
    ata_to_sense_error(qc->ap->id, tf->command, tf->feature,
    - &sb[1], &sb[2], &sb[3]);
    + &sb[1], &sb[2], &sb[3], cmd->cmnd[0]);
    sb[1] &= 0x0f;
    }

    @@ -637,7 +638,7 @@
    */
    if (tf->command & (ATA_BUSY | ATA_DF | ATA_ERR | ATA_DRQ)) {
    ata_to_sense_error(qc->ap->id, tf->command, tf->feature,
    - &sb[2], &sb[12], &sb[13]);
    + &sb[2], &sb[12], &sb[13], cmd->cmnd[0]);
    sb[2] &= 0x0f;
    }

    -
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2006-02-17 16:02    [W:4.123 / U:0.280 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site