xen/pci: add flag for PCI passthrough being possible
When running as a Xen PV guests passed through PCI devices only have a chance to work if the Xen supplied memory map has some PCI space reserved. Add a flag xen_pv_pci_possible which will be set in early boot in case the memory map has at least one area with the type E820_TYPE_RESERVED. Signed-off-by: Juergen Gross <jgross@suse.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
5d0c230f1d
commit
358cd9afd0
|
@ -44,6 +44,9 @@ struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata;
|
|||
/* Number of pages released from the initial allocation. */
|
||||
unsigned long xen_released_pages;
|
||||
|
||||
/* Memory map would allow PCI passthrough. */
|
||||
bool xen_pv_pci_possible;
|
||||
|
||||
/* E820 map used during setting up memory. */
|
||||
static struct e820_table xen_e820_table __initdata;
|
||||
|
||||
|
@ -814,6 +817,9 @@ char * __init xen_memory_setup(void)
|
|||
chunk_size = size;
|
||||
type = xen_e820_table.entries[i].type;
|
||||
|
||||
if (type == E820_TYPE_RESERVED)
|
||||
xen_pv_pci_possible = true;
|
||||
|
||||
if (type == E820_TYPE_RAM) {
|
||||
if (addr < mem_end) {
|
||||
chunk_size = min(size, mem_end - addr);
|
||||
|
|
|
@ -29,6 +29,12 @@ extern bool xen_pvh;
|
|||
|
||||
extern uint32_t xen_start_flags;
|
||||
|
||||
#ifdef CONFIG_XEN_PV
|
||||
extern bool xen_pv_pci_possible;
|
||||
#else
|
||||
#define xen_pv_pci_possible 0
|
||||
#endif
|
||||
|
||||
#include <xen/interface/hvm/start_info.h>
|
||||
extern struct hvm_start_info pvh_start_info;
|
||||
void xen_prepare_pvh(void);
|
||||
|
|
Loading…
Reference in New Issue