3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Mauro Carvalho Chehab <mche...@s-opensource.com>

[ Upstream commit e1b7f11b37def5f3021c06e8c2b4953e099357aa ]

Those are all false-positives that appear with smatch when building for
arm:

  drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:67:35: warning: cast to restricted 
__le16
  drivers/media/common/siano/smsendian.c:67:35: warning: cast to restricted 
__le16
  drivers/media/common/siano/smsendian.c:67:35: warning: cast to restricted 
__le16
  drivers/media/common/siano/smsendian.c:67:35: warning: cast to restricted 
__le16
  drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted 
__le32
  drivers/media/common/siano/smsendian.c:98:26: warning: cast to restricted 
__le16
  drivers/media/common/siano/smsendian.c:98:26: warning: cast to restricted 
__le16
  drivers/media/common/siano/smsendian.c:98:26: warning: cast to restricted 
__le16
  drivers/media/common/siano/smsendian.c:98:26: warning: cast to restricted 
__le16
  drivers/media/common/siano/smsendian.c:99:28: warning: cast to restricted 
__le16
  drivers/media/common/siano/smsendian.c:99:28: warning: cast to restricted 
__le16
  drivers/media/common/siano/smsendian.c:99:28: warning: cast to restricted 
__le16
  drivers/media/common/siano/smsendian.c:99:28: warning: cast to restricted 
__le16
  drivers/media/common/siano/smsendian.c:100:27: warning: cast to restricted 
__le16
  drivers/media/common/siano/smsendian.c:100:27: warning: cast to restricted 
__le16
  drivers/media/common/siano/smsendian.c:100:27: warning: cast to restricted 
__le16
  drivers/media/common/siano/smsendian.c:100:27: warning: cast to restricted 
__le16

Get rid of them by adding explicit forced casts.

Signed-off-by: Mauro Carvalho Chehab <mche...@s-opensource.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+sams...@kernel.org>
Signed-off-by: Sasha Levin <alexander.le...@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
 drivers/media/common/siano/smsendian.c |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

--- a/drivers/media/common/siano/smsendian.c
+++ b/drivers/media/common/siano/smsendian.c
@@ -35,7 +35,7 @@ void smsendian_handle_tx_message(void *b
        switch (msg->x_msg_header.msg_type) {
        case MSG_SMS_DATA_DOWNLOAD_REQ:
        {
-               msg->msg_data[0] = le32_to_cpu(msg->msg_data[0]);
+               msg->msg_data[0] = le32_to_cpu((__force 
__le32)(msg->msg_data[0]));
                break;
        }
 
@@ -44,7 +44,7 @@ void smsendian_handle_tx_message(void *b
                                sizeof(struct sms_msg_hdr))/4;
 
                for (i = 0; i < msg_words; i++)
-                       msg->msg_data[i] = le32_to_cpu(msg->msg_data[i]);
+                       msg->msg_data[i] = le32_to_cpu((__force 
__le32)msg->msg_data[i]);
 
                break;
        }
@@ -64,7 +64,7 @@ void smsendian_handle_rx_message(void *b
        {
                struct sms_version_res *ver =
                        (struct sms_version_res *) msg;
-               ver->chip_model = le16_to_cpu(ver->chip_model);
+               ver->chip_model = le16_to_cpu((__force __le16)ver->chip_model);
                break;
        }
 
@@ -81,7 +81,7 @@ void smsendian_handle_rx_message(void *b
                                sizeof(struct sms_msg_hdr))/4;
 
                for (i = 0; i < msg_words; i++)
-                       msg->msg_data[i] = le32_to_cpu(msg->msg_data[i]);
+                       msg->msg_data[i] = le32_to_cpu((__force 
__le32)msg->msg_data[i]);
 
                break;
        }
@@ -95,9 +95,9 @@ void smsendian_handle_message_header(voi
 #ifdef __BIG_ENDIAN
        struct sms_msg_hdr *phdr = (struct sms_msg_hdr *)msg;
 
-       phdr->msg_type = le16_to_cpu(phdr->msg_type);
-       phdr->msg_length = le16_to_cpu(phdr->msg_length);
-       phdr->msg_flags = le16_to_cpu(phdr->msg_flags);
+       phdr->msg_type = le16_to_cpu((__force __le16)phdr->msg_type);
+       phdr->msg_length = le16_to_cpu((__force __le16)phdr->msg_length);
+       phdr->msg_flags = le16_to_cpu((__force __le16)phdr->msg_flags);
 #endif /* __BIG_ENDIAN */
 }
 EXPORT_SYMBOL_GPL(smsendian_handle_message_header);


Reply via email to