Ingo Molnar wrote:
> * Mark Hounschell <[email protected]> wrote:
>> Steven Rostedt wrote:
>>> On Fri, 12 May 2006, Ingo Molnar wrote:
>>>> ah. This actually uncovered a real bug. We were calling __do_softirq()
>>>> with interrupts enabled (and being preemptible) - which is certainly
>>> Hmm, I wonder if this is also affecting Mark's problem.
>> I thought the same thing when I read it??
> could you try the patch below?
> * Steven Rostedt <[email protected]> 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
>> 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?
> 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;
> media_status = ioread16(ioaddr + Wn4_Media);
Yes it does.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Video 4 Linux]
[Linux for the blind]