Am 09.11.2011 02:41, schrieb David Gibson: > On Tue, Nov 08, 2011 at 11:40:20AM +0100, Andreas Färber wrote: >> Hello, >> >> On openSUSE 12.1 RC2 x86_64 host >> >> $ ppc64-softmmu/qemu-system-ppc64 -M pseries -L .../pc-bios >> >> segfaults. Backtrace: >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x0000000000578a7e in spapr_create_phb (spapr=0x1247f80, busname= >> 0x77f1b2 "pci", buid=<optimized out>, mem_win_addr=<optimized out>, >> mem_win_size=536870912, io_win_addr=1101659111424) >> at /home/andreas/QEMU/qemu/hw/spapr_pci.c:306 >> 306 QLIST_INSERT_HEAD(&spapr->phbs, phb, list); >> (gdb) bt >> #0 0x0000000000578a7e in spapr_create_phb (spapr=0x1247f80, busname= >> 0x77f1b2 "pci", buid=<optimized out>, mem_win_addr=<optimized out>, >> mem_win_size=536870912, io_win_addr=1101659111424) >> at /home/andreas/QEMU/qemu/hw/spapr_pci.c:306 >> #1 0x00000000005760f8 in ppc_spapr_init (ram_size=134217728, boot_device= >> 0x7fffffffdd50 "cad", kernel_filename=0x0, kernel_cmdline=0x69d000 "", >> initrd_filename=0x0, cpu_model=0x7ab640 "POWER7") >> at /home/andreas/QEMU/qemu/hw/spapr.c:507 >> #2 0x000000000040a4a9 in main (argc=<optimized out>, argv=<optimized out>, >> envp=<optimized out>) at /home/andreas/QEMU/qemu/vl.c:3340 >> >> I'd expect seeing SLOF boot. > > That'll be due to the missing initialization of the sPAPREnvironment > structure, and the phbs_list in particular. I sent a fix for it, but > I'm wondering if something went wrong with the mail, because no-one > replied and now I can't seem to find it in the qemu-devel archives.
Thanks. No, I remember reading it now. Just expected all such bug fixes for 1.0 to be in rc1 already. Unfortunate timing for the big Test Day. Andreas > > From cbcfb3b04ec8306697509a48dada8fed07dcdc28 Mon Sep 17 00:00:00 2001 > From: David Gibson <da...@gibson.dropbear.id.au> > Date: Wed, 2 Nov 2011 12:20:25 +1100 > Subject: [PATCH] pseries: Fix initialization of sPAPREnvironment structure > > Since we added PCI support to the pseries machine, we include a qlist of > PCI host bridges in the sPAPREnvironment structure. However this list > was never properly initialized it. Somehow we got away with this until > some other recent change broke it, and we now segfault immediately on > startup. > > This patch adds the required QLIST_INIT(), and while we're at it makes sure > we initialize the rest of the sPAPREnvironment structure to 0, to avoid > future nasty surprises. > > Signed-off-by: David Gibson <da...@gibson.dropbear.id.au> > --- > hw/spapr.c | 4 +++- > 1 files changed, 3 insertions(+), 1 deletions(-) > > diff --git a/hw/spapr.c b/hw/spapr.c > index bdaa938..40cfc9b 100644 > --- a/hw/spapr.c > +++ b/hw/spapr.c > @@ -407,7 +407,9 @@ static void ppc_spapr_init(ram_addr_t ram_size, > long pteg_shift = 17; > char *filename; > > - spapr = g_malloc(sizeof(*spapr)); > + spapr = g_malloc0(sizeof(*spapr)); > + QLIST_INIT(&spapr->phbs); > + > cpu_ppc_hypercall = emulate_spapr_hypercall; > > /* Allocate RMA if necessary */ -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg