Linux 3.1 adds a flag to check whether it's OK for shared skbs to
be transmitted on devices. This generally isn't a problem for
hardware devices but software devices such as OVS that hold state
in the skb need to clear the flag, which is enabled by default.
Signed-off-by: Jesse Gross <jesse@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
#endif /* linux kernel < 2.6.31 */
+#ifndef IFF_TX_SKB_SHARING
+#define IFF_TX_SKB_SHARING 0
+#endif
+
#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,36)
#define IFF_OVS_DATAPATH IFF_BRIDGE_PORT
#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)
netdev->change_mtu = internal_dev_change_mtu;
#endif
+ netdev->priv_flags &= ~IFF_TX_SKB_SHARING;
netdev->destructor = internal_dev_destructor;
SET_ETHTOOL_OPS(netdev, &internal_dev_ethtool_ops);
netdev->tx_queue_len = 0;