qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 3/6] linux-user: netlink: Add IP_PKTINFO cmsg parsing


From: Laurent Vivier
Subject: Re: [PATCH v2 3/6] linux-user: netlink: Add IP_PKTINFO cmsg parsing
Date: Fri, 10 Jan 2025 14:27:53 +0100
User-agent: Mozilla Thunderbird

Le 27/12/2024 à 21:54, deller@kernel.org a écrit :
From: Helge Deller <deller@gmx.de>

Fixes those warnings:
  Unsupported host ancillary data: 0/8

Signed-off-by: Helge Deller <deller@gmx.de>
---
  linux-user/syscall.c | 12 ++++++++++++
  1 file changed, 12 insertions(+)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 494323efba..bbe2560927 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -1996,6 +1996,18 @@ static inline abi_long host_to_target_cmsg(struct 
target_msghdr *target_msgh,
                      (void *) &errh->offender, sizeof(errh->offender));
                  break;
              }
+            case IP_PKTINFO:
+            {
+                struct in_pktinfo *pkti = data;
+                struct in_pktinfo *target_pkti = target_data;

I think we need to define a target_in_pktinfo structure.

+
+                __put_user(pkti->ipi_ifindex, &target_pkti->ipi_ifindex);
+                host_to_target_sockaddr((unsigned long) 
&target_pkti->ipi_spec_dst,
+                    (void *) &pkti->ipi_spec_dst, sizeof(pkti->ipi_spec_dst));
+                host_to_target_sockaddr((unsigned long) &target_pkti->ipi_addr,
+                    (void *) &pkti->ipi_addr, sizeof(pkti->ipi_addr));

Why do you use host_to_target_sockaddr()? The type of ipi_spec_dst and ipi_addr 
is in_addr.
And in_addr is a __be32 so it doesn't need be translated from host endianness 
to target endianness.


+                break;
+            }
              default:
                  goto unimplemented;
              }

Thanks,
Laurent



reply via email to

[Prev in Thread] Current Thread [Next in Thread]