On Wed, 17 Oct 2007, Linus Torvalds wrote:> > So I think your change to use "sg_next()" only when you actually need a > next pointer is the correct one after all.

That still leaves the initialization issue. The link pointers need to all be initialized at SG allocation time (and not just the last one for the case where it's a linked entry).

And if you initialize them at allocation time, does an allocation ever get re-used without being free'd in between (if it does, you do indeed need to initialize the non-link pointers each time - but I don't see it being the case, so ..)