2022-12-30 18:08:26

by Martin Kaiser

[permalink] [raw]
Subject: [PATCH 0/4] staging: r8188eu: merge public action functions

Merge the small helper functions that handle public action frames.

Martin Kaiser (4):
staging: r8188eu: merge on_action_public_vendor into its caller
staging: r8188eu: merge on_action_public_default into its only caller
staging: r8188eu: remove intermediate pframe pointer
staging: r8188eu: remove intermediate token variable

drivers/staging/r8188eu/core/rtw_mlme_ext.c | 31 +++++----------------
1 file changed, 7 insertions(+), 24 deletions(-)

--
2.30.2


2022-12-30 18:14:15

by Martin Kaiser

[permalink] [raw]
Subject: [PATCH 4/4] staging: r8188eu: remove intermediate token variable

Remove the token variable in on_action_public and use frame_body[2] as
function parameter. This saves another few lines of code.

Signed-off-by: Martin Kaiser <[email protected]>
---
drivers/staging/r8188eu/core/rtw_mlme_ext.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/staging/r8188eu/core/rtw_mlme_ext.c b/drivers/staging/r8188eu/core/rtw_mlme_ext.c
index 310e60c4b639..dc181e491b34 100644
--- a/drivers/staging/r8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/r8188eu/core/rtw_mlme_ext.c
@@ -3739,15 +3739,13 @@ static void on_action_public(struct adapter *padapter, struct recv_frame *precv_
{
struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)precv_frame->rx_data;
u8 *frame_body = (u8 *)&mgmt->u;
- u8 token;

/* All members of the action enum start with action_code. */
if (mgmt->u.action.u.s1g.action_code == WLAN_PUB_ACTION_VENDOR_SPECIFIC) {
if (!memcmp(frame_body + 2, P2P_OUI, 4))
on_action_public_p2p(precv_frame);
} else {
- token = frame_body[2];
- rtw_action_public_decache(precv_frame, token);
+ rtw_action_public_decache(precv_frame, frame_body[2]);
}
}

--
2.30.2

2022-12-30 18:32:01

by Martin Kaiser

[permalink] [raw]
Subject: [PATCH 1/4] staging: r8188eu: merge on_action_public_vendor into its caller

Apart from declaring variables, on_action_public_vendor is only an if
statement. Merge this function into its only caller. This makes the code a
tiny bit smaller.

Signed-off-by: Martin Kaiser <[email protected]>
---
drivers/staging/r8188eu/core/rtw_mlme_ext.c | 19 +++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/r8188eu/core/rtw_mlme_ext.c b/drivers/staging/r8188eu/core/rtw_mlme_ext.c
index 1b9cf7596a76..cfa65813d3f2 100644
--- a/drivers/staging/r8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/r8188eu/core/rtw_mlme_ext.c
@@ -3735,15 +3735,6 @@ static unsigned int on_action_public_p2p(struct recv_frame *precv_frame)
return _SUCCESS;
}

-static void on_action_public_vendor(struct recv_frame *precv_frame)
-{
- u8 *pframe = precv_frame->rx_data;
- u8 *frame_body = pframe + sizeof(struct ieee80211_hdr_3addr);
-
- if (!memcmp(frame_body + 2, P2P_OUI, 4))
- on_action_public_p2p(precv_frame);
-}
-
static void on_action_public_default(struct recv_frame *precv_frame)
{
u8 *pframe = precv_frame->rx_data;
@@ -3758,12 +3749,16 @@ static void on_action_public_default(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);

/* All members of the action enum start with action_code. */
- if (mgmt->u.action.u.s1g.action_code == WLAN_PUB_ACTION_VENDOR_SPECIFIC)
- on_action_public_vendor(precv_frame);
- else
+ if (mgmt->u.action.u.s1g.action_code == WLAN_PUB_ACTION_VENDOR_SPECIFIC) {
+ if (!memcmp(frame_body + 2, P2P_OUI, 4))
+ on_action_public_p2p(precv_frame);
+ } else {
on_action_public_default(precv_frame);
+ }
}

static void OnAction_p2p(struct adapter *padapter, struct recv_frame *precv_frame)
--
2.30.2

2022-12-30 18:36:44

by Martin Kaiser

[permalink] [raw]
Subject: [PATCH 3/4] staging: r8188eu: remove intermediate pframe pointer

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 <[email protected]>
---
drivers/staging/r8188eu/core/rtw_mlme_ext.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/staging/r8188eu/core/rtw_mlme_ext.c b/drivers/staging/r8188eu/core/rtw_mlme_ext.c
index 0b2f5d6c1279..310e60c4b639 100644
--- a/drivers/staging/r8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/r8188eu/core/rtw_mlme_ext.c
@@ -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. */
--
2.30.2

2022-12-30 18:38:20

by Martin Kaiser

[permalink] [raw]
Subject: [PATCH 2/4] staging: r8188eu: merge on_action_public_default into its only caller

Merge on_action_public_default into on_action_public, which is the only
caller. Yet again, this makes the code a tiny bit smaller.

Signed-off-by: Martin Kaiser <[email protected]>
---
drivers/staging/r8188eu/core/rtw_mlme_ext.c | 15 +++------------
1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/r8188eu/core/rtw_mlme_ext.c b/drivers/staging/r8188eu/core/rtw_mlme_ext.c
index cfa65813d3f2..0b2f5d6c1279 100644
--- a/drivers/staging/r8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/r8188eu/core/rtw_mlme_ext.c
@@ -3735,29 +3735,20 @@ static unsigned int on_action_public_p2p(struct recv_frame *precv_frame)
return _SUCCESS;
}

-static void on_action_public_default(struct recv_frame *precv_frame)
-{
- u8 *pframe = precv_frame->rx_data;
- u8 *frame_body = pframe + sizeof(struct ieee80211_hdr_3addr);
- u8 token;
-
- token = frame_body[2];
-
- rtw_action_public_decache(precv_frame, token);
-}
-
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 token;

/* All members of the action enum start with action_code. */
if (mgmt->u.action.u.s1g.action_code == WLAN_PUB_ACTION_VENDOR_SPECIFIC) {
if (!memcmp(frame_body + 2, P2P_OUI, 4))
on_action_public_p2p(precv_frame);
} else {
- on_action_public_default(precv_frame);
+ token = frame_body[2];
+ rtw_action_public_decache(precv_frame, token);
}
}

--
2.30.2

2022-12-31 09:53:01

by Philipp Hortmann

[permalink] [raw]
Subject: Re: [PATCH 0/4] staging: r8188eu: merge public action functions

On 12/30/22 18:53, Martin Kaiser wrote:
> Merge the small helper functions that handle public action frames.
>
> Martin Kaiser (4):
> staging: r8188eu: merge on_action_public_vendor into its caller
> staging: r8188eu: merge on_action_public_default into its only caller
> staging: r8188eu: remove intermediate pframe pointer
> staging: r8188eu: remove intermediate token variable
>
> drivers/staging/r8188eu/core/rtw_mlme_ext.c | 31 +++++----------------
> 1 file changed, 7 insertions(+), 24 deletions(-)
>


Tested-by: Philipp Hortmann <[email protected]> # Edimax N150