]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
staging: wilc1000: make use of get_unaligned_le16/le32 to pack data
authorAjay Singh <ajay.kathat@microchip.com>
Thu, 17 Jan 2019 13:21:10 +0000 (13:21 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 18 Jan 2019 09:39:15 +0000 (10:39 +0100)
Make use of get_unaligned_le16/le32 framework api's to pack data.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wilc1000/host_interface.c
drivers/staging/wilc1000/wilc_wlan_cfg.c

index c05c120fafc7b98efad433c9d17f152efaf68220..a71884287fca852fb848d44ab9681c17c6eb067f 100644 (file)
@@ -2154,10 +2154,7 @@ void wilc_network_info_received(struct wilc *wilc, u8 *buffer, u32 length)
        struct host_if_drv *hif_drv;
        struct wilc_vif *vif;
 
-       id = buffer[length - 4];
-       id |= (buffer[length - 3] << 8);
-       id |= (buffer[length - 2] << 16);
-       id |= (buffer[length - 1] << 24);
+       id = get_unaligned_le32(&buffer[length - 4]);
        vif = wilc_get_vif_from_idx(wilc, id);
        if (!vif)
                return;
@@ -2197,10 +2194,7 @@ void wilc_gnrl_async_info_received(struct wilc *wilc, u8 *buffer, u32 length)
 
        mutex_lock(&hif_deinit_lock);
 
-       id = buffer[length - 4];
-       id |= (buffer[length - 3] << 8);
-       id |= (buffer[length - 2] << 16);
-       id |= (buffer[length - 1] << 24);
+       id = get_unaligned_le32(&buffer[length - 4]);
        vif = wilc_get_vif_from_idx(wilc, id);
        if (!vif) {
                mutex_unlock(&hif_deinit_lock);
@@ -2251,10 +2245,7 @@ void wilc_scan_complete_received(struct wilc *wilc, u8 *buffer, u32 length)
        struct host_if_drv *hif_drv;
        struct wilc_vif *vif;
 
-       id = buffer[length - 4];
-       id |= buffer[length - 3] << 8;
-       id |= buffer[length - 2] << 16;
-       id |= buffer[length - 1] << 24;
+       id = get_unaligned_le32(&buffer[length - 4]);
        vif = wilc_get_vif_from_idx(wilc, id);
        if (!vif)
                return;
index 8390766358daedd20af4f7b92d1399442c6a0f17..67e9f93f7eaaafd9420faa4d87d74758071c6002 100644 (file)
@@ -168,7 +168,7 @@ static void wilc_wlan_parse_response_frame(struct wilc *wl, u8 *info, int size)
 
        while (size > 0) {
                i = 0;
-               wid = info[0] | (info[1] << 8);
+               wid = get_unaligned_le16(info);
 
                switch (GET_WID_TYPE(wid)) {
                case WID_CHAR:
@@ -187,12 +187,13 @@ static void wilc_wlan_parse_response_frame(struct wilc *wl, u8 *info, int size)
 
                case WID_SHORT:
                        do {
-                               if (wl->cfg.hw[i].id == WID_NIL)
+                               struct wilc_cfg_hword *hw = &wl->cfg.hw[i];
+
+                               if (hw->id == WID_NIL)
                                        break;
 
-                               if (wl->cfg.hw[i].id == wid) {
-                                       wl->cfg.hw[i].val = (info[4] |
-                                                            (info[5] << 8));
+                               if (hw->id == wid) {
+                                       hw->val = get_unaligned_le16(&info[4]);
                                        break;
                                }
                                i++;
@@ -202,14 +203,13 @@ static void wilc_wlan_parse_response_frame(struct wilc *wl, u8 *info, int size)
 
                case WID_INT:
                        do {
-                               if (wl->cfg.w[i].id == WID_NIL)
+                               struct wilc_cfg_word *w = &wl->cfg.w[i];
+
+                               if (w->id == WID_NIL)
                                        break;
 
-                               if (wl->cfg.w[i].id == wid) {
-                                       wl->cfg.w[i].val = (info[4] |
-                                                           (info[5] << 8) |
-                                                           (info[6] << 16) |
-                                                           (info[7] << 24));
+                               if (w->id == wid) {
+                                       w->val = get_unaligned_le32(&info[4]);
                                        break;
                                }
                                i++;
@@ -244,7 +244,7 @@ static void wilc_wlan_parse_info_frame(struct wilc *wl, u8 *info)
 {
        u32 wid, len;
 
-       wid = info[0] | (info[1] << 8);
+       wid = get_unaligned_le16(info);
 
        len = info[2];
 
@@ -371,8 +371,7 @@ int wilc_wlan_cfg_get_wid_value(struct wilc *wl, u16 wid, u8 *buffer,
                                break;
 
                        if (id == wid) {
-                               u32 size = (wl->cfg.s[i].str[0] |
-                                           (wl->cfg.s[i].str[1] << 8));
+                               u16 size = get_unaligned_le16(wl->cfg.s[i].str);
 
                                if (buffer_size >= size) {
                                        memcpy(buffer, &wl->cfg.s[i].str[2],