uapi: fix definition of struct sockaddr_nfc_llcp on x32 and mips n32
PATCH 1/2 uapi: fix definition of struct sockaddr_nfc_llcp on x32 and mips n32
Replace size_t with __kernel_size_t to fix definition of struct sockaddr_nfc_llcp on architectures like x32 and mips n32 where sizeof(size_t) < sizeof(__kernel_size_t).
This also fixes the following linux/nfc.h userspace compilation error:
/usr/include/linux/nfc.h:279:2: error: unknown type name 'size_t'
size_t service_name_len;
--- include/uapi/linux/nfc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
include/uapi/linux/nfc.h +1 -1
@@ -276,7 +276,7 @@ struct sockaddr_nfc_llcp {__u8 dsap;/* Destination SAP, if known */ __u8 ssap;/* Source SAP to be bound to */ char service_name[NFC_LLCP_MAX_SERVICE_NAME ];/* Service name URI */ ; -size_t service_name_len; +__kernel_size_t service_name_len; };/* NFC socket protocols */
Signature · 1 line
ldv
Quoted 20 lines · Dmitry V. Levin
Replace
size_twith__kernel_size_tto fix definition of structsockaddr_nfc_llcpon architectures like x32 and mips n32 wheresizeof(size_t)<sizeof(__kernel_size_t).This also fixes the following
linux/nfc.huserspace compilation error:
/usr/include/linux/nfc.h:279:2: error: unknown type name 'size_t'
size_tservice_name_len;Signed-off-by Dmitry V. Levin <[email protected]>--- include/uapi/linux/nfc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)include/uapi/linux/nfc.h +0
-0
include/uapi/linux/nfc.h struct sockaddr_nfc_llcp { · line 282
Quoted 8 lines
include/uapi/linux/nfc.h +1
-1@@ -276,7 +276,7 @@ struct sockaddr_nfc_llcp {__u8 dsap;/* Destination SAP, if known */ __u8 ssap;/* Source SAP to be bound to */ char service_name[NFC_LLCP_MAX_SERVICE_NAME ];/* Service name URI */ ; -size_t service_name_len; +__kernel_size_t service_name_len; };/* NFC socket protocols */
Unfortunately, this is not the right fix for the problem.
It was definitely a bad idea to use architecture dependent types in the definition of struct sockaddr_nfc_llcp. Somebody will have to implement a compat layer to make it work properly with x86, x32, and other compat personalities.
Signature · 1 line
ldv