lkml.org 
[lkml]   [2008]   [Sep]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: SATA Cold Boot problems on >2.6.25 with NV
    (cc'ing linux-ide)

    Konstantin Kletschke wrote:
    > Am 2008-09-01 13:18 +0200 schrieb Tejun Heo:
    >
    >>> Hmn, to take my pants down entirely: What is this "EH"?
    >> libata EH == libatata exception handling.
    >
    > Seems this stuff is kinda new since 2.6.25?

    I think it's more circa 2.6.22 but in my memory terms, which sucks,
    that's a lifetime before so I don't really remember. :-)

    >> Can you please apply the attached patch and post the resulting dmesg?
    >
    > Of course. Patch applied, here is dmesg output, looks interesting now -
    > but anything works fine so far.

    Hmm... someone is scheduling EH incessantly without any error or action
    set. Can you please try the attached patch?

    --
    tejun
    ---
    drivers/ata/libata-eh.c | 12 ++++++++++--
    1 file changed, 10 insertions(+), 2 deletions(-)

    Index: tree0/drivers/ata/libata-eh.c
    ===================================================================
    --- tree0.orig/drivers/ata/libata-eh.c
    +++ tree0/drivers/ata/libata-eh.c
    @@ -671,6 +671,9 @@ static void ata_eh_set_pending(struct at

    ap->pflags |= ATA_PFLAG_EH_PENDING;

    + ata_port_printk(ap, KERN_INFO, "XXX EH_SET_PENDING\n");
    + dump_stack();
    +
    if (!fastdrain)
    return;

    @@ -1077,6 +1080,11 @@ void ata_eh_about_to_do(struct ata_link
    struct ata_eh_context *ehc = &link->eh_context;
    unsigned long flags;

    + if (link)
    + ata_link_printk(link, KERN_INFO, "XXX about_to_do %x\n", action);
    + else if (dev)
    + ata_dev_printk(dev, KERN_INFO, "XXX about_to_do %x\n", action);
    +
    spin_lock_irqsave(ap->lock, flags);

    ata_eh_clear_action(link, dev, ehi, action);
    @@ -1890,8 +1898,8 @@ static void ata_eh_link_report(struct at
    nr_failed++;
    }

    - if (!nr_failed && !ehc->i.err_mask)
    - return;
    + //if (!nr_failed && !ehc->i.err_mask)
    + // return;

    frozen = "";
    if (ap->pflags & ATA_PFLAG_FROZEN)
    \
     
     \ /
      Last update: 2008-09-02 06:39    [W:0.033 / U:44.392 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site