From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34346) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VeMG6-0004k0-IZ for qemu-devel@nongnu.org; Thu, 07 Nov 2013 04:52:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VeMG1-0008D0-IR for qemu-devel@nongnu.org; Thu, 07 Nov 2013 04:52:14 -0500 Message-ID: <527B62C5.3000004@redhat.com> Date: Thu, 07 Nov 2013 10:52:05 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1382921008-12575-1-git-send-email-jcmvbkbc@gmail.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH for 1.7] exec: fix breakpoint_invalidate when pc may not be translated List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Max Filippov Cc: qemu-devel , qemu-stable Il 06/11/2013 19:23, Max Filippov ha scritto: > On Mon, Oct 28, 2013 at 4:43 AM, Max Filippov wrote: >> This fixes qemu abort with the following message: >> >> include/qemu/int128.h:22: int128_get64: Assertion `!a.hi' failed. >> >> which happens due to attempt to invalidate breakpoint by virtual address >> for which get_phys_page_debug couldn't find mapping. >> >> For more details see >> http://lists.nongnu.org/archive/html/qemu-devel/2013-09/msg04582.html > > Ping^2? Reviewed-by: Paolo Bonzini >> Cc: qemu-stable@nongnu.org >> Signed-off-by: Max Filippov >> --- >> exec.c | 6 ++++-- >> 1 file changed, 4 insertions(+), 2 deletions(-) >> >> diff --git a/exec.c b/exec.c >> index 2e31ffc..9150430 100644 >> --- a/exec.c >> +++ b/exec.c >> @@ -409,8 +409,10 @@ static void breakpoint_invalidate(CPUState *cpu, target_ulong pc) >> #else >> static void breakpoint_invalidate(CPUState *cpu, target_ulong pc) >> { >> - tb_invalidate_phys_addr(cpu_get_phys_page_debug(cpu, pc) | >> - (pc & ~TARGET_PAGE_MASK)); >> + hwaddr phys = cpu_get_phys_page_debug(cpu, pc); >> + if (phys != -1) { >> + tb_invalidate_phys_addr(phys | (pc & ~TARGET_PAGE_MASK)); >> + } >> } >> #endif >> #endif /* TARGET_HAS_ICE */ >> -- >> 1.8.1.4 >> > > >