mirror of https://github.com/proxmox/mirror_qemu
include/hw/xen/xen_common: return error from xen_create_ioreq_server
This is done to prepare for enabling xenpv support for ARM architecture. On ARM it is possible to have a functioning xenpv machine with only the PV backends and no IOREQ server. If the IOREQ server creation fails, continue to the PV backends initialization. Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> Signed-off-by: Vikram Garhwal <vikram.garhwal@amd.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Reviewed-by: Paul Durrant <paul@xen.org>master
parent
f17068c1c7
commit
420927c218
|
@ -463,8 +463,8 @@ static inline void xen_unmap_pcidev(domid_t dom,
|
||||||
PCI_FUNC(pci_dev->devfn));
|
PCI_FUNC(pci_dev->devfn));
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void xen_create_ioreq_server(domid_t dom,
|
static inline int xen_create_ioreq_server(domid_t dom,
|
||||||
ioservid_t *ioservid)
|
ioservid_t *ioservid)
|
||||||
{
|
{
|
||||||
int rc = xendevicemodel_create_ioreq_server(xen_dmod, dom,
|
int rc = xendevicemodel_create_ioreq_server(xen_dmod, dom,
|
||||||
HVM_IOREQSRV_BUFIOREQ_ATOMIC,
|
HVM_IOREQSRV_BUFIOREQ_ATOMIC,
|
||||||
|
@ -472,12 +472,14 @@ static inline void xen_create_ioreq_server(domid_t dom,
|
||||||
|
|
||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
trace_xen_ioreq_server_create(*ioservid);
|
trace_xen_ioreq_server_create(*ioservid);
|
||||||
return;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
*ioservid = 0;
|
*ioservid = 0;
|
||||||
use_default_ioreq_server = true;
|
use_default_ioreq_server = true;
|
||||||
trace_xen_default_ioreq_server();
|
trace_xen_default_ioreq_server();
|
||||||
|
|
||||||
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void xen_destroy_ioreq_server(domid_t dom,
|
static inline void xen_destroy_ioreq_server(domid_t dom,
|
||||||
|
|
Loading…
Reference in New Issue