I'll give it a shot. Is this sufficient for SMP systems? I thought spl*
funcitons only raised the ipl for the local cpu. Isn't it possible for
detach and event handling to be executed by different cpus?

On Sat, Feb 6, 2016 at 8:52 AM, Manuel Bouyer <bou...@antioche.eu.org>
wrote:

> On Fri, Feb 05, 2016 at 01:09:28PM -0800, Rohan Desai wrote:
> > I'm getting a panic due to a race between the detach path
> > (xennet_xenbus_detach) and event handling (xennet_handler called from
> > triggered event channel). xennet_xenbus_detach frees up the tx ring and
> > xennet_handler tries to access it. I'm not sure what event the event
> > channel is being poked for (tx complete, rx ready, other). Does anybody
> > know how these two code-paths are supposed to be synchronized ?
>
> xennet_xenbus_detach() runs at splnet(), so this should be enough to
> prevent
> the event handler from being called.
>
> But I see where the race could be: we sleep waiting for the rx grant
> ref to be released, the event handler could be called at this time.
> I guess just removing the interrupt handler earlier, like in the
> attached patch, is enough to fix it. Can you test ?
>
> --
> Manuel Bouyer <bou...@antioche.eu.org>
>      NetBSD: 26 ans d'experience feront toujours la difference
> --
>

Reply via email to