]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
selftests: ncdevmem: don't retry EFAULT
authorStanislav Fomichev <sdf@fomichev.me>
Thu, 4 Sep 2025 18:27:10 +0000 (11:27 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Nov 2025 20:37:15 +0000 (15:37 -0500)
[ Upstream commit 8c0b9ed2401b9b3f164c8c94221899a1ace6e9ab ]

devmem test fails on NIPA. Most likely we get skb(s) with readable
frags (why?) but the failure manifests as an OOM. The OOM happens
because ncdevmem spams the following message:

  recvmsg ret=-1
  recvmsg: Bad address

As of today, ncdevmem can't deal with various reasons of EFAULT:
- falling back to regular recvmsg for non-devmem skbs
- increasing ctrl_data size (can't happen with ncdevmem's large buffer)

Exit (cleanly) with error when recvmsg returns EFAULT. This should at
least cause the test to cleanup its state.

Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
Reviewed-by: Mina Almasry <almasrymina@google.com>
Link: https://patch.msgid.link/20250904182710.1586473-1-sdf@fomichev.me
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/testing/selftests/drivers/net/hw/ncdevmem.c

index 72f828021f832024c7f6aac188612f118a125f09..147976e55dac23ed9ed56d24cb48c93de0ffa860 100644 (file)
@@ -631,6 +631,10 @@ static int do_server(struct memory_buffer *mem)
                        continue;
                if (ret < 0) {
                        perror("recvmsg");
+                       if (errno == EFAULT) {
+                               pr_err("received EFAULT, won't recover");
+                               goto err_close_client;
+                       }
                        continue;
                }
                if (ret == 0) {