Re: [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty bitmaps

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 23.04.2010, at 13:57, Avi Kivity wrote:

> On 04/23/2010 01:20 PM, Alexander Graf wrote:
>> 
>>> I would say the reason is that if we did not convert the user-space pointer to
>>> a "void *" kvm_get_dirty_log() would end up copying the dirty log to
>>> 
>>> (log->dirty_bitmap<<  32) | 0x00000000
>>>     
>> Well yes, that was the problem. If we always set the __u64 value to the pointer we're safe though.
>> 
>> union {
>>   void *p;
>>   __u64 q;
>> }
>> 
>> void x(void *r)
>> {
>>   // breaks:
>>   p = r;
>> 
>>   // works:
>>   q = (ulong)r;
>> }
>>   
> 
> In that case it's better to avoid p altogether, since users will naturally assign to the pointer.
> 
> Using a 64-bit integer avoids the problem (though perhaps not sufficient for s390, Arnd?)

We only support 64 bit on S390, so we should be safe here. Even if not, compat mode has 31 bits pointers, so padding them to 64 bit should work too.


Alex

--
To unsubscribe from this list: send the line "unsubscribe kvm-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux KVM Devel]     [Linux Virtualization]     [Big List of Linux Books]     [Linux SCSI]     [Yosemite Forum]

  Powered by Linux