Size calculation should have used the target struct. Fix the error by marking these ioctls as needing runtime size calcuation.
Signed-off-by: Cortland Tölva <c...@tolva.net> --- linux-user/syscall_defs.h | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index af91f9582d..2daa5ebdcc 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -863,31 +863,29 @@ struct target_pollfd { #define TARGET_FS_IOC_FIEMAP TARGET_IOWR('f',11,struct fiemap) -#if defined(CONFIG_USBFS) /* usb ioctls */ -#define TARGET_USBDEVFS_CONTROL TARGET_IOWR('U', 0, struct usbdevfs_ctrltransfer) -#define TARGET_USBDEVFS_BULK TARGET_IOWR('U', 2, struct usbdevfs_bulktransfer) -#define TARGET_USBDEVFS_RESETEP TARGET_IOR('U', 3, int) -#define TARGET_USBDEVFS_SETINTERFACE TARGET_IOR('U', 4, struct usbdevfs_setinterface) -#define TARGET_USBDEVFS_SETCONFIGURATION TARGET_IOR('U', 5, int) -#define TARGET_USBDEVFS_GETDRIVER TARGET_IOW('U', 8, struct usbdevfs_getdriver) -#define TARGET_USBDEVFS_DISCSIGNAL TARGET_IOR('U', 14, struct usbdevfs_disconnectsignal) -#define TARGET_USBDEVFS_CLAIMINTERFACE TARGET_IOR('U', 15, int) -#define TARGET_USBDEVFS_RELEASEINTERFACE TARGET_IOR('U', 16, int) -#define TARGET_USBDEVFS_CONNECTINFO TARGET_IOW('U', 17, struct usbdevfs_connectinfo) -#define TARGET_USBDEVFS_IOCTL TARGET_IOWR('U', 18, struct usbdevfs_ioctl) -#define TARGET_USBDEVFS_HUB_PORTINFO TARGET_IOR('U', 19, struct usbdevfs_hub_portinfo) +#define TARGET_USBDEVFS_CONTROL TARGET_IOWRU('U', 0) +#define TARGET_USBDEVFS_BULK TARGET_IOWRU('U', 2) +#define TARGET_USBDEVFS_RESETEP TARGET_IORU('U', 3) +#define TARGET_USBDEVFS_SETINTERFACE TARGET_IORU('U', 4) +#define TARGET_USBDEVFS_SETCONFIGURATION TARGET_IORU('U', 5) +#define TARGET_USBDEVFS_GETDRIVER TARGET_IOWU('U', 8) +#define TARGET_USBDEVFS_DISCSIGNAL TARGET_IORU('U', 14) +#define TARGET_USBDEVFS_CLAIMINTERFACE TARGET_IORU('U', 15) +#define TARGET_USBDEVFS_RELEASEINTERFACE TARGET_IORU('U', 16) +#define TARGET_USBDEVFS_CONNECTINFO TARGET_IOWU('U', 17) +#define TARGET_USBDEVFS_IOCTL TARGET_IOWRU('U', 18) +#define TARGET_USBDEVFS_HUB_PORTINFO TARGET_IORU('U', 19) #define TARGET_USBDEVFS_RESET TARGET_IO('U', 20) -#define TARGET_USBDEVFS_CLEAR_HALT TARGET_IOR('U', 21, int) +#define TARGET_USBDEVFS_CLEAR_HALT TARGET_IORU('U', 21) #define TARGET_USBDEVFS_DISCONNECT TARGET_IO('U', 22) #define TARGET_USBDEVFS_CONNECT TARGET_IO('U', 23) -#define TARGET_USBDEVFS_CLAIM_PORT TARGET_IOR('U', 24, int) -#define TARGET_USBDEVFS_RELEASE_PORT TARGET_IOR('U', 25, int) -#define TARGET_USBDEVFS_GET_CAPABILITIES TARGET_IOR('U', 26, int) -#define TARGET_USBDEVFS_DISCONNECT_CLAIM TARGET_IOR('U', 27, struct usbdevfs_disconnect_claim) -#define TARGET_USBDEVFS_DROP_PRIVILEGES TARGET_IOW('U', 30, int) +#define TARGET_USBDEVFS_CLAIM_PORT TARGET_IORU('U', 24) +#define TARGET_USBDEVFS_RELEASE_PORT TARGET_IORU('U', 25) +#define TARGET_USBDEVFS_GET_CAPABILITIES TARGET_IORU('U', 26) +#define TARGET_USBDEVFS_DISCONNECT_CLAIM TARGET_IORU('U', 27) +#define TARGET_USBDEVFS_DROP_PRIVILEGES TARGET_IOWU('U', 30) #define TARGET_USBDEVFS_GET_SPEED TARGET_IO('U', 31) -#endif /* CONFIG_USBFS */ /* cdrom commands */ #define TARGET_CDROMPAUSE 0x5301 /* Pause Audio Operation */ -- 2.17.1