On Thu, Jul 22, 2010 at 08:32:31PM +0800, Hao, Xudong wrote:
> Well, this patch works fine for me.
>
Looks like userspace problem then. Userspace relied on something that
was not guarantied by the kernel (access to read only page forwarded to
userspace as MMOI).
> Gleb Natapov wrote:
> > On Thu, Jul 22, 2010 at 07:11:34PM +0800, Hao, Xudong wrote:
> >> Gleb,
> >> This patch does not work either, qemu stoped @ Starting Seabios.
> >>
> > And this one?
> >
> > diff --git a/hw/device-assignment.c b/hw/device-assignment.c
> > index 2bba22f..b7e7dc0 100644
> > --- a/hw/device-assignment.c
> > +++ b/hw/device-assignment.c
> > @@ -238,9 +238,10 @@ static void
> > assigned_dev_iomem_map_slow(PCIDevice *pci_dev, int region_num,
> > DEBUG("%s", "slow map\n"); if (region_num == PCI_ROM_SLOT)
> > m = cpu_register_io_memory(slow_bar_read, NULL, region);
> > - else
> > + else {
> > m = cpu_register_io_memory(slow_bar_read, slow_bar_write,
> > region); - cpu_register_physical_memory(e_phys, e_size, m);
> > + cpu_register_physical_memory(e_phys, e_size, m);
> > + }
> >
> > /* MSI-X MMIO page */
> > if ((e_size > 0) &&
> > @@ -272,7 +273,8 @@ static void assigned_dev_iomem_map(PCIDevice
> > *pci_dev, int region_num, if (region_num == PCI_ROM_SLOT)
> > flags |= IO_MEM_ROM;
> >
> > - cpu_register_physical_memory(e_phys, e_size,
> > region->memory_index | flags); + if (region_num !=
> > PCI_ROM_SLOT) + cpu_register_physical_memory(e_phys, e_size,
> > region->memory_index | flags);
> >
> > /* deal with MSI-X MMIO page */
> > if (real_region->base_addr <= r_dev->msix_table_addr &&
>
>
>
> Thanks,
> Xudong
--
Gleb.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html