On Wed, Oct 24, 2012 at 09:15:32AM +1000, Richard Henderson wrote:
> qemu-system-sparc64: /home/rth/work/qemu/qemu/memory.c:1022: 
> memory_region_destroy: Assertion `memory_region_transaction_depth == 0' 
> failed.
> 
> Program received signal SIGABRT, Aborted.
> 0x00007ffff5234925 in raise () from /lib64/libc.so.6
> (gdb) where
> #0  0x00007ffff5234925 in raise () from /lib64/libc.so.6
> #1  0x00007ffff52360d8 in abort () from /lib64/libc.so.6
> #2  0x00007ffff522d6a2 in __assert_fail_base () from /lib64/libc.so.6
> #3  0x00007ffff522d752 in __assert_fail () from /lib64/libc.so.6
> #4  0x000055555576ebe4 in memory_region_destroy (mr=0x555556a76f60)
>     at /home/rth/work/qemu/qemu/memory.c:1022
> #5  0x0000555555674729 in pci_bridge_cleanup_alias (
>     parent_space=<optimized out>, alias=0x555556a76f60)
>     at /home/rth/work/qemu/qemu/hw/pci_bridge.c:158
> #6  pci_bridge_region_cleanup (br=0x555556a75d30)
>     at /home/rth/work/qemu/qemu/hw/pci_bridge.c:190
> #7  0x0000555555674ccb in pci_bridge_update_mappings (br=0x555556a75d30)
>     at /home/rth/work/qemu/qemu/hw/pci_bridge.c:203
> #8  pci_bridge_write_config (d=0x555556a75d30, address=<optimized out>, 
>     val=<optimized out>, len=<optimized out>)
>     at /home/rth/work/qemu/qemu/hw/pci_bridge.c:226
> #9  0x000055555576b072 in access_with_adjusted_size (addr=addr@entry=2052, 
>     value=value@entry=0x7fffedaee890, size=size@entry=2, 
>     access_size_min=<optimized out>, access_size_max=<optimized out>, 
>     access=access@entry=0x55555576b690 <memory_region_write_accessor>, 
>     opaque=opaque@entry=0x555556a65a38)
>     at /home/rth/work/qemu/qemu/memory.c:363
> #10 0x0000555555770183 in memory_region_dispatch_write (size=2, data=768, 
> addr=
>     2052, mr=0x555556a65a38) at /home/rth/work/qemu/qemu/memory.c:914
> #11 io_mem_write (mr=0x555556a65a38, addr=2052, val=<optimized out>, size=2)
>     at /home/rth/work/qemu/qemu/memory.c:1570
> #12 0x00007ffff011cd3e in code_gen_buffer ()
> 
> This can be seen with the distributed OpenBIOS, i.e. no special options 
> needed:
> 
>   ./sparc64-softmmu/qemu-system-sparc64
> 

mips is also broken but by commit 1c380f9460522f32c8dd2577b2a53d518ec91c6d:

| [    0.436000] PCI: Enabling device 0000:00:0a.1 (0000 -> 0001)
| Segmentation fault (core dumped)

With gdb:

| Program terminated with signal 11, Segmentation fault.
| #0  phys_page_set_level (lp=0x7f4e12862db0, lp@entry=0x7f4e12851cf0, 
index=index@entry=0x7f4e012af480, nb=nb@entry=0x7f4e012af488, 
leaf=leaf@entry=45, level=level@entry=0) at /home/aurel32/qemu/exec.c:440
| 440                 lp->is_leaf = true;
| (gdb) bt
| #0  phys_page_set_level (lp=0x7f4e12862db0, lp@entry=0x7f4e12851cf0, 
index=index@entry=0x7f4e012af480, nb=nb@entry=0x7f4e012af488, 
leaf=leaf@entry=45, level=level@entry=0) at /home/aurel32/qemu/exec.c:440
| #1  0x00007f4e10f33a10 in phys_page_set_level (lp=0x7f4e12851cf0, 
lp@entry=0x7f4e12851470, index=index@entry=0x7f4e012af480, 
nb=nb@entry=0x7f4e012af488, leaf=leaf@entry=45, level=level@entry=1)
|     at /home/aurel32/qemu/exec.c:445
| #2  0x00007f4e10f33a10 in phys_page_set_level (lp=0x7f4e12851470, 
lp@entry=0x7f4e124ffb50, index=index@entry=0x7f4e012af480, 
nb=nb@entry=0x7f4e012af488, leaf=45, level=level@entry=2)
|     at /home/aurel32/qemu/exec.c:445
| #3  0x00007f4e10f3477f in phys_page_set (leaf=<optimized out>, nb=16, 
index=65696, d=0x7f4e124ffb50) at /home/aurel32/qemu/exec.c:458
| #4  register_multipage (section=0x7f4e012af490, d=0x7f4e124ffb50) at 
/home/aurel32/qemu/exec.c:2263
| #5  mem_add (listener=0x7f4e124ffb58, section=<optimized out>) at 
/home/aurel32/qemu/exec.c:2289
| #6  0x00007f4e10f69a3c in address_space_update_topology_pass 
(as=as@entry=0x7f4e126201c8, adding=adding@entry=true, old_view=..., 
new_view=...) at /home/aurel32/qemu/memory.c:710
| #7  0x00007f4e10f6a458 in address_space_update_topology (as=0x7f4e126201c8) 
at /home/aurel32/qemu/memory.c:725
| #8  memory_region_transaction_commit () at /home/aurel32/qemu/memory.c:748
| #9  0x00007f4e10e5eeff in pci_default_write_config (d=0x7f4e1261ffb0, addr=4, 
val=0, l=4) at hw/pci.c:1075
| #10 0x00007f4e10f67df2 in access_with_adjusted_size (addr=addr@entry=3324, 
value=value@entry=0x7f4e012af8a0, size=size@entry=4, access_size_min=<optimized 
out>, access_size_max=<optimized out>,
|     access=access@entry=0x7f4e10f68410 <memory_region_write_accessor>, 
opaque=opaque@entry=0x7f4e124f2ba8) at /home/aurel32/qemu/memory.c:363
| #11 0x00007f4e10f6cda3 in memory_region_dispatch_write (size=4, 
data=41943045, addr=3324, mr=0x7f4e124f2ba8) at /home/aurel32/qemu/memory.c:914
| #12 io_mem_write (mr=0x7f4e124f2ba8, addr=3324, val=<optimized out>, size=4) 
at /home/aurel32/qemu/memory.c:1567
| #13 0x00000000415a4be0 in code_gen_buffer ()
| #14 0x00007f4e10f2e811 in cpu_mips_exec (env=0x7f4e12840ed0, 
env@entry=0x7f4e124d98c8) at /home/aurel32/qemu/cpu-exec.c:601
| #15 0x00007f4e10f2fbc3 in tcg_cpu_exec (env=0x7f4e124d98c8) at 
/home/aurel32/qemu/cpus.c:1109
| #16 tcg_exec_all () at /home/aurel32/qemu/cpus.c:1141
| #17 qemu_tcg_cpu_thread_fn (arg=<optimized out>) at 
/home/aurel32/qemu/cpus.c:836
| #18 0x00007f4e0c2a3b50 in start_thread (arg=<optimized out>) at 
pthread_create.c:304
| #19 0x00007f4e0bfee70d in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
| #20 0x0000000000000000 in ?? ()



-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
aurel...@aurel32.net                 http://www.aurel32.net

Reply via email to