On Tue, Feb 02, 2016 at 09:14:06AM +0100, Stefan Sperling wrote:
> On Sat, Jan 30, 2016 at 10:49:38PM +1300, Richard Procter wrote:
> > +   atomic_add_int(&ring->queued, ntxds);
> > +           /* XXX card may interrupt here and invalidate this guard; the
> 
> You can easily prevent the card from interrupting by making rt2860_tx()
> call splnet() before modifying data shared with the interrupt handler.
> I think that's the real bug you're looking for.
> Could you try that and send an updated diff if it works?

Hmm. Taking a closer look, if_start() is already called under splnet.
So adding splnet to rt2860_tx() shouldn't make a difference.

This also means the card cannot interrupt in the way your comment
describes, i.e. the problem you're "fixing" here cannot exist... ?

Reply via email to