Re: [net PATCH] skb: Do mix page pool and page referenced frags in GRO

From: Toke Høiland-Jørgensen
Date: Thu Jan 26 2023 - 16:36:28 EST


Alexander Duyck <alexander.duyck@xxxxxxxxx> writes:

> On Thu, Jan 26, 2023 at 11:14 AM Toke Høiland-Jørgensen <toke@xxxxxxxxxx> wrote:
>>
>> Alexander Duyck <alexander.duyck@xxxxxxxxx> writes:
>>
>> > From: Alexander Duyck <alexanderduyck@xxxxxx>
>> >
>> > GSO should not merge page pool recycled frames with standard reference
>> > counted frames. Traditionally this didn't occur, at least not often.
>> > However as we start looking at adding support for wireless adapters there
>> > becomes the potential to mix the two due to A-MSDU repartitioning frames in
>> > the receive path. There are possibly other places where this may have
>> > occurred however I suspect they must be few and far between as we have not
>> > seen this issue until now.
>> >
>> > Fixes: 53e0961da1c7 ("page_pool: add frag page recycling support in page pool")
>> > Reported-by: Felix Fietkau <nbd@xxxxxxxx>
>> > Signed-off-by: Alexander Duyck <alexanderduyck@xxxxxx>
>>
>> I know I'm pattern matching a bit crudely here, but we recently had
>> another report where doing a get_page() on skb->head didn't seem to be
>> enough; any chance they might be related?
>>
>> See: https://lore.kernel.org/r/Y9BfknDG0LXmruDu@JNXK7M3
>
> Looking at it I wouldn't think so. Doing get_page() on these frames is
> fine. In the case you reference it looks like get_page() is being
> called on a slab allocated skb head. So somehow a slab allocated head
> is leaking through.

Alright, thanks for taking a look! :)

-Toke