Re: [PATCH RFC v2 4/6] KVM: change mark_page_dirty() to handle endian issues explicitly

Takuya Yoshikawa
2010-04-20T11:16:45Z

(2010/04/20 20:00), Alexander Graf wrote:
>
> On 20.04.2010, at 13:00, Takuya Yoshikawa wrote:
>
>> We are now using generic___set_le_bit() to make dirty bitmaps le.
>> Though this works well, we have to replace __set_bit() to appropriate
>> uaccess function to move dirty bitmaps to user space. So this patch
>> splits generic___set_le_bit() and prepares for that.
>>
>> Signed-off-by: Takuya Yoshikawa<yoshikawa.takuya@oss.ntt.co.jp>
>> Signed-off-by: Fernando Luis Vazquez Cao<fernando@oss.ntt.co.jp>
>> ---
>> virt/kvm/kvm_main.c | 16 +++++++++++-----
>> 1 files changed, 11 insertions(+), 5 deletions(-)
>>
>> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
>> index 6908304..66c4daf 100644
>> --- a/virt/kvm/kvm_main.c
>> +++ b/virt/kvm/kvm_main.c
>> @@ -1194,6 +1194,15 @@ int kvm_clear_guest(struct kvm *kvm, gpa_t gpa, unsigned long len)
>> }
>> EXPORT_SYMBOL_GPL(kvm_clear_guest);
>>
>> +static int __mark_page_dirty(unsigned long nr,
>> + unsigned long *dirty_bitmap)
>> +{
>> +#ifdef __BIG_ENDIAN
>> + nr = nr ^ BITOP_LE_SWIZZLE;
>
> Why an XOR here?
Ah, might be my cut and paste mistake. I just copied from generic___set_le_bit().

>
> Also is this LE set_bit new? I didn't see it when I did the patch back then :).

Really? I need to check the git log then. This LE set_bit is not new I think.

>
>
> Alex
>