mac80211: mesh_plink: use get_unaligned_le16 instead of memcpy
authorBob Copeland <me@bobcopeland.com>
Sat, 28 Jun 2014 20:35:26 +0000 (16:35 -0400)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 26 Aug 2014 09:15:34 +0000 (11:15 +0200)
Use get_unaligned_le16 to access llid/plid.

Signed-off-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/mesh_plink.c

index 8d67c1ebfbda9781508140c4516b84f4eea44358..8f0887fc7128c4e04e0e7b4d5e4f1dd7445a40f5 100644 (file)
@@ -1001,7 +1001,6 @@ mesh_process_plink_frame(struct ieee80211_sub_if_data *sdata,
        enum ieee80211_self_protected_actioncode ftype;
        u32 changed = 0;
        u8 ie_len = elems->peering_len;
-       __le16 _plid, _llid;
        u16 plid, llid = 0;
 
        if (!elems->peering) {
@@ -1036,13 +1035,10 @@ mesh_process_plink_frame(struct ieee80211_sub_if_data *sdata,
        /* Note the lines below are correct, the llid in the frame is the plid
         * from the point of view of this host.
         */
-       memcpy(&_plid, PLINK_GET_LLID(elems->peering), sizeof(__le16));
-       plid = le16_to_cpu(_plid);
+       plid = get_unaligned_le16(PLINK_GET_LLID(elems->peering));
        if (ftype == WLAN_SP_MESH_PEERING_CONFIRM ||
-           (ftype == WLAN_SP_MESH_PEERING_CLOSE && ie_len == 8)) {
-               memcpy(&_llid, PLINK_GET_PLID(elems->peering), sizeof(__le16));
-               llid = le16_to_cpu(_llid);
-       }
+           (ftype == WLAN_SP_MESH_PEERING_CLOSE && ie_len == 8))
+               llid = get_unaligned_le16(PLINK_GET_PLID(elems->peering));
 
        /* WARNING: Only for sta pointer, is dropped & re-acquired */
        rcu_read_lock();