On 24 July 2012 13:02, Andreas Färber <afaer...@suse.de> wrote: > Am 23.07.2012 20:05, schrieb Peter Maydell: >> The definitions for the ioctl numbers TARGET_BLKBSZGET and >> TARGET_BLKBSZSET had the wrong size parameters (they are defined >> with size_t, not int, even though the ioctl implementations themselves >> read and write integers). Since commit 354a0008 we now have an >> ioctl wrapper definition for BLKBSZGET and so on an x86-64-to-x86-64 >> linux-user binary we were triggering the mismatch warning in >> syscall_init(). >> >> Signed-off-by: Peter Maydell <peter.maydell> > > Beep :)
Hrm, how did that happen? Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> >> linux-user/syscall_defs.h | 4 ++-- >> 1 files changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h >> index a79b67d..0b239c4 100644 >> --- a/linux-user/syscall_defs.h >> +++ b/linux-user/syscall_defs.h >> @@ -832,8 +832,8 @@ struct target_pollfd { >> #define TARGET_BLKSECTGET TARGET_IO(0x12,103)/* get max sectors per request >> (ll_rw_blk.c) */ >> #define TARGET_BLKSSZGET TARGET_IO(0x12,104)/* get block device sector >> size */ >> /* A jump here: 108-111 have been used for various private purposes. */ >> -#define TARGET_BLKBSZGET TARGET_IOR(0x12,112,int) >> -#define TARGET_BLKBSZSET TARGET_IOW(0x12,113,int) >> +#define TARGET_BLKBSZGET TARGET_IOR(0x12, 112, abi_ulong) >> +#define TARGET_BLKBSZSET TARGET_IOW(0x12, 113, abi_ulong) >> #define TARGET_BLKGETSIZE64 TARGET_IOR(0x12,114,abi_ulong) >> /* return device size in bytes >> (u64 *arg) */ > > For the usual suspects this looks right. > But does abi_ulong correctly handle ppc64abi32 and sparc32plus? abi_ulong is always the size of a target's 'unsigned long'. In this case the actual type used in the kernel's definition of this ioctl number is 'size_t', but I believe that for all our architectures (including the TARGET_ABI32 ones you list) this is the same width as 'unsigned long' (though not necessarily actually 'unsigned long'...) -- PMM