mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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:
1 parent
7a4e671111
commit
d5b7d10cb4
1 file changed
+9
-16
@@ -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 )
|
||||
{
|
||||
|
||||