Message ID | 20250207-tun-v6-0-fb49cf8b103e@daynix.com (mailing list archive) |
---|---|
Headers | show |
Series | tun: Unify vnet implementation | expand |
Hello: This series was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Fri, 07 Feb 2025 15:10:50 +0900 you wrote: > When I implemented virtio's hash-related features to tun/tap [1], > I found tun/tap does not fill the entire region reserved for the virtio > header, leaving some uninitialized hole in the middle of the buffer > after read()/recvmesg(). > > This series fills the uninitialized hole. More concretely, the > num_buffers field will be initialized with 1, and the other fields will > be inialized with 0. Setting the num_buffers field to 1 is mandated by > virtio 1.0 [2]. > > [...] Here is the summary with links: - [net-next,v6,1/7] tun: Refactor CONFIG_TUN_VNET_CROSS_LE https://git.kernel.org/netdev/net-next/c/5a9c5e5d8a1b - [net-next,v6,2/7] tun: Keep hdr_len in tun_get_user() https://git.kernel.org/netdev/net-next/c/07e8b3bae2f8 - [net-next,v6,3/7] tun: Decouple vnet from tun_struct https://git.kernel.org/netdev/net-next/c/60df67b94804 - [net-next,v6,4/7] tun: Decouple vnet handling https://git.kernel.org/netdev/net-next/c/2506251e81d1 - [net-next,v6,5/7] tun: Extract the vnet handling code https://git.kernel.org/netdev/net-next/c/1d41e2fa93f7 - [net-next,v6,6/7] tap: Keep hdr_len in tap_get_user() https://git.kernel.org/netdev/net-next/c/74212f20f366 - [net-next,v6,7/7] tap: Use tun's vnet-related code https://git.kernel.org/netdev/net-next/c/6a53fc5a8770 You are awesome, thank you!
When I implemented virtio's hash-related features to tun/tap [1], I found tun/tap does not fill the entire region reserved for the virtio header, leaving some uninitialized hole in the middle of the buffer after read()/recvmesg(). This series fills the uninitialized hole. More concretely, the num_buffers field will be initialized with 1, and the other fields will be inialized with 0. Setting the num_buffers field to 1 is mandated by virtio 1.0 [2]. The change to virtio header is preceded by another change that refactors tun and tap to unify their virtio-related code. [1]: https://lore.kernel.org/r/20241008-rss-v5-0-f3cf68df005d@daynix.com [2]: https://lore.kernel.org/r/20241227084256-mutt-send-email-mst@kernel.org/ Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> --- Changes in v6: - Added an intermediate variable in tun_vnet_legacy_is_little_endian() to reduce a complexity of an expression. - Noted that functions are renamed in the message of patch "tun: Extract the vnet handling code". - Used clamp() in patch "tap: Keep hdr_len in tap_get_user()". - Link to v5: https://lore.kernel.org/r/20250205-tun-v5-0-15d0b32e87fa@daynix.com Changes in v5: - s/vnet_hdr_len_sz/vnet_hdr_sz/ for patch "tun: Decouple vnet handling" (Willem de Bruijn) - Changed to inline vnet implementations to TUN and TAP. - Dropped patch "tun: Avoid double-tracking iov_iter length changes" and "tap: Avoid double-tracking iov_iter length changes". - Link to v4: https://lore.kernel.org/r/20250120-tun-v4-0-ee81dda03d7f@daynix.com Changes in v4: - s/sz/vnet_hdr_len_sz/ for patch "tun: Decouple vnet handling" (Willem de Bruijn) - Reverted to add CONFIG_TUN_VNET. - Link to v3: https://lore.kernel.org/r/20250116-tun-v3-0-c6b2871e97f7@daynix.com Changes in v3: - Dropped changes to fill the vnet header. - Splitted patch "tun: Unify vnet implementation". - Reverted spurious changes in patch "tun: Unify vnet implementation". - Merged tun_vnet.c into TAP. - Link to v2: https://lore.kernel.org/r/20250109-tun-v2-0-388d7d5a287a@daynix.com Changes in v2: - Fixed num_buffers endian. - Link to v1: https://lore.kernel.org/r/20250108-tun-v1-0-67d784b34374@daynix.com --- Akihiko Odaki (7): tun: Refactor CONFIG_TUN_VNET_CROSS_LE tun: Keep hdr_len in tun_get_user() tun: Decouple vnet from tun_struct tun: Decouple vnet handling tun: Extract the vnet handling code tap: Keep hdr_len in tap_get_user() tap: Use tun's vnet-related code MAINTAINERS | 2 +- drivers/net/tap.c | 166 +++++------------------------------------- drivers/net/tun.c | 193 ++++++------------------------------------------- drivers/net/tun_vnet.h | 185 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 229 insertions(+), 317 deletions(-) --- base-commit: a32e14f8aef69b42826cf0998b068a43d486a9e9 change-id: 20241230-tun-66e10a49b0c7 Best regards,