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

Re: [Xen-devel] [PATCH] ns16550: make PCI device hiding uniform



On Tue, Sep 03, 2019 at 03:58:08PM +0200, Jan Beulich wrote:
> The difference between pci_hide_device() and pci_ro_device() is that
> the former only prevents a device from getting assigned to a guest,
> while the latter additionally arranges for Dom0 write attempts to the
> device's config space to be ignored/discarded. Whether we want one or
> the other certainly doesn't depend on whether the device is in our set
> of known devices. All that matters is whether we use a PCI device: Call
> pci_ro_device() in any such case.
> 
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

LGTM, just one question below.

> ---
> Resend with To/Cc corrected; thanks to Andrew for pointing out.
> 
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -763,23 +763,16 @@ static void __init ns16550_init_postirq(
>  #ifdef CONFIG_HAS_PCI
>      if ( uart->bar || uart->ps_bdf_enable )
>      {
> -        if ( !uart->param )
> -            pci_hide_device(0, uart->ps_bdf[0], PCI_DEVFN(uart->ps_bdf[1],
> -                            uart->ps_bdf[2]));
> -        else
> -        {
> -            if ( uart->param->mmio &&
> -                 rangeset_add_range(mmio_ro_ranges,
> -                                    uart->io_base,
> -                                    uart->io_base + uart->io_size - 1) )
> -                printk(XENLOG_INFO "Error while adding MMIO range of device 
> to mmio_ro_ranges\n");
> +        if ( uart->param && uart->param->mmio &&
> +             rangeset_add_range(mmio_ro_ranges, uart->io_base,
> +                                uart->io_base + uart->io_size - 1) )
> +            printk(XENLOG_INFO "Error while adding MMIO range of device to 
> mmio_ro_ranges\n");
>  
> -            if ( pci_ro_device(0, uart->ps_bdf[0],
> -                               PCI_DEVFN(uart->ps_bdf[1], uart->ps_bdf[2])) )
> -                printk(XENLOG_INFO "Could not mark config space of 
> %02x:%02x.%u read-only.\n",
> -                                    uart->ps_bdf[0], uart->ps_bdf[1],
> -                                    uart->ps_bdf[2]);
> -        }
> +        if ( pci_ro_device(0, uart->ps_bdf[0],

Don't you need to gate the call to pci_ro_device with
uart->ps_bdf_enable?

Thanks, Roger.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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