net: rmnet_data: compute rx hash before napi_gro_receive

GRO engine needs to identify the right flow to add incoming skb.
It does this by marking all flows, and unmarks flows as it identifies
differences. First a quick elimination is done by comparing rx hash.
All flows with unequal rx hashes are unmarked. It further eliminates
flows after comparing IP and TCP header contents.

The skb is added to the marked flow's gro_list. If all the flows
are unmarked, implying the skb is a unique flow, the skb
is initialized as the head to a new gro_list.

rmnet_data creates a skb and copies contents from QMAP packet.
since rx hash is uninitialized, GRO engine has to compare IP and TCP
headers with all the GROing flows. So set rx_hash before calling
napi_gro_receive, for easier flow elimination.

Change-Id: Iaa444d6c17a25da494a650ed6076b50fd9b99cc4
Signed-off-by: Tejaswi Tanikella <tejaswit@codeaurora.org>
1 file changed