diff options
| author | Dave Airlie <airlied@redhat.com> | 2018-07-04 10:27:12 +1000 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2018-07-04 10:27:12 +1000 |
| commit | f29135ee4e0d4e01911ed569f731bfdb841cea6d (patch) | |
| tree | e72d49a2f677dd069c3a673522cf785548148f71 /kernel/bpf/devmap.c | |
| parent | eab976693153b9854bfa83d131374748f6ca4280 (diff) | |
| parent | 021c91791a5e7e85c567452f1be3e4c2c6cb6063 (diff) | |
| download | cachepc-linux-f29135ee4e0d4e01911ed569f731bfdb841cea6d.tar.gz cachepc-linux-f29135ee4e0d4e01911ed569f731bfdb841cea6d.zip | |
Merge v4.18-rc3 into drm-next
Two requests have come in for a backmerge,
and I've got some pull reqs on rc2, so this
just makes sense.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'kernel/bpf/devmap.c')
| -rw-r--r-- | kernel/bpf/devmap.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/kernel/bpf/devmap.c b/kernel/bpf/devmap.c index a7cc7b3494a9..642c97f6d1b8 100644 --- a/kernel/bpf/devmap.c +++ b/kernel/bpf/devmap.c @@ -345,6 +345,20 @@ int dev_map_enqueue(struct bpf_dtab_netdev *dst, struct xdp_buff *xdp, return bq_enqueue(dst, xdpf, dev_rx); } +int dev_map_generic_redirect(struct bpf_dtab_netdev *dst, struct sk_buff *skb, + struct bpf_prog *xdp_prog) +{ + int err; + + err = __xdp_generic_ok_fwd_dev(skb, dst->dev); + if (unlikely(err)) + return err; + skb->dev = dst->dev; + generic_xdp_tx(skb, xdp_prog); + + return 0; +} + static void *dev_map_lookup_elem(struct bpf_map *map, void *key) { struct bpf_dtab_netdev *obj = __dev_map_lookup_elem(map, *(u32 *)key); |
