xen-netback: Fix handling of skbs requiring too many slots
authorZoltan Kiss <zoltan.kiss@citrix.com>
Wed, 4 Jun 2014 18:58:51 +0000 (19:58 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 5 Jun 2014 22:09:08 +0000 (15:09 -0700)
commit59ae9fc67007da8b5aea7b0a31c3607745cfbfee
tree908947ac0c763df0e3046e69b8e99e2e386d1762
parentc531692073847fe64635f6992d774fb319e3529a
xen-netback: Fix handling of skbs requiring too many slots

A recent commit (a02eb4 "xen-netback: worse-case estimate in xenvif_rx_action is
underestimating") capped the slot estimation to MAX_SKB_FRAGS, but that triggers
the next BUG_ON a few lines down, as the packet consumes more slots than
estimated.
This patch introduces full_coalesce on the skb callback buffer, which is used in
start_new_rx_buffer() to decide whether netback needs coalescing more
aggresively. By doing that, no packet should need more than
(XEN_NETIF_MAX_TX_SIZE + 1) / PAGE_SIZE data slots (excluding the optional GSO
slot, it doesn't carry data, therefore irrelevant in this case), as the provided
buffers are fully utilized.

Signed-off-by: Zoltan Kiss <zoltan.kiss@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: David Vrabel <david.vrabel@citrix.com>
Reviewed-by: Paul Durrant <paul.durrant@gmail.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/xen-netback/netback.c