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

Re: [Xen-devel] [PATCH] x86/PCI: fix guest_io_read() when pci_cfg_ok() denies access


  • To: Jan Beulich <JBeulich@xxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxx>
  • From: Keir Fraser <keir.xen@xxxxxxxxx>
  • Date: Thu, 21 Jun 2012 17:25:25 +0100
  • Delivery-date: Thu, 21 Jun 2012 16:25:52 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xen.org>
  • Thread-index: Ac1PynZHAyO/PWkWBUWGF1WbS2kaiQ==
  • Thread-topic: [Xen-devel] [PATCH] x86/PCI: fix guest_io_read() when pci_cfg_ok() denies access

On 21/06/2012 13:17, "Jan Beulich" <JBeulich@xxxxxxxx> wrote:

> For a multi-byte aligned read, this so far resulted in 0x00ff to be
> put in the guest's register rather than 0xffff or 0xffffffff, which in
> turn could confuse bus scanning functions (which, when reading vendor
> and/or device IDs, expect to get back all zeroes or all ones).
> 
> As the value gets masked to the read width when merging back into the
> full result, setting the initial value to all ones should not harm any
> or the other cases.
> 
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

Acked-by: Keir Fraser <keir@xxxxxxx>

> --- a/xen/arch/x86/traps.c
> +++ b/xen/arch/x86/traps.c
> @@ -1717,7 +1717,7 @@ static uint32_t guest_io_read(
>      while ( bytes != 0 )
>      {
>          unsigned int size = 1;
> -        uint32_t sub_data = 0xff;
> +        uint32_t sub_data = ~0;
>  
>          if ( (port == 0x42) || (port == 0x43) || (port == 0x61) )
>          {
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.