qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paul Brook <paul@codesourcery.com>
To: qemu-devel@nongnu.org
Cc: Blue Swirl <blauwirbel@gmail.com>, Jakub Jermar <jakub@jermar.eu>
Subject: Re: [Qemu-devel] [sparc64] qemu crashes after the "OpenBIOS for Sparc64" banner is printed
Date: Fri, 29 Aug 2008 20:22:46 +0100	[thread overview]
Message-ID: <200808292022.46951.paul@codesourcery.com> (raw)
In-Reply-To: <f43fc5580808291137k2af05ce9i7026876669c00272@mail.gmail.com>

> Surprisingly it was moving of do_interrupt to helper.c that caused the
> bug. Moving it back to op_helper.c allows Sparc64 to boot. I'm still
> trying to understand the real cause of the bug and to find if there is
> some other way of fixing this. This kind of voodoo makes me nervous.

do_interrupt calls change_pstate, which relies on global register state.  
Global register state is only valid when called directly from translated code 
or other code that includes exec.h.

You should never call code in op_helper.c from outside that file (or 
cpu-exec.h). The easy way to enforce this is to put teh declarations for 
functions defined in op_helper.h in exec.h, not helper.h or cpu.h. Failure to 
follow this rule results in bugs like the one you've encountered.

helper.h is included multiple times, so should really just contain DEF_HELPER 
statements.

Paul

  reply	other threads:[~2008-08-29 19:22 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-28 12:55 [Qemu-devel] [sparc64] qemu crashes after the "OpenBIOS for Sparc64" banner is printed Jakub Jermar
2008-08-28 15:57 ` Blue Swirl
2008-08-28 16:08   ` Jakub Jermar
2008-08-28 16:30     ` Blue Swirl
2008-08-28 16:59       ` Jakub Jermar
2008-08-28 17:16         ` Blue Swirl
2008-08-28 19:05           ` Blue Swirl
2008-08-29 18:37             ` Blue Swirl
2008-08-29 19:22               ` Paul Brook [this message]
2008-08-29 19:54                 ` Blue Swirl

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=200808292022.46951.paul@codesourcery.com \
    --to=paul@codesourcery.com \
    --cc=blauwirbel@gmail.com \
    --cc=jakub@jermar.eu \
    --cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).