On Tuesday 21 June 2016 00:41:15 Antonio Quartulli wrote: [...]
--- a/net/batman-adv/tp_meter.c +++ b/net/batman-adv/tp_meter.c @@ -1206,7 +1206,7 @@ static int batadv_tp_send_ack(struct batadv_priv
*bat_priv, const u8 *dst,
/* send the ack */ r = batadv_send_skb_to_orig(skb, orig_node, NULL);
if (r == -1)
if ((r == -1) || !dev_xmit_complete(res)) kfree_skb(skb); if (unlikely(r < 0) || (r == NET_XMIT_DROP)) {
this is the same check we do in batadv_send_skb_unicast().
Why are we doing the check in batadv_send_skb_unicast, batadv_recv_my_icmp_packet, batadv_recv_icmp_ttl_exceeded, batadv_recv_icmp_packet, batadv_route_unicast_packet and batadv_tvlv_unicast_send? The doc for this functions says that it is only for (dev_)hard_start_xmit [1]. So it is for scheduler functions and things which directly want to send to the hw via netdev_start_xmit.
Or did I miss something?
Kind regards, Sven
[1] http://lxr.free-electrons.com/source/include/linux/netdevice.h#L117