From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L9kdw-0002jz-87 for qemu-devel@nongnu.org; Mon, 08 Dec 2008 13:15:40 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L9kdv-0002jf-IF for qemu-devel@nongnu.org; Mon, 08 Dec 2008 13:15:39 -0500 Received: from [199.232.76.173] (port=38086 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L9kdv-0002jc-Cs for qemu-devel@nongnu.org; Mon, 08 Dec 2008 13:15:39 -0500 Received: from hall.aurel32.net ([88.191.82.174]:42614) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1L9kdv-0003zk-2a for qemu-devel@nongnu.org; Mon, 08 Dec 2008 13:15:39 -0500 Date: Mon, 8 Dec 2008 19:15:35 +0100 From: Aurelien Jarno Subject: Re: [Qemu-devel] [PATCH] linux-user: Safety belt for h2g Message-ID: <20081208181535.GC14780@volta.aurel32.net> References: <1228303789-25653-1-git-send-email-kirill@shutemov.name> <1228303789-25653-2-git-send-email-kirill@shutemov.name> <1228303789-25653-3-git-send-email-kirill@shutemov.name> <1228303789-25653-4-git-send-email-kirill@shutemov.name> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <1228303789-25653-4-git-send-email-kirill@shutemov.name> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: "Kirill A. Shutemov" , Jan Kiszka On Wed, Dec 03, 2008 at 01:29:39PM +0200, Kirill A. Shutemov wrote: > From: Jan Kiszka > > h2g can only work on 64-bit hosts if the provided address is mappable to > the guest range. Neglecting this was already the source for several > bugs. Instrument the macro so that it will trigger earlier in the > future (at least as long as we have this kind of mapping mechanism). > > Signed-off-by: Jan Kiszka > Signed-off-by: Kirill A. Shutemov Applied. I have seen the patch has been modified since Jan Kiszka posted it to the mailing list. Not sure a Signed-off-by still applies in that case. > --- > cpu-all.h | 10 +++++++++- > 1 files changed, 9 insertions(+), 1 deletions(-) > > diff --git a/cpu-all.h b/cpu-all.h > index 73c7b4c..526ace2 100644 > --- a/cpu-all.h > +++ b/cpu-all.h > @@ -621,6 +621,9 @@ static inline void stfq_be_p(void *ptr, float64 v) > /* MMU memory access macros */ > > #if defined(CONFIG_USER_ONLY) > +#include > +#include "qemu-types.h" > + > /* On some host systems the guest address space is reserved on the host. > * This allows the guest address space to be offset to a convenient location. > */ > @@ -629,7 +632,12 @@ static inline void stfq_be_p(void *ptr, float64 v) > > /* All direct uses of g2h and h2g need to go away for usermode softmmu. */ > #define g2h(x) ((void *)((unsigned long)(x) + GUEST_BASE)) > -#define h2g(x) ((target_ulong)((unsigned long)(x) - GUEST_BASE)) > +#define h2g(x) ({ \ > + unsigned long __ret = (unsigned long)(x) - GUEST_BASE; \ > + /* Check if given address fits target address space */ \ > + assert(__ret == (abi_ulong)__ret); \ > + (abi_ulong)__ret; \ > +}) > > #define saddr(x) g2h(x) > #define laddr(x) g2h(x) > -- > 1.6.0.2.GIT > > > > -- .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73 : :' : Debian developer | Electrical Engineer `. `' aurel32@debian.org | aurelien@aurel32.net `- people.debian.org/~aurel32 | www.aurel32.net