On Mon, Jul 20, 2015 at 06:58:06PM +0200, Alexander Bluhm wrote:
> On Mon, Jul 20, 2015 at 01:09:07AM +0000, Florian Obser wrote:
> > -           s = splnet();
> >  
> > +           s = splnet();
> >             pflow_flush(sc);
> > +           splx(s);
> 
> This splx() looks strange, too.  Why flush something that could be
> filled by an interrupt after splx()?  I think you have to put
> everything in one splnet() block.
> 
> I wonder wether pflow(4) is ever run at splnet().  Otherwise
> splsoftnet() for the block should be enough.  But that is another
> topic.  Keep the splnet() for now.

No it's not. The spl dance is here for two reasons:
1) protect against pf messing with pflow state while pflow is sending
   data
2) protect the ip_output() I'm removing

pf runs at softnet and ip_output() is gone. so softnet it is ;)

I was afraid I got the spl stuff wrong. I'll stare at it a bit more.
All the other comments from you and blambert@ are integrated in my tree.

-- 
I'm not entirely sure you are real.

Reply via email to