On 18/02/14 17:40, Ian Campbell wrote:Actually, I've just moved the skb->cb patch to the beginning of this series, so we can completely omit that new parameter from fill_frags.
+ */We still have to pass pending_idx, as it is no longer in skb->data. I have plans (I've already prototyped it, actually) to move that pending_idx from skb->data to skb->cb, if that happens, this won't be necessary.
+ skb->pfmemalloc = false;
}
static int xenvif_get_extras(struct xenvif *vif,
@@ -1372,7 +1341,7 @@ static bool tx_credit_exceeded(struct xenvif *vif, unsigned size)
@@ -1581,7 +1535,11 @@ static int xenvif_tx_submit(struct xenvif *vif)
else if (txp->flags & XEN_NETTXF_data_validated)
skb->ip_summed = CHECKSUM_UNNECESSARY;
- xenvif_fill_frags(vif, skb);
+ xenvif_fill_frags(vif,
+ skb,
+ skb_shinfo(skb)->destructor_arg ?
+ pending_idx :
+ INVALID_PENDING_IDX
Couldn't xenvif_fill_frags calculate the 3rd argument itself given that
it has skb in hand.
On the other hand, it makes more sense just to just pass pending_idx, and in fill_frags we can decide based on destructor_arg whether do we need it or not.