Comment 16 for bug 1683305

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/31286
Committed: http://github.com/Juniper/contrail-vrouter/commit/92a8f11a7df7e65f8deaaafc51fb1b33f51ac0a2
Submitter: Zuul (<email address hidden>)
Branch: R3.1

commit 92a8f11a7df7e65f8deaaafc51fb1b33f51ac0a2
Author: Anand H. Krishnan <email address hidden>
Date: Mon May 8 15:08:00 2017 +0530

A cloned skbuff should not be sent to napi_gro_receive

When skb_gro_receive merges skbs/fragments, it does not take
a reference to the underlying page, thus transferring the
original reference it had to the first packet of the packet
bundle. This will work fine for non-cloned packets.

However, for cloned packets, when the gro-ed packet is
eventually freed (because the original skb was not cloned and
hence reference was 1), the merged skb's frags also get freed
(put_page-ed) without taking into account the other references
that were held for the fragments (dataref). This will result in
bad page problems.

Hence, avoid GRO for cloned packets.

Change-Id: I867dc6eac82e1ebc7a0f496b928d66ff62409542
Closes-Bug: #1683305