Avi Kivity <avi@xxxxxxxxxx> writes: > On 09/03/2012 03:33 PM, Rusty Russell wrote: >> Avi Kivity <avi@xxxxxxxxxx> writes: >>> On 09/01/2012 03:35 PM, Rusty Russell wrote: >>>> Passing an address in a struct is pretty bad, since it involves >>>> compatibility wrappers. >>> >>> Right, some s390 thing. >> >> Err, no, i386 on x86-64, or ppc32 on ppc64, or arm on arm64.... >> >> Any time you put a pointer in a structure which is exposed to userspace, >> you have to deal with this. > > Not is you pack the pointer in a __u64, which is what we do to preserve > padding. Then it is only s390 which needs extra love. OK, yes. Or skip pointers altogether, like I do. > Another option is to use the size parameter from the ioctl. It just > sits there doing nothing. Not nothing, it defines the head struct size. It's redundant, but proven a useful sanity check over the years. Perhaps somewhere else does use these 14 bits to represent a variable size, but it would surprise me a bit to see it. We'd probably want some way to tell userspace the size then, so we have a different redundancy. We're being too clever, that's why I copied the x86 MSR discovery interface. Cheers, Rusty. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html