diff options
Diffstat (limited to 'kernel/bpf/devmap.c')
-rw-r--r-- | kernel/bpf/devmap.c | 5 |
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; |
248 | error: | 249 | error: |