On Sun, Nov 11, 2012 at 03:26:41PM +0000, David Woodhouse wrote: > On Sun, 2012-11-11 at 14:50 +0100, Krzysztof Mazur wrote: > > Looks and works ok after: > > + atmvcc->unlock_cb = pppoatm_unlock_cb; > > Heh, yeah. That would probably help :) > > Not sure if it's really necessary to optimise out the unneeded wakeups ??? > I don't think that code path gets exercised very hard for normal passing > of packets. Maybe only LCP echo and responses, on a live connection? > > But yeah, the locking *is* that simple, isn't it ??? and not the painful > stuff I had to do for the BLOCKED flag, which is why I deferred that > question to concentrate on the basic concept of using ->release_cb(). > > So it's silly *not* to do the 'need_wakeup'. But could it also live in > the 'blocked' word rather than expanding the structure further? Or just > *use* the BLOCKED bit, for that matter? >
It would require using atomic ops because also pppoatm_pop() can modify this word. I think it's better to add additional word instead of using atomic ops. Krzysiek -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/