Kernel WARNING in Xenomai3 with RTnet

Hannes Diethelm <[email protected]>
Newsgroups dev.linux.lists.xenomai
Message-ID <[email protected]>
Configuration:

Debian Trixie
xenomai3:master
linux-dovetail:v6.12.67-dovetail1

I have the following warning as soon as I enable the network interface:
Apr 08 01:52:12 trixie-box kernel: ------------[ cut here ]------------
Apr 08 01:52:12 trixie-box kernel: memcpy: detected field-spanning write 
(size 80) of single field "call->priv_data" at 
drivers/xenomai/net/stack/rtnet_rtpc.c:93 (size 0)
Apr 08 01:52:12 trixie-box kernel: WARNING: CPU: 13 PID: 2480 at 
drivers/xenomai/net/stack/rtnet_rtpc.c:93 
rtnet_rtpc_dispatch_call+0x2df/0x3d0 [rtnet]
Apr 08 01:52:12 trixie-box kernel: Modules linked in: rtudp rtipv4 
rt_loopback joydev uinput qrtr rfkill binfmt_misc intel_rapl_msr 
intel_rapl_common ccp kvm snd_hda_codec_generic snd_hda_intel ir>
Apr 08 01:52:12 trixie-box kernel: CPU: 13 UID: 0 PID: 2480 Comm: rtping 
Not tainted 6.12.67-xenomai3-73ad3b #3
Apr 08 01:52:12 trixie-box kernel: Hardware name: QEMU Standard PC (Q35 
+ ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Apr 08 01:52:12 trixie-box kernel: IRQ stage: Linux
Apr 08 01:52:12 trixie-box kernel: RIP: 
0010:rtnet_rtpc_dispatch_call+0x2df/0x3d0 [rtnet]
Apr 08 01:52:12 trixie-box kernel: Code: 26 50 00 00 00 0f 85 d1 fd ff 
ff 31 c9 48 c7 c2 00 13 94 c0 4c 89 ee 48 c7 c7 48 13 94 c0 c6 05 06 50 
00 00 01 e8 51 d6 97 eb <0f> 0b e9 ab fd ff ff 84 d2 >
Apr 08 01:52:12 trixie-box kernel: RSP: 0018:ffffcdff82ebbd68 EFLAGS: 
00010286
Apr 08 01:52:12 trixie-box kernel: RAX: 0000000000000000 RBX: 
ffff8988585012c0 RCX: 0000000000000027
Apr 08 01:52:12 trixie-box kernel: RDX: ffff898b6fca0948 RSI: 
0000000000000001 RDI: ffff898b6fca0940
Apr 08 01:52:12 trixie-box kernel: RBP: 00000000000001f4 R08: 
0000000000000000 R09: ffffcdff82ebbb28
Apr 08 01:52:12 trixie-box kernel: R10: ffffffffadeb9ee8 R11: 
0000000000000003 R12: 0000000000000000
Apr 08 01:52:12 trixie-box kernel: R13: 0000000000000050 R14: 
ffffffffc0cff5b0 R15: ffffffffc0cff6e0
Apr 08 01:52:12 trixie-box kernel: FS:  00007f1499d11740(0000) 
GS:ffff898b6fc80000(0000) knlGS:0000000000000000
Apr 08 01:52:12 trixie-box kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 
0000000080050033
Apr 08 01:52:12 trixie-box kernel: CR2: 00007ffe3de7dff8 CR3: 
000000014d74e000 CR4: 0000000000750ef0
Apr 08 01:52:12 trixie-box kernel: PKRU: 55555554
Apr 08 01:52:12 trixie-box kernel: Call Trace:
Apr 08 01:52:12 trixie-box kernel:  <TASK>
Apr 08 01:52:12 trixie-box kernel:  ipv4_ioctl+0x16b/0x230 [rtipv4]
Apr 08 01:52:12 trixie-box kernel:  rtnet_ioctl+0x164/0x190 [rtnet]
Apr 08 01:52:12 trixie-box kernel:  ? __count_memcg_events+0x67/0x100
Apr 08 01:52:12 trixie-box kernel:  __x64_sys_ioctl+0x91/0xd0
Apr 08 01:52:12 trixie-box kernel:  do_syscall_64+0xc0/0x230
Apr 08 01:52:12 trixie-box kernel: entry_SYSCALL_64_after_hwframe+0x76/0x7e
Apr 08 01:52:12 trixie-box kernel: RIP: 0033:0x7f1499e2091b
Apr 08 01:52:12 trixie-box kernel: Code: 00 48 89 44 24 18 31 c0 48 8d 
44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 
10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c >
Apr 08 01:52:12 trixie-box kernel: RSP: 002b:00007ffe3de7e9f0 EFLAGS: 
00000246 ORIG_RAX: 0000000000000010
Apr 08 01:52:12 trixie-box kernel: RAX: ffffffffffffffda RBX: 
00007f1499d11740 RCX: 00007f1499e2091b
Apr 08 01:52:12 trixie-box kernel: RDX: 000055c8e00d60e0 RSI: 
00000000c0500285 RDI: 0000000000000003
Apr 08 01:52:12 trixie-box kernel: RBP: 0000000000000002 R08: 
0000000000000000 R09: 0000000000000000
Apr 08 01:52:12 trixie-box kernel: R10: 0000000000000003 R11: 
0000000000000246 R12: 00007ffe3de7f818
Apr 08 01:52:12 trixie-box kernel: R13: 0000000000000002 R14: 
00007f1499f60000 R15: 000055c8e00d5dd8
Apr 08 01:52:12 trixie-box kernel:  </TASK>
Apr 08 01:52:12 trixie-box kernel: ---[ end trace 0000000000000000 ]---

This can be fixed with the following patch. However, I am not sure if 
it's the right way to do it.
diff --git a/kernel/drivers/net/stack/rtnet_rtpc.c 
b/kernel/drivers/net/stack/rtnet_rtpc.c
index cd5f0546d..caed27269 100644
--- a/kernel/drivers/net/stack/rtnet_rtpc.c
+++ b/kernel/drivers/net/stack/rtnet_rtpc.c
@@ -90,7 +90,7 @@ int rtnet_rtpc_dispatch_call(rtpc_proc proc, unsigned 
int timeout,
      if (call == NULL)
          return -ENOMEM;

-    memcpy(call->priv_data, priv_data, priv_data_size);
+    unsafe_memcpy(call->priv_data, priv_data, priv_data_size, 
/*embedded variable length data*/);

      call->processed = 0;
      call->proc = proc;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.