diff options
Diffstat (limited to 'kernel/bpf')
| -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: |
