search for: tap_get_user_xdp

Displaying 13 results from an estimated 13 matches for "tap_get_user_xdp".

2018 Sep 06
1
[PATCH net-next 10/11] tap: accept an array of XDP buffs through sendmsg()
...letions(-) > > diff --git a/drivers/net/tap.c b/drivers/net/tap.c > index 7996ed7cbf18..50eb7bf22225 100644 > --- a/drivers/net/tap.c > +++ b/drivers/net/tap.c > @@ -1146,14 +1146,83 @@ static const struct file_operations tap_fops = { > #endif > }; > > +static int tap_get_user_xdp(struct tap_queue *q, struct xdp_buff *xdp) > +{ > + struct virtio_net_hdr *gso = xdp->data_hard_start + sizeof(int); > + int buflen = *(int *)xdp->data_hard_start; > + int vnet_hdr_len = 0; > + struct tap_dev *tap; > + struct sk_buff *skb; > + int err, depth; > + >...
2018 Dec 20
2
4.20-rc6: WARNING: CPU: 30 PID: 197360 at net/core/flow_dissector.c:764 __skb_flow_dissect
...oducer is not reliable. > > Yes, it is caused by commit d0e13a1488ad ("flow_dissector: lookup netns > by skb->sk if skb->dev is NULL") > > $ git tag --contains d0e13a1488ad > v4.20-rc1 > v4.20-rc2 > v4.20-rc3 > v4.20-rc4 > v4.20-rc5 > v4.20-rc6 That tap_get_user_xdp path is also new for 4.20-rc1: commit 0efac27791ee068075d80f07c55a229b1335ce12 tap: accept an array of XDP buffs through sendmsg() $ git describe --contains 0efac27791ee v4.20-rc1~14^2~382^2~1 In v4.19 and before all packets went through tap_get_user.
2018 Dec 20
2
4.20-rc6: WARNING: CPU: 30 PID: 197360 at net/core/flow_dissector.c:764 __skb_flow_dissect
...oducer is not reliable. > > Yes, it is caused by commit d0e13a1488ad ("flow_dissector: lookup netns > by skb->sk if skb->dev is NULL") > > $ git tag --contains d0e13a1488ad > v4.20-rc1 > v4.20-rc2 > v4.20-rc3 > v4.20-rc4 > v4.20-rc5 > v4.20-rc6 That tap_get_user_xdp path is also new for 4.20-rc1: commit 0efac27791ee068075d80f07c55a229b1335ce12 tap: accept an array of XDP buffs through sendmsg() $ git describe --contains 0efac27791ee v4.20-rc1~14^2~382^2~1 In v4.19 and before all packets went through tap_get_user.
2018 Sep 06
0
[PATCH net-next 10/11] tap: accept an array of XDP buffs through sendmsg()
...++++++++-- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/drivers/net/tap.c b/drivers/net/tap.c index 7996ed7cbf18..50eb7bf22225 100644 --- a/drivers/net/tap.c +++ b/drivers/net/tap.c @@ -1146,14 +1146,83 @@ static const struct file_operations tap_fops = { #endif }; +static int tap_get_user_xdp(struct tap_queue *q, struct xdp_buff *xdp) +{ + struct virtio_net_hdr *gso = xdp->data_hard_start + sizeof(int); + int buflen = *(int *)xdp->data_hard_start; + int vnet_hdr_len = 0; + struct tap_dev *tap; + struct sk_buff *skb; + int err, depth; + + if (q->flags & IFF_VNET_HDR) + vnet...
2018 Dec 20
1
4.20-rc6: WARNING: CPU: 30 PID: 197360 at net/core/flow_dissector.c:764 __skb_flow_dissect
...t; tap_get_user uses sock_alloc_send_pskb (through tap_alloc_skb) to > > allocate the skb. So skb->sk should be set at the time of > > skb_probe_transport_header. I'm not sure how this path triggers the > > warning. > > Maybe it's: > > tap_sendmsg() > tap_get_user_xdp() > build_skb() > skb_probe_transport_header() > skb_flow_dissect_flow_keys_basic() > __skb_flow_dissect() Oh, indeed. I completely overlooked that path. I will call skb_set_owner_w there and will audit the other users of build_s...
2018 Dec 21
0
4.20-rc6: WARNING: CPU: 30 PID: 197360 at net/core/flow_dissector.c:764 __skb_flow_dissect
...aused by commit d0e13a1488ad ("flow_dissector: lookup netns >> by skb->sk if skb->dev is NULL") >> >> $ git tag --contains d0e13a1488ad >> v4.20-rc1 >> v4.20-rc2 >> v4.20-rc3 >> v4.20-rc4 >> v4.20-rc5 >> v4.20-rc6 > > That tap_get_user_xdp path is also new for 4.20-rc1: > > commit 0efac27791ee068075d80f07c55a229b1335ce12 > tap: accept an array of XDP buffs through sendmsg() > > $ git describe --contains 0efac27791ee > v4.20-rc1~14^2~382^2~1 > > In v4.19 and before all packets went through ta...
2018 Sep 06
22
[PATCH net-next 00/11] Vhost_net TX batching
Hi all: This series tries to batch submitting packets to underlayer socket through msg_control during sendmsg(). This is done by: 1) Doing userspace copy inside vhost_net 2) Build XDP buff 3) Batch at most 64 (VHOST_NET_BATCH) XDP buffs and submit them once through msg_control during sendmsg(). 4) Underlayer sockets can use XDP buffs directly when XDP is enalbed, or build skb based on XDP
2019 Apr 16
4
[PATCH v3 09/26] compat_ioctl: move drivers to compat_ptr_ioctl
...HIS_MODULE, .open = tap_open, @@ -1140,9 +1132,7 @@ static const struct file_operations tap_fops = { .poll = tap_poll, .llseek = no_llseek, .unlocked_ioctl = tap_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = tap_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, }; static int tap_get_user_xdp(struct tap_queue *q, struct xdp_buff *xdp) diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c index b2314636dc89..ab7dfc7c2917 100644 --- a/drivers/staging/pi433/pi433_if.c +++ b/drivers/staging/pi433/pi433_if.c @@ -935,16 +935,6 @@ pi433_ioctl(struct file *filp, unsig...
2019 Apr 16
4
[PATCH v3 09/26] compat_ioctl: move drivers to compat_ptr_ioctl
...HIS_MODULE, .open = tap_open, @@ -1140,9 +1132,7 @@ static const struct file_operations tap_fops = { .poll = tap_poll, .llseek = no_llseek, .unlocked_ioctl = tap_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = tap_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, }; static int tap_get_user_xdp(struct tap_queue *q, struct xdp_buff *xdp) diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c index b2314636dc89..ab7dfc7c2917 100644 --- a/drivers/staging/pi433/pi433_if.c +++ b/drivers/staging/pi433/pi433_if.c @@ -935,16 +935,6 @@ pi433_ioctl(struct file *filp, unsig...
2018 Sep 12
14
[PATCH net-next V2 00/11] vhost_net TX batching
Hi all: This series tries to batch submitting packets to underlayer socket through msg_control during sendmsg(). This is done by: 1) Doing userspace copy inside vhost_net 2) Build XDP buff 3) Batch at most 64 (VHOST_NET_BATCH) XDP buffs and submit them once through msg_control during sendmsg(). 4) Underlayer sockets can use XDP buffs directly when XDP is enalbed, or build skb based on XDP
2018 Sep 12
14
[PATCH net-next V2 00/11] vhost_net TX batching
Hi all: This series tries to batch submitting packets to underlayer socket through msg_control during sendmsg(). This is done by: 1) Doing userspace copy inside vhost_net 2) Build XDP buff 3) Batch at most 64 (VHOST_NET_BATCH) XDP buffs and submit them once through msg_control during sendmsg(). 4) Underlayer sockets can use XDP buffs directly when XDP is enalbed, or build skb based on XDP
2019 Apr 19
0
[PATCH v3 09/26] compat_ioctl: move drivers to compat_ptr_ioctl
...7 @@ static const struct file_operations tap_fops = { > .poll = tap_poll, > .llseek = no_llseek, > .unlocked_ioctl = tap_ioctl, > -#ifdef CONFIG_COMPAT > - .compat_ioctl = tap_compat_ioctl, > -#endif > + .compat_ioctl = compat_ptr_ioctl, > }; > > static int tap_get_user_xdp(struct tap_queue *q, struct xdp_buff *xdp) > diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c > index b2314636dc89..ab7dfc7c2917 100644 > --- a/drivers/staging/pi433/pi433_if.c > +++ b/drivers/staging/pi433/pi433_if.c > @@ -935,16 +935,6 @@ pi433_ioctl...
2019 Jul 30
2
[PATCH v5 12/29] compat_ioctl: move drivers to compat_ptr_ioctl
...HIS_MODULE, .open = tap_open, @@ -1140,9 +1132,7 @@ static const struct file_operations tap_fops = { .poll = tap_poll, .llseek = no_llseek, .unlocked_ioctl = tap_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = tap_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, }; static int tap_get_user_xdp(struct tap_queue *q, struct xdp_buff *xdp) diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c index 40c6f4e7632f..313d22f6210f 100644 --- a/drivers/staging/pi433/pi433_if.c +++ b/drivers/staging/pi433/pi433_if.c @@ -928,16 +928,6 @@ pi433_ioctl(struct file *filp, unsig...