staging: r8188eu: remove intermediate pframe pointer
authorMartin Kaiser <martin@kaiser.cx>
Fri, 30 Dec 2022 17:53:25 +0000 (18:53 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Jan 2023 18:31:11 +0000 (19:31 +0100)
The pframe pointer in on_action_public is used only in the definition of
frame_body, which points to the payload of an incoming action frame.

We can use mgmt to locate the action payload and remove the pframe
pointer.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Tested-by: Philipp Hortmann <philipp.g.hortmann@gmail.com> # Edimax N150
Link: https://lore.kernel.org/r/20221230175326.90617-4-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_mlme_ext.c

index 0b2f5d6..310e60c 100644 (file)
@@ -3738,8 +3738,7 @@ static unsigned int on_action_public_p2p(struct recv_frame *precv_frame)
 static void on_action_public(struct adapter *padapter, struct recv_frame *precv_frame)
 {
        struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)precv_frame->rx_data;
-       u8 *pframe = precv_frame->rx_data;
-       u8 *frame_body = pframe + sizeof(struct ieee80211_hdr_3addr);
+       u8 *frame_body = (u8 *)&mgmt->u;
        u8 token;
 
        /* All members of the action enum start with action_code. */