On 2 September 2013 15:13, Marcel Apfelbaum <marce...@redhat.com> wrote: > +const MemoryRegionOps pci_unassigned_mem_ops = { > + .valid.accepts = pci_unassigned_mem_accepts, > + .endianness = DEVICE_NATIVE_ENDIAN, > +};
This is wrong -- you want reads and writes to result in your PCI-spec-defined behaviour, but if you provide an accepts callback and it returns false then you get "machine dependent behaviour such as a machine check exception". What you want is to provide .read and .write callbacks which behave as the PCI spec mandates. Also this should probably be static, not global, and you should put it in the same patch as the one which actually creates the memory region. -- PMM