On 03/18/2012 11:51 AM, Blue Swirl wrote: > On Sun, Mar 18, 2012 at 09:44, Avi Kivity <a...@redhat.com> wrote: > > On 03/18/2012 04:01 AM, Mark Cave-Ayland wrote: > >> Hi Avi/Blue, > >> > >> I've just updated to git master and found that SPARC64 is broken > >> again; a git bisect shows the following commit causes this: > >> > >> > >> commit f3705d53296d78b14f5823472ae2add16a25a0a5 > >> Author: Avi Kivity <a...@redhat.com> > >> Date: Thu Mar 8 16:16:34 2012 +0200 > >> > >> memory: make phys_page_find() return an unadjusted section > >> > >> We'd like to store the section index in the iotlb, so we can't > >> adjust it before returning. Return an unadjusted section and > >> instead introduce section_addr(), which does the adjustment later. > >> > >> Signed-off-by: Avi Kivity <a...@redhat.com> > >> > >> > >> The symptom is that qemu-system-sparc64 segfaults immediately on > >> startup (note this is with an OpenBIOS image built from SVN r1048). > >> I've included a couple of backtraces below: > >> > > > > Please try the attached patch. > > I tried this approach instead, seems to work
IMO, my patch is better. tlb_set_page() should not deal with offsets within a page. If you prefer your approach, I suggest masking the address up front in the beginning of tlb_set_page() instead. > (except Sparc32, Sparc64 > and PPC displays are still not refreshed correctly). Details about this please. -- error compiling committee.c: too many arguments to function