[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH v2 3/6] linux-user: netlink: Add IP_PKTINFO cmsg parsing,
Laurent Vivier <=