aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/bpf/devmap.c
diff options
context:
space:
mode:
authorJesper Dangaard Brouer <brouer@redhat.com>2018-05-24 10:46:17 -0400
committerAlexei Starovoitov <ast@kernel.org>2018-05-24 21:36:15 -0400
commite74de52e55c092e7113f839e74400ce9dbe12ceb (patch)
tree811913647e2becd8bfa53ea1a36bf4dc631aeb1d /kernel/bpf/devmap.c
parent735fc4054b3a25034445c6713d259da0f96f8131 (diff)
xdp/trace: extend tracepoint in devmap with an err
Extending tracepoint xdp:xdp_devmap_xmit in devmap with an err code allow people to easier identify the reason behind the ndo_xdp_xmit call to a given driver is failing. Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'kernel/bpf/devmap.c')
-rw-r--r--kernel/bpf/devmap.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/bpf/devmap.c b/kernel/bpf/devmap.c
index 77908311ec98..ae16d0c373ef 100644
--- a/kernel/bpf/devmap.c
+++ b/kernel/bpf/devmap.c
@@ -220,7 +220,7 @@ static int bq_xmit_all(struct bpf_dtab_netdev *obj,
220 struct xdp_bulk_queue *bq) 220 struct xdp_bulk_queue *bq)
221{ 221{
222 struct net_device *dev = obj->dev; 222 struct net_device *dev = obj->dev;
223 int sent = 0, drops = 0; 223 int sent = 0, drops = 0, err = 0;
224 int i; 224 int i;
225 225
226 if (unlikely(!bq->count)) 226 if (unlikely(!bq->count))
@@ -234,6 +234,7 @@ static int bq_xmit_all(struct bpf_dtab_netdev *obj,
234 234
235 sent = dev->netdev_ops->ndo_xdp_xmit(dev, bq->count, bq->q); 235 sent = dev->netdev_ops->ndo_xdp_xmit(dev, bq->count, bq->q);
236 if (sent < 0) { 236 if (sent < 0) {
237 err = sent;
237 sent = 0; 238 sent = 0;
238 goto error; 239 goto error;
239 } 240 }
@@ -242,7 +243,7 @@ out:
242 bq->count = 0; 243 bq->count = 0;
243 244
244 trace_xdp_devmap_xmit(&obj->dtab->map, obj->bit, 245 trace_xdp_devmap_xmit(&obj->dtab->map, obj->bit,
245 sent, drops, bq->dev_rx, dev); 246 sent, drops, bq->dev_rx, dev, err);
246 bq->dev_rx = NULL; 247 bq->dev_rx = NULL;
247 return 0; 248 return 0;
248error: 249error: