Replace the deprecated one-element array with a modern flexible array
member in the struct nvsp_1_message_send_receive_buffer_complete.

Use struct_size_t(,,1) instead of sizeof() to maintain the same size.

Compile-tested only.

Link: https://github.com/KSPP/linux/issues/79
Signed-off-by: Thorsten Blum <thorsten.b...@linux.dev>
---
Changes in v2:
- Replace sizeof() with struct_size_t(,,1) to maintain the same size
  after feedback from Roman Kisel (thanks!)
- Link to v1: 
https://lore.kernel.org/r/20250116201635.47870-2-thorsten.b...@linux.dev/
---
 drivers/net/hyperv/hyperv_net.h | 2 +-
 drivers/net/hyperv/netvsc.c     | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
index e690b95b1bbb..234db693cefa 100644
--- a/drivers/net/hyperv/hyperv_net.h
+++ b/drivers/net/hyperv/hyperv_net.h
@@ -464,7 +464,7 @@ struct nvsp_1_message_send_receive_buffer_complete {
         *  LargeOffset                            SmallOffset
         */
 
-       struct nvsp_1_receive_buffer_section sections[1];
+       struct nvsp_1_receive_buffer_section sections[];
 } __packed;
 
 /*
diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
index 9afb08dbc350..d6f5b9ea3109 100644
--- a/drivers/net/hyperv/netvsc.c
+++ b/drivers/net/hyperv/netvsc.c
@@ -866,7 +866,8 @@ static void netvsc_send_completion(struct net_device *ndev,
 
        case NVSP_MSG1_TYPE_SEND_RECV_BUF_COMPLETE:
                if (msglen < sizeof(struct nvsp_message_header) +
-                               sizeof(struct 
nvsp_1_message_send_receive_buffer_complete)) {
+                               struct_size_t(struct 
nvsp_1_message_send_receive_buffer_complete,
+                                             sections, 1)) {
                        netdev_err(ndev, "nvsp_msg1 length too small: %u\n",
                                   msglen);
                        return;
-- 
2.48.0


Reply via email to