Re: PROBLEM: System call 'sendmsg' of process ospfd (quagga) causeskernel oops

From: Eric Dumazet
Date: Tue Oct 18 2011 - 06:23:28 EST


Le mardi 18 octobre 2011 Ã 12:05 +0200, Herbert Xu a Ãcrit :
> On Tue, Oct 18, 2011 at 12:01:33PM +0200, Eric Dumazet wrote:
> >
> > Adding an RCU protected structure to hold hard_header_len /
> > needed_headroom / needed_tailroom should be possible, but this adds yet
> > another pointer dereference...
>
> I don't think we need RCU here since the problem is simply that
> we're using two different values for skb allocations and skb_reserve.
>
> As long as we use one and the same value it should work. The value
> will rarely be incorrect and when it is, automatic reallocation will
> occur.
>

You're right, if reallocations are OK in all paths.

We'll need to change LL_RESERVED_SPACE() / LL_RESERVED_SPACE_EXTRA() /
LL_ALLOCATED_SPACE() macros and provide the [read once] values, instead
of a [read once] pointer to values.

Thats a bit complex change, but doable.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/