staging: wfx: fix access to le32 attribute 'event_id'
authorJérôme Pouiller <jerome.pouiller@silabs.com>
Tue, 12 May 2020 15:04:06 +0000 (17:04 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 May 2020 11:49:44 +0000 (13:49 +0200)
The attribute event_id 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-10-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wfx/hif_rx.c

index 87d5107..966315e 100644 (file)
@@ -158,6 +158,7 @@ static int hif_event_indication(struct wfx_dev *wdev,
 {
        struct wfx_vif *wvif = wdev_to_wvif(wdev, hif->interface);
        const struct hif_ind_event *body = buf;
+       int type = le32_to_cpu(body->event_id);
        int cause;
 
        if (!wvif) {
@@ -165,7 +166,7 @@ static int hif_event_indication(struct wfx_dev *wdev,
                return 0;
        }
 
-       switch (body->event_id) {
+       switch (type) {
        case HIF_EVENT_IND_RCPI_RSSI:
                wfx_event_report_rssi(wvif, body->event_data.rcpi_rssi);
                break;
@@ -187,7 +188,7 @@ static int hif_event_indication(struct wfx_dev *wdev,
                break;
        default:
                dev_warn(wdev->dev, "unhandled event indication: %.2x\n",
-                        body->event_id);
+                        type);
                break;
        }
        return 0;