atl1c: Fix misuse of netdev_alloc_skb in refilling rx ring
authorEric Dumazet <edumazet@google.com>
Mon, 29 Jul 2013 17:24:04 +0000 (10:24 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 31 Jul 2013 01:12:07 +0000 (18:12 -0700)
commit7b70176421993866e616f1cbc4d0dd4054f1bf78
treebcbc0648f8fb8a1715eda99ec25c9053a0525d47
parente1ee3673a83cc02b6b5e43c9e647d8dd5e1c4e26
atl1c: Fix misuse of netdev_alloc_skb in refilling rx ring

On Mon, 2013-07-29 at 08:30 -0700, Eric Dumazet wrote:
> On Mon, 2013-07-29 at 13:09 +0100, Luis Henriques wrote:
>
> >
> > I confirm that I can't reproduce the issue using this patch.
> >
>
> Thanks, I'll send a polished patch, as this one had an error if
> build_skb() returns NULL (in case sk_buff allocation fails)

Please try the following patch : It should use 2K frags instead of 4K
for normal 1500 mtu

Thanks !

[PATCH] atl1c: use custom skb allocator

We had reports ( https://bugzilla.kernel.org/show_bug.cgi?id=54021 )
that using high order pages for skb allocations is problematic for atl1c

We do not know exactly what the problem is, but we suspect that crossing
4K pages is not well supported by this hardware.

Use a custom allocator, using page allocator and 2K fragments for
optimal stack behavior. We might make this allocator generic
in future kernels.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Luis Henriques <luis.henriques@canonical.com>
Cc: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/atheros/atl1c/atl1c.h
drivers/net/ethernet/atheros/atl1c/atl1c_main.c