From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arnd Bergmann Date: Fri, 23 Apr 2010 12:46:07 +0000 Subject: Re: [PATCH RFC v2 6/6] KVM: introduce a new API for getting dirty bitmaps Message-Id: <201004231446.07880.arnd@arndb.de> List-Id: References: <20100420195349.dab60b1d.yoshikawa.takuya@oss.ntt.co.jp> <201004231427.30725.arnd@arndb.de> <4BD195B7.3070409@redhat.com> In-Reply-To: <4BD195B7.3070409@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Avi Kivity Cc: Alexander Graf , Fernando Luis =?utf-8?q?V=C3=A1zquez_Cao?= , Takuya Yoshikawa , mtosatti@redhat.com, kvm@vger.kernel.org, kvm-ia64@vger.kernel.org, kvm-ppc@vger.kernel.org On Friday 23 April 2010, Avi Kivity wrote: > On 04/23/2010 03:27 PM, Arnd Bergmann wrote: > > > >> Using a 64-bit integer avoids the problem (though perhaps not sufficient > >> for s390, Arnd?) > >> > > When there is only a __u64 for the address, it will work on s390 as well, > > gcc is smart enough to clear the upper bit on a cast from long to pointer. > > > > Ah, much more convenient than compat_ioctl. I assume it part of the > ABI, not a gccism? I don't think it's part of the ABI, but it's required to guarantee that code like this works: int compare_pointer(void *a, void *b) { unsigned long ai = (unsigned long)a, bi = (unsigned long)b; return ai = bi; /* true if a and b point to the same object */ } We certainly rely on this already. Arnd