staging: wfx: fix access to le32 attribute 'indication_type'
authorJérôme Pouiller <jerome.pouiller@silabs.com>
Tue, 12 May 2020 15:04:07 +0000 (17:04 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 May 2020 11:49:44 +0000 (13:49 +0200)
The attribute indication_type is little-endian. We have to take to the
endianness when we access it.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20200512150414.267198-11-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wfx/hif_rx.c

index 966315edbab8e52318fc1c6c42f6b2aafdac1151..fca9df620ad9bd4ef2bcfdd7c25fd7f7dee2dca6 100644 (file)
@@ -259,8 +259,9 @@ static int hif_generic_indication(struct wfx_dev *wdev,
                                  const struct hif_msg *hif, const void *buf)
 {
        const struct hif_ind_generic *body = buf;
+       int type = le32_to_cpu(body->indication_type);
 
-       switch (body->indication_type) {
+       switch (type) {
        case HIF_GENERIC_INDICATION_TYPE_RAW:
                return 0;
        case HIF_GENERIC_INDICATION_TYPE_STRING:
@@ -278,9 +279,8 @@ static int hif_generic_indication(struct wfx_dev *wdev,
                mutex_unlock(&wdev->rx_stats_lock);
                return 0;
        default:
-               dev_err(wdev->dev,
-                       "generic_indication: unknown indication type: %#.8x\n",
-                       body->indication_type);
+               dev_err(wdev->dev, "generic_indication: unknown indication type: %#.8x\n",
+                       type);
                return -EIO;
        }
 }