This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: siano: Refactor struct sms_msg_data
Author:  Ricardo Ribalda <riba...@chromium.org>
Date:    Mon May 27 21:08:56 2024 +0000

Replace a single element array with a single element field.

The endianness conversion code seems to support multiple elements. To
avoid changing behavior a pointer to the single element has been used.

This is safer than moving to a flex array, because in that case the
structure size changes.

This fixes the following cocci warning:
drivers/media/common/siano/smscoreapi.h:619:5-13: WARNING use flexible-array 
member instead 
(https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)

Signed-off-by: Ricardo Ribalda <riba...@chromium.org>
Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>

 drivers/media/common/siano/smscoreapi.c  | 10 +++++-----
 drivers/media/common/siano/smscoreapi.h  |  2 +-
 drivers/media/common/siano/smsdvb-main.c |  4 ++--
 drivers/media/common/siano/smsendian.c   |  8 +++++---
 4 files changed, 13 insertions(+), 11 deletions(-)

---

diff --git a/drivers/media/common/siano/smscoreapi.c 
b/drivers/media/common/siano/smscoreapi.c
index 7ebcb10126c9..b6f1eb5dbbdf 100644
--- a/drivers/media/common/siano/smscoreapi.c
+++ b/drivers/media/common/siano/smscoreapi.c
@@ -839,7 +839,7 @@ static int smscore_configure_board(struct smscore_device_t 
*coredev)
                mtu_msg.x_msg_header.msg_flags = 0;
                mtu_msg.x_msg_header.msg_type = MSG_SMS_SET_MAX_TX_MSG_LEN_REQ;
                mtu_msg.x_msg_header.msg_length = sizeof(mtu_msg);
-               mtu_msg.msg_data[0] = board->mtu;
+               mtu_msg.msg_data = board->mtu;
 
                coredev->sendrequest_handler(coredev->context, &mtu_msg,
                                             sizeof(mtu_msg));
@@ -852,7 +852,7 @@ static int smscore_configure_board(struct smscore_device_t 
*coredev)
                SMS_INIT_MSG(&crys_msg.x_msg_header,
                                MSG_SMS_NEW_CRYSTAL_REQ,
                                sizeof(crys_msg));
-               crys_msg.msg_data[0] = board->crystal;
+               crys_msg.msg_data = board->crystal;
 
                coredev->sendrequest_handler(coredev->context, &crys_msg,
                                             sizeof(crys_msg));
@@ -1306,7 +1306,7 @@ static int smscore_init_device(struct smscore_device_t 
*coredev, int mode)
        msg = (struct sms_msg_data *)SMS_ALIGN_ADDRESS(buffer);
        SMS_INIT_MSG(&msg->x_msg_header, MSG_SMS_INIT_DEVICE_REQ,
                        sizeof(struct sms_msg_data));
-       msg->msg_data[0] = mode;
+       msg->msg_data = mode;
 
        rc = smscore_sendrequest_and_wait(coredev, msg,
                        msg->x_msg_header. msg_length,
@@ -1394,7 +1394,7 @@ int smscore_set_device_mode(struct smscore_device_t 
*coredev, int mode)
 
                        SMS_INIT_MSG(&msg->x_msg_header, 
MSG_SMS_INIT_DEVICE_REQ,
                                     sizeof(struct sms_msg_data));
-                       msg->msg_data[0] = mode;
+                       msg->msg_data = mode;
 
                        rc = smscore_sendrequest_and_wait(
                                coredev, msg, msg->x_msg_header.msg_length,
@@ -1554,7 +1554,7 @@ void smscore_onresponse(struct smscore_device_t *coredev,
                        struct sms_msg_data *validity = (struct sms_msg_data *) 
phdr;
 
                        pr_debug("MSG_SMS_DATA_VALIDITY_RES, checksum = 0x%x\n",
-                               validity->msg_data[0]);
+                               validity->msg_data);
                        complete(&coredev->data_validity_done);
                        break;
                }
diff --git a/drivers/media/common/siano/smscoreapi.h 
b/drivers/media/common/siano/smscoreapi.h
index f8789ee0d554..46dc74ac9318 100644
--- a/drivers/media/common/siano/smscoreapi.h
+++ b/drivers/media/common/siano/smscoreapi.h
@@ -616,7 +616,7 @@ struct sms_msg_hdr {
 
 struct sms_msg_data {
        struct sms_msg_hdr x_msg_header;
-       u32 msg_data[1];
+       u32 msg_data;
 };
 
 struct sms_msg_data2 {
diff --git a/drivers/media/common/siano/smsdvb-main.c 
b/drivers/media/common/siano/smsdvb-main.c
index d893a0e4672b..44d8fe8b220e 100644
--- a/drivers/media/common/siano/smsdvb-main.c
+++ b/drivers/media/common/siano/smsdvb-main.c
@@ -689,7 +689,7 @@ static int smsdvb_start_feed(struct dvb_demux_feed *feed)
        pid_msg.x_msg_header.msg_flags = 0;
        pid_msg.x_msg_header.msg_type  = MSG_SMS_ADD_PID_FILTER_REQ;
        pid_msg.x_msg_header.msg_length = sizeof(pid_msg);
-       pid_msg.msg_data[0] = feed->pid;
+       pid_msg.msg_data = feed->pid;
 
        return smsclient_sendrequest(client->smsclient,
                                     &pid_msg, sizeof(pid_msg));
@@ -711,7 +711,7 @@ static int smsdvb_stop_feed(struct dvb_demux_feed *feed)
        pid_msg.x_msg_header.msg_flags = 0;
        pid_msg.x_msg_header.msg_type  = MSG_SMS_REMOVE_PID_FILTER_REQ;
        pid_msg.x_msg_header.msg_length = sizeof(pid_msg);
-       pid_msg.msg_data[0] = feed->pid;
+       pid_msg.msg_data = feed->pid;
 
        return smsclient_sendrequest(client->smsclient,
                                     &pid_msg, sizeof(pid_msg));
diff --git a/drivers/media/common/siano/smsendian.c 
b/drivers/media/common/siano/smsendian.c
index a3573814919b..b957970c7d97 100644
--- a/drivers/media/common/siano/smsendian.c
+++ b/drivers/media/common/siano/smsendian.c
@@ -20,11 +20,12 @@ void smsendian_handle_tx_message(void *buffer)
        struct sms_msg_data *msg = buffer;
        int i;
        int msg_words;
+       u32 *msg_data = &msg->msg_data;
 
        switch (msg->x_msg_header.msg_type) {
        case MSG_SMS_DATA_DOWNLOAD_REQ:
        {
-               msg->msg_data[0] = le32_to_cpu((__force 
__le32)(msg->msg_data[0]));
+               msg->msg_data = le32_to_cpu((__force __le32)(msg->msg_data));
                break;
        }
 
@@ -33,7 +34,7 @@ void smsendian_handle_tx_message(void *buffer)
                                sizeof(struct sms_msg_hdr))/4;
 
                for (i = 0; i < msg_words; i++)
-                       msg->msg_data[i] = le32_to_cpu((__force 
__le32)msg->msg_data[i]);
+                       msg_data[i] = le32_to_cpu((__force __le32)msg_data[i]);
 
                break;
        }
@@ -66,11 +67,12 @@ void smsendian_handle_rx_message(void *buffer)
 
        default:
        {
+               u32 *msg_data = &msg->msg_data;
                msg_words = (msg->x_msg_header.msg_length -
                                sizeof(struct sms_msg_hdr))/4;
 
                for (i = 0; i < msg_words; i++)
-                       msg->msg_data[i] = le32_to_cpu((__force 
__le32)msg->msg_data[i]);
+                       msg_data[i] = le32_to_cpu((__force __le32)msg_data[i]);
 
                break;
        }

Reply via email to