Re: [PATCH v1 07/12] include/hw/xen/xen_common: return error from xen_create_ioreq_server

2022-10-16 Thread Julien Grall

Hi Vikram,

On 15/10/2022 06:07, Vikram Garhwal wrote:

From: Stefano Stabellini 

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 
---
  include/hw/xen/xen_common.h | 12 +++-
  1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/include/hw/xen/xen_common.h b/include/hw/xen/xen_common.h
index 77ce17d8a4..c2d2f36bde 100644
--- a/include/hw/xen/xen_common.h
+++ b/include/hw/xen/xen_common.h
@@ -467,8 +467,8 @@ static inline void xen_unmap_pcidev(domid_t dom,
  {
  }
  
-static inline void xen_create_ioreq_server(domid_t dom,

-   ioservid_t *ioservid)
+static inline int xen_create_ioreq_server(domid_t dom,
+  ioservid_t *ioservid)
  {


I think there is a return missing here.


  }
  
@@ -600,8 +600,8 @@ static inline void xen_unmap_pcidev(domid_t dom,

PCI_FUNC(pci_dev->devfn));
  }
  
-static inline void xen_create_ioreq_server(domid_t dom,

-   ioservid_t *ioservid)
+static inline int xen_create_ioreq_server(domid_t dom,
+  ioservid_t *ioservid)
  {
  int rc = xendevicemodel_create_ioreq_server(xen_dmod, dom,
  HVM_IOREQSRV_BUFIOREQ_ATOMIC,
@@ -609,12 +609,14 @@ static inline void xen_create_ioreq_server(domid_t dom,
  
  if (rc == 0) {

  trace_xen_ioreq_server_create(*ioservid);
-return;
+return rc;
  }
  
  *ioservid = 0;

  use_default_ioreq_server = true;
  trace_xen_default_ioreq_server();
+
+return rc;
  }
  
  static inline void xen_destroy_ioreq_server(domid_t dom,


Cheers,

--
Julien Grall



[PATCH v1 07/12] include/hw/xen/xen_common: return error from xen_create_ioreq_server

2022-10-14 Thread Vikram Garhwal
From: Stefano Stabellini 

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 
---
 include/hw/xen/xen_common.h | 12 +++-
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/include/hw/xen/xen_common.h b/include/hw/xen/xen_common.h
index 77ce17d8a4..c2d2f36bde 100644
--- a/include/hw/xen/xen_common.h
+++ b/include/hw/xen/xen_common.h
@@ -467,8 +467,8 @@ static inline void xen_unmap_pcidev(domid_t dom,
 {
 }
 
-static inline void xen_create_ioreq_server(domid_t dom,
-   ioservid_t *ioservid)
+static inline int xen_create_ioreq_server(domid_t dom,
+  ioservid_t *ioservid)
 {
 }
 
@@ -600,8 +600,8 @@ static inline void xen_unmap_pcidev(domid_t dom,
   PCI_FUNC(pci_dev->devfn));
 }
 
-static inline void xen_create_ioreq_server(domid_t dom,
-   ioservid_t *ioservid)
+static inline int xen_create_ioreq_server(domid_t dom,
+  ioservid_t *ioservid)
 {
 int rc = xendevicemodel_create_ioreq_server(xen_dmod, dom,
 HVM_IOREQSRV_BUFIOREQ_ATOMIC,
@@ -609,12 +609,14 @@ static inline void xen_create_ioreq_server(domid_t dom,
 
 if (rc == 0) {
 trace_xen_ioreq_server_create(*ioservid);
-return;
+return rc;
 }
 
 *ioservid = 0;
 use_default_ioreq_server = true;
 trace_xen_default_ioreq_server();
+
+return rc;
 }
 
 static inline void xen_destroy_ioreq_server(domid_t dom,
-- 
2.17.0