lkml.org 
[lkml]   [2006]   [May]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: rt20 patch question

    * Steven Rostedt <rostedt@goodmis.org> wrote:

    > > one solution would be to forbid disable_irq() from softirq contexts, and
    > > to convert the vortex timeout function to a workqueue and use the
    > > *_delayed_work() APIs to drive it - and cross fingers there's not many
    > > places to fix.
    >
    > I prefer the above. Maybe even add a WARN_ON(in_softirq()) in
    > disable_irq.
    >
    > But I must admit, I wouldn't know how to make that change without
    > spending more time on it then I have for this.

    the simplest fix for now would be to use the _nosync variant in the
    vortex timeout function.

    Mark, does this fix the problem?

    Ingo

    Index: linux-rt.q/drivers/net/3c59x.c
    ===================================================================
    --- linux-rt.q.orig/drivers/net/3c59x.c
    +++ linux-rt.q/drivers/net/3c59x.c
    @@ -1897,7 +1897,8 @@ vortex_timer(unsigned long data)

    if (vp->medialock)
    goto leave_media_alone;
    - disable_irq(dev->irq);
    + /* hack! */
    + disable_irq_nosync(dev->irq);
    old_window = ioread16(ioaddr + EL3_CMD) >> 13;
    EL3WINDOW(4);
    media_status = ioread16(ioaddr + Wn4_Media);
    -
    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-05-12 11:24    [W:0.024 / U:0.176 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site