All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: kvm-ppc@vger.kernel.org
Subject: Re: [PATCH 26/27] Enable 32bit dirty log pointers on 64bit host
Date: Tue, 29 Sep 2009 09:14:59 +0000	[thread overview]
Message-ID: <4AC1D013.9040600@redhat.com> (raw)
In-Reply-To: <1254212303-8737-27-git-send-email-agraf@suse.de>

On 09/29/2009 10:18 AM, Alexander Graf wrote:
> With big endian userspace, we can't quite figure out if a pointer
> is 32 bit (shifted>>  32) or 64 bit when we read a 64 bit pointer.
>
> This is what happens with dirty logging. To get the pointer interpreted
> correctly, I just make it bounce twice, but admittedly that is not ideal.
>
> I'm open for suggestions here.
>
>    

How about adding a new union member to struct kvm_dirty_log:

   __u64 dirty_bitmap_virt;

and deprecate dirty_bitmap.

> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
> index e27b7a9..91c0225 100644
> --- a/virt/kvm/kvm_main.c
> +++ b/virt/kvm/kvm_main.c
> @@ -720,6 +720,11 @@ int kvm_get_dirty_log(struct kvm *kvm,
>
>   	r = -EFAULT;
>   	if (copy_to_user(log->dirty_bitmap, memslot->dirty_bitmap, n))
> +#ifdef __BIG_ENDIAN
> +		/* Did we get a 32 bit pointer? */
> +		if (copy_to_user((void*)((u64)log->dirty_bitmap>>  32),
> +				 memslot->dirty_bitmap, n))
> +#endif
>   		goto out;
>
>   	if (any)
>    


-- 
error compiling committee.c: too many arguments to function


  reply	other threads:[~2009-09-29  9:14 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-29  8:18 [PATCH 26/27] Enable 32bit dirty log pointers on 64bit host Alexander Graf
2009-09-29  9:14 ` Avi Kivity [this message]
2009-09-29  9:17 ` Alexander Graf
2009-09-29 13:25 ` Avi Kivity
2009-09-29 14:08 ` Alexander Graf
2009-09-29 16:29 ` Alexander Graf
2009-09-29 16:42 ` Avi Kivity
2009-09-29 17:09 ` Alexander Graf
2009-09-30 12:04 ` Arnd Bergmann
2009-09-30 13:17 ` Avi Kivity
2009-09-30 13:29 ` Avi Kivity
2009-10-20 10:09 ` Alexander Graf
2009-10-20 13:23 ` Avi Kivity
2009-10-20 13:28 ` Alexander Graf
2009-10-20 13:32 ` Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4AC1D013.9040600@redhat.com \
    --to=avi@redhat.com \
    --cc=kvm-ppc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.