qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH master/stable-1.0] pci: fix corrupted pci conf i


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH master/stable-1.0] pci: fix corrupted pci conf index register by unaligned write
Date: Wed, 4 Jan 2012 16:47:22 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Wed, Jan 04, 2012 at 04:28:42PM +0200, Avi Kivity wrote:
> Commit d0ed8076cbdc261 converted the PCI config access to the memory
> API, but also inadvertantly changed it to accept unaligned writes,
> and corrupt the index register in the process.  This causes a regression
> booting NetBSD.
> 
> Fix by ignoring unaligned or non-dword writes.
> 
> https://bugs.launchpad.net/qemu/+bug/897771
> 
> Reported-by: Andreas Gustafsson <address@hidden>
> Signed-off-by: Avi Kivity <address@hidden>

Acked-by: Michael S. Tsirkin <address@hidden>

> ---
> 
>  hw/pci_host.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/hw/pci_host.c b/hw/pci_host.c
> index 44c6c20..8041778 100644
> --- a/hw/pci_host.c
> +++ b/hw/pci_host.c
> @@ -101,6 +101,9 @@ static void pci_host_config_write(void *opaque, 
> target_phys_addr_t addr,
>  
>      PCI_DPRINTF("%s addr " TARGET_FMT_plx " len %d val %"PRIx64"\n",
>                  __func__, addr, len, val);
> +    if (addr != 0 || len != 4) {
> +        return;
> +    }
>      s->config_reg = val;
>  }
>  
> -- 
> 1.7.7.1



reply via email to

[Prev in Thread] Current Thread [Next in Thread]