mirror of https://gitee.com/openkylin/qemu.git
linux-user: Fix target FS_IOC_GETFLAGS and FS_IOC_SETFLAGS numbers
We were defining TARGET_FS_IOC_GETFLAGS and TARGET_FS_IOC_SETFLAGS using the host 'long' type in the size field, which meant that they had the wrong values if the host and guest had different sized longs. Switch to abi_long instead. This fixes a bug where these ioctls don't work on 32-bit guests on 64-bit hosts (and makes the LTP test 'setxattr03' pass where it did not previously.) Reported-by: pgndev <pgnet.dev@gmail.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
parent
cc1b3960a1
commit
1847b7ba70
|
@ -1101,8 +1101,8 @@ struct target_pollfd {
|
|||
/* Note that the ioctl numbers claim type "long" but the actual type
|
||||
* used by the kernel is "int".
|
||||
*/
|
||||
#define TARGET_FS_IOC_GETFLAGS TARGET_IOR('f', 1, long)
|
||||
#define TARGET_FS_IOC_SETFLAGS TARGET_IOW('f', 2, long)
|
||||
#define TARGET_FS_IOC_GETFLAGS TARGET_IOR('f', 1, abi_long)
|
||||
#define TARGET_FS_IOC_SETFLAGS TARGET_IOW('f', 2, abi_long)
|
||||
|
||||
#define TARGET_FS_IOC_FIEMAP TARGET_IOWR('f',11,struct fiemap)
|
||||
|
||||
|
|
Loading…
Reference in New Issue