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

Re: [Xen-devel] [PATCH] x86/PCI: pass correct register value to XSM



>>> On 21.06.12 at 16:20, Daniel De Graaf <dgdegra@xxxxxxxxxxxxx> wrote:
> When using AMD's extension to access the extended PCI config space, only
> the low byte of the register number was being passed to XSM. Include the
> full value.
> 
> Signed-off-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
> ---
>  xen/arch/x86/traps.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
> index 2264583..38ad9e7 100644
> --- a/xen/arch/x86/traps.c
> +++ b/xen/arch/x86/traps.c
> @@ -1691,6 +1691,7 @@ static int pci_cfg_ok(struct domain *d, int write, int 
> size)
>  
>      machine_bdf = (d->arch.pci_cf8 >> 8) & 0xFFFF;
>      start = d->arch.pci_cf8 & 0xFF;
> +    start |= (d->arch.pci_cf8 >> 16) & 0xF00;

You should be doing this only if the functionality is actually
available (AMD only) and enabled (MSR bit). See Linux'es
pci_io_ecs_init() and Xen's handling of Dom0 writes to
MSR_AMD64_NB_CFG.

Jan

>      end = start + size - 1;
>      if (xsm_pci_config_permission(d, machine_bdf, start, end, write))
>          return 0;
> -- 
> 1.7.10.2




_______________________________________________
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®.