On Thu, Apr 13, 2017 at 04:23:15PM -0400, David Miller wrote: > + > + switch (act) { > + case XDP_TX: > + __skb_push(skb, skb->mac_len); s/skb->mac_len/mac_len/ > + HARD_TX_UNLOCK(dev, txq); > + if (free_skb) { > + trace_xdp_exception(dev, xdp_prog, XDP_TX); > + kfree_skb(skb); nice that you didn't forget to add trace_xdp_exception in this path :) Overall looks good to me and other than the minor nit in tx, i think it should work for programs already used with in-driver xdp. I'll test it next week unless people beat me to it.