[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2] xen/public: fix flexible array definitions



Hi Juergen,

On 30/11/2023 09:21, Juergen Gross wrote:
---
V2:
- bump interface version and make change only for new version
   (Jan Beulich)
---
  xen/include/public/io/cameraif.h | 2 +-
  xen/include/public/io/displif.h  | 2 +-
  xen/include/public/io/fsif.h     | 4 ++--
  xen/include/public/io/pvcalls.h  | 2 +-
  xen/include/public/io/ring.h     | 5 +++--
  xen/include/public/io/sndif.h    | 2 +-
  xen/include/public/xen-compat.h  | 2 +-
  xen/include/public/xen.h         | 6 ++++++
  8 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/xen/include/public/io/cameraif.h b/xen/include/public/io/cameraif.h
index 13763abef9..a389443769 100644
--- a/xen/include/public/io/cameraif.h
+++ b/xen/include/public/io/cameraif.h
@@ -763,7 +763,7 @@ struct xencamera_buf_create_req {
   */
  struct xencamera_page_directory {
      grant_ref_t gref_dir_next_page;
-    grant_ref_t gref[1]; /* Variable length */
+    grant_ref_t gref[XENPV_FLEX_ARRAY_DIM];
  };
/*
diff --git a/xen/include/public/io/displif.h b/xen/include/public/io/displif.h
index 73d0cbdf15..132c96fa5c 100644
--- a/xen/include/public/io/displif.h
+++ b/xen/include/public/io/displif.h
@@ -537,7 +537,7 @@ struct xendispl_dbuf_create_req {
struct xendispl_page_directory {
      grant_ref_t gref_dir_next_page;
-    grant_ref_t gref[1]; /* Variable length */
+    grant_ref_t gref[XENPV_FLEX_ARRAY_DIM];
  };
/*
diff --git a/xen/include/public/io/fsif.h b/xen/include/public/io/fsif.h
index ec57850233..dcade1c698 100644
--- a/xen/include/public/io/fsif.h
+++ b/xen/include/public/io/fsif.h
@@ -40,7 +40,7 @@ struct fsif_read_request {
      int32_t pad;
      uint64_t len;
      uint64_t offset;
-    grant_ref_t grefs[1];  /* Variable length */
+    grant_ref_t grefs[XENPV_FLEX_ARRAY_DIM];
  };
struct fsif_write_request {
@@ -48,7 +48,7 @@ struct fsif_write_request {
      int32_t pad;
      uint64_t len;
      uint64_t offset;
-    grant_ref_t grefs[1];  /* Variable length */
+    grant_ref_t grefs[XENPV_FLEX_ARRAY_DIM];
  };
struct fsif_stat_request {
diff --git a/xen/include/public/io/pvcalls.h b/xen/include/public/io/pvcalls.h
index 230b0719e3..af0e9abd13 100644
--- a/xen/include/public/io/pvcalls.h
+++ b/xen/include/public/io/pvcalls.h
@@ -30,7 +30,7 @@ struct pvcalls_data_intf {
      uint8_t pad2[52];
RING_IDX ring_order;
-    grant_ref_t ref[];
+    grant_ref_t ref[XENPV_FLEX_ARRAY_DIM];

I am probably missing something. In the commit message, you suggested that XENPV_FLEX_ARRAY_DIM will use 1 for older interface version for compatibility reason.

Yet, if I am not mistaken, [] is not equivalent to [1]. So aren't you effectively breaking the compatibility?

Cheers,

--
Julien Grall



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.