diff options
| author | David S. Miller <davem@davemloft.net> | 2018-07-31 19:48:22 +0300 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2018-07-31 19:48:22 +0300 |
| commit | 6293e4d674d0f6cb01cd19307dd477988776c521 (patch) | |
| tree | 06fb904b95b6f0427a577120753713aa39050660 /include/linux | |
| parent | 39c64d8c876622e766dd2112baf81151dd82da02 (diff) | |
| parent | 84c6b86875e01a08a0daa6fdd4a01b36bf0bf0b2 (diff) | |
| download | linux-6293e4d674d0f6cb01cd19307dd477988776c521.tar.xz | |
Merge branch 'xsk-improvements-to-RX-queue-check-and-replace'
Jakub Kicinski says:
====================
xsk: improvements to RX queue check and replace
First 3 patches of my recent RFC. The first one make the check against
real_num_rx_queues slightly more reliable, while the latter two redefine
XDP_QUERY_XSK_UMEM slightly to disallow replacing UMEM in the driver at
the stack level.
I'm not sure where this lays on the bpf vs net trees scale, but there
should be no conflicts with either tree.
====================
Acked-by: Björn Töpel <bjorn.topel@intel.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/netdevice.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 9c917467a2c7..282e2e95ad5b 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -872,10 +872,10 @@ struct netdev_bpf { struct { struct bpf_offloaded_map *offmap; }; - /* XDP_SETUP_XSK_UMEM */ + /* XDP_QUERY_XSK_UMEM, XDP_SETUP_XSK_UMEM */ struct { - struct xdp_umem *umem; - u16 queue_id; + struct xdp_umem *umem; /* out for query*/ + u16 queue_id; /* in for query */ } xsk; }; }; @@ -3431,8 +3431,9 @@ int netif_set_real_num_tx_queues(struct net_device *dev, unsigned int txq); int netif_set_real_num_rx_queues(struct net_device *dev, unsigned int rxq); #else static inline int netif_set_real_num_rx_queues(struct net_device *dev, - unsigned int rxq) + unsigned int rxqs) { + dev->real_num_rx_queues = rxqs; return 0; } #endif @@ -3567,6 +3568,7 @@ int dev_change_xdp_fd(struct net_device *dev, struct netlink_ext_ack *extack, int fd, u32 flags); u32 __dev_xdp_query(struct net_device *dev, bpf_op_t xdp_op, enum bpf_netdev_command cmd); +int xdp_umem_query(struct net_device *dev, u16 queue_id); int __dev_forward_skb(struct net_device *dev, struct sk_buff *skb); int dev_forward_skb(struct net_device *dev, struct sk_buff *skb); |
