net: neigh: use kfree_skb_reason() in neigh_resolve_output() and neigh_connected_output()
Replace kfree_skb() used in neigh_resolve_output() and neigh_connected_output() with kfree_skb_reason(). Following new skb drop reason is added: /* failed to fill the device hard header */ SKB_DROP_REASON_NEIGH_HH_FILLFAIL Signed-off-by: Qiu Yutan <qiu.yutan@zte.com.cn> Signed-off-by: Jiang Kun <jiang.kun2@zte.com.cn> Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com> Reviewed-by: Xu Xin <xu.xin16@zte.com.cn> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
8ceeef23a3
commit
e45b7196df
@@ -62,6 +62,7 @@
|
||||
FN(NEIGH_FAILED) \
|
||||
FN(NEIGH_QUEUEFULL) \
|
||||
FN(NEIGH_DEAD) \
|
||||
FN(NEIGH_HH_FILLFAIL) \
|
||||
FN(TC_EGRESS) \
|
||||
FN(SECURITY_HOOK) \
|
||||
FN(QDISC_DROP) \
|
||||
@@ -348,6 +349,8 @@ enum skb_drop_reason {
|
||||
SKB_DROP_REASON_NEIGH_QUEUEFULL,
|
||||
/** @SKB_DROP_REASON_NEIGH_DEAD: neigh entry is dead */
|
||||
SKB_DROP_REASON_NEIGH_DEAD,
|
||||
/** @SKB_DROP_REASON_NEIGH_HH_FILLFAIL: failed to fill the device hard header */
|
||||
SKB_DROP_REASON_NEIGH_HH_FILLFAIL,
|
||||
/** @SKB_DROP_REASON_TC_EGRESS: dropped in TC egress HOOK */
|
||||
SKB_DROP_REASON_TC_EGRESS,
|
||||
/** @SKB_DROP_REASON_SECURITY_HOOK: dropped due to security HOOK */
|
||||
|
||||
@@ -1517,7 +1517,7 @@ out:
|
||||
return rc;
|
||||
out_kfree_skb:
|
||||
rc = -EINVAL;
|
||||
kfree_skb(skb);
|
||||
kfree_skb_reason(skb, SKB_DROP_REASON_NEIGH_HH_FILLFAIL);
|
||||
goto out;
|
||||
}
|
||||
EXPORT_SYMBOL(neigh_resolve_output);
|
||||
@@ -1541,7 +1541,7 @@ int neigh_connected_output(struct neighbour *neigh, struct sk_buff *skb)
|
||||
err = dev_queue_xmit(skb);
|
||||
else {
|
||||
err = -EINVAL;
|
||||
kfree_skb(skb);
|
||||
kfree_skb_reason(skb, SKB_DROP_REASON_NEIGH_HH_FILLFAIL);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user