On Thu, Nov 20, 2025 at 01:19:54PM +0100, Paolo Abeni wrote:
On 11/20/25 4:37 AM, Bobby Eshleman wrote:
@@ -2479,10 +2504,12 @@ static int tcp_recvmsg_dmabuf(struct sock *sk, const struct sk_buff *skb, unsigned int offset, struct msghdr *msg, int remaining_len) {
- struct net_devmem_dmabuf_binding *binding = NULL; struct dmabuf_cmsg dmabuf_cmsg = { 0 }; struct tcp_xa_pool tcp_xa_pool; unsigned int start; int i, copy, n;
- int refs = 0; int sent = 0; int err = 0;
@@ -2536,6 +2563,7 @@ static int tcp_recvmsg_dmabuf(struct sock *sk, const struct sk_buff *skb, skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; struct net_iov *niov; u64 frag_offset;
u32 token; int end;/* !skb_frags_readable() should indicate that ALL the @@ -2568,13 +2596,32 @@ static int tcp_recvmsg_dmabuf(struct sock *sk, const struct sk_buff *skb, start; dmabuf_cmsg.frag_offset = frag_offset; dmabuf_cmsg.frag_size = copy;
err = tcp_xa_pool_refill(sk, &tcp_xa_pool,skb_shinfo(skb)->nr_frags - i);if (err)
binding = net_devmem_iov_binding(niov);if (!sk->sk_devmem_info.binding)sk->sk_devmem_info.binding = binding;if (sk->sk_devmem_info.binding != binding) {err = -EFAULT; goto out;}if (static_branch_unlikely(&tcp_devmem_ar_key)) {Not a real/full review but the above is apparently causing kunit build failures:
ERROR:root:ld: vmlinux.o: in function `tcp_recvmsg_dmabuf': tcp.c:(.text+0x669b21): undefined reference to `tcp_devmem_ar_key' ld: tcp.c:(.text+0x669b68): undefined reference to `tcp_devmem_ar_key' ld: tcp.c:(.text+0x669c54): undefined reference to `tcp_devmem_ar_key' make[3]: *** [../scripts/Makefile.vmlinux:72: vmlinux.unstripped] Error 1 make[2]: *** [/home/kunit/testing/Makefile:1242: vmlinux] Error 2 make[1]: *** [/home/kunit/testing/Makefile:248: __sub-make] Error 2 make: *** [Makefile:248: __sub-make] Error 2
see:
Thanks Paolo, I'll fix that for the next rev. And I'll have to add building kunit into my flow (currently using some custom stuff and nipa ingest_mdir, but don't think either has kunit).
@@ -2617,6 +2664,7 @@ static int tcp_recvmsg_dmabuf(struct sock *sk, const struct sk_buff *skb, out: tcp_xa_pool_commit(sk, &tcp_xa_pool); +
[just because I stumbled upon the above while looking for the build issue]: please do not mix unrelated whitespace-change only with functional change.
Don't know how I missed that line, will definitely remove.
Thanks again, Bobby