Re: Hang problem on Tyan K7 Thunder resolved -- SB Live! heads-up

Linus Torvalds (torvalds@transmeta.com)
Sun, 12 Aug 2001 15:59:21 -0700 (PDT)


On Sun, 12 Aug 2001, Manuel McLure wrote:
> >
> > Can you try just adding the line
> >
> > if (!woinst)
> > return;
> >
> > to the top of the function (just before the "spin_lock_irqsave()"). Does
> > that fix it for you?
> >
> > Linus
>
> So far so good - however I don't have a consistent way to reproduce this.
> I'll just keep running and see if the Oops happens again.

Mind trying an alternate approach: remove the "if (!woinst)" thing, and
instead move the line that initializes the tasklets down two lines
(there's two places, they look something like

tasklet_init(&wiinst->timer.tasklet, emu10k1_wavein_bh, (unsigned long) wave_dev);
wave_dev->wiinst = wiinst;
emu10k1_wavein_setformat(wave_dev, &wiinst->format);

and they _should_ do the "tasklet_init()" _after_ the other
initializations, ie move that line down a bit, like so:

wave_dev->wiinst = wiinst;
emu10k1_wavein_setformat(wave_dev, &wiinst->format);
tasklet_init(&wiinst->timer.tasklet, emu10k1_wavein_bh, (unsigned long) wave_dev);

Does that also fix it?

And sure, I realize that you want to run it for a while..

Linus

-
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/