ns16550: make PCI device hiding uniform

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@suse.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Julien Grall <julien.grall@arm.com>
This commit is contained in:
Jan Beulich authored and Julien Grall committed 2019-09-29 10:03:56 +01:00
1 parent 7a4e671111
commit d5b7d10cb4
1 file changed
+9 -16
+9 -16
View File
@@ -763,23 +763,16 @@ static void __init ns16550_init_postirq(struct serial_port *port)
#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],
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 ( uart->msi )
{
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.