RE: [PATCH v2 net 2/2] tg3: Fix data corruption on 5725 with TSO

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2013-05-14 at 09:19 -0700, Michael Chan wrote:

> We relocate once and then drop the packet if we encounter additional
> errors, including OOM, DMA mapping error, 4G boundary, etc.  The new
> linear skb should not hit the 4G boundary again.  The room between the
> end of this current buffer and 4G isn't big enough for the new linear
> skb.

This remind me an issue on bnx2x :

bnx2x FW has a limitation on GSO packets :
    
A single mss can not span more than 10 fragments.

After "net: use a per task frag allocator" patch, its possible
for an application interleaving small write() on several sockets
to build pathological skbs using 16 fragments (aka MAX_SKB_FRAGS)
but small amount of payload.
    
Fast path should build skbs with 2 or 3 fragments, as fragments
can be order-3 pages.
    
bnx2x driver performs an expensive skb_linearize() call and
this can fail if memory is fragmented : skb->len can be around 64K,
and including the skb_shared_info overhead, we might need order-5
pages.



--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]