All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] staging: r8188eu: clean up ap2sta_data_frame
@ 2022-07-04 20:16 Martin Kaiser
  2022-07-04 20:16 ` [PATCH 1/6] staging: r8188eu: set bssid only once Martin Kaiser
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Martin Kaiser @ 2022-07-04 20:16 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Larry Finger, Phillip Potter, Michael Straube, Pavel Skripkin,
	linux-staging, linux-kernel, Martin Kaiser

Start cleaning up ap2sta_data_frame. Remove duplicate assignments, use an
ieee80211 helper in one place.

Martin Kaiser (6):
  staging: r8188eu: set bssid only once
  staging: r8188eu: don't set pattrib->dst again
  staging: r8188eu: don't set pattrib->ra again
  staging: r8188eu: don't set pattrib->ta again
  staging: r8188eu: remove a misleading comment
  staging: r8188eu: use ieee80211 helper to check for nullfunc frame

 drivers/staging/r8188eu/core/rtw_recv.c | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

-- 
2.30.2


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/6] staging: r8188eu: set bssid only once
  2022-07-04 20:16 [PATCH 0/6] staging: r8188eu: clean up ap2sta_data_frame Martin Kaiser
@ 2022-07-04 20:16 ` Martin Kaiser
  2022-07-04 20:16 ` [PATCH 2/6] staging: r8188eu: don't set pattrib->dst again Martin Kaiser
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Martin Kaiser @ 2022-07-04 20:16 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Larry Finger, Phillip Potter, Michael Straube, Pavel Skripkin,
	linux-staging, linux-kernel, Martin Kaiser

In function ap2sta_data_frame, for WIFI_MP_STATE && _FW_LINKED, the code
sets pattrib->bssid twice. Remove the first one of these assignments.
Remove an empty comment before the second assignment.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
---
 drivers/staging/r8188eu/core/rtw_recv.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r8188eu/core/rtw_recv.c
index 020bc212532f..9c63319a7d48 100644
--- a/drivers/staging/r8188eu/core/rtw_recv.c
+++ b/drivers/staging/r8188eu/core/rtw_recv.c
@@ -706,11 +706,9 @@ static int ap2sta_data_frame(
 		   check_fwstate(pmlmepriv, _FW_LINKED)) {
 		memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN);
 		memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN);
-		memcpy(pattrib->bssid, GetAddr3Ptr(ptr), ETH_ALEN);
 		memcpy(pattrib->ra, pattrib->dst, ETH_ALEN);
 		memcpy(pattrib->ta, pattrib->src, ETH_ALEN);
 
-		/*  */
 		memcpy(pattrib->bssid,  mybssid, ETH_ALEN);
 
 		*psta = rtw_get_stainfo(pstapriv, pattrib->bssid); /*  get sta_info */
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/6] staging: r8188eu: don't set pattrib->dst again
  2022-07-04 20:16 [PATCH 0/6] staging: r8188eu: clean up ap2sta_data_frame Martin Kaiser
  2022-07-04 20:16 ` [PATCH 1/6] staging: r8188eu: set bssid only once Martin Kaiser
@ 2022-07-04 20:16 ` Martin Kaiser
  2022-07-04 20:16 ` [PATCH 3/6] staging: r8188eu: don't set pattrib->ra again Martin Kaiser
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Martin Kaiser @ 2022-07-04 20:16 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Larry Finger, Phillip Potter, Michael Straube, Pavel Skripkin,
	linux-staging, linux-kernel, Martin Kaiser

Do not set pattrib->dst again in ap2sta_data_frame. This function is
called by validate_recv_data_frame when the packet's ToDS==0 and
FromDS==1.

In this case, validate_recv_data_frame has already set pattrib->dst
to addr1.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
---
 drivers/staging/r8188eu/core/rtw_recv.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r8188eu/core/rtw_recv.c
index 9c63319a7d48..ea81501b3286 100644
--- a/drivers/staging/r8188eu/core/rtw_recv.c
+++ b/drivers/staging/r8188eu/core/rtw_recv.c
@@ -704,7 +704,6 @@ static int ap2sta_data_frame(
 		}
 	} else if (check_fwstate(pmlmepriv, WIFI_MP_STATE) &&
 		   check_fwstate(pmlmepriv, _FW_LINKED)) {
-		memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN);
 		memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN);
 		memcpy(pattrib->ra, pattrib->dst, ETH_ALEN);
 		memcpy(pattrib->ta, pattrib->src, ETH_ALEN);
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/6] staging: r8188eu: don't set pattrib->ra again
  2022-07-04 20:16 [PATCH 0/6] staging: r8188eu: clean up ap2sta_data_frame Martin Kaiser
  2022-07-04 20:16 ` [PATCH 1/6] staging: r8188eu: set bssid only once Martin Kaiser
  2022-07-04 20:16 ` [PATCH 2/6] staging: r8188eu: don't set pattrib->dst again Martin Kaiser
@ 2022-07-04 20:16 ` Martin Kaiser
  2022-07-04 20:16 ` [PATCH 4/6] staging: r8188eu: don't set pattrib->ta again Martin Kaiser
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Martin Kaiser @ 2022-07-04 20:16 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Larry Finger, Phillip Potter, Michael Straube, Pavel Skripkin,
	linux-staging, linux-kernel, Martin Kaiser

Do not set pattrib->ra again in ap2sta_data_frame. This function is
called by validate_recv_data_frame when the packet's ToDS==0 and
FromDS==1.

validate_recv_data_frame has already set pattrib->ra to addr1. This is in
line with the table in ieee80211.h.

ap2sta_data_frame sets pattrib->ra to pattrib->dst. For ToDS==0, FromDS==1,
dst is addr1, i.e. ap2sta_data_frame sets the same value again that was
already set by validate_recv_data_frame.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
---
 drivers/staging/r8188eu/core/rtw_recv.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r8188eu/core/rtw_recv.c
index ea81501b3286..3619b1ab0267 100644
--- a/drivers/staging/r8188eu/core/rtw_recv.c
+++ b/drivers/staging/r8188eu/core/rtw_recv.c
@@ -705,7 +705,6 @@ static int ap2sta_data_frame(
 	} else if (check_fwstate(pmlmepriv, WIFI_MP_STATE) &&
 		   check_fwstate(pmlmepriv, _FW_LINKED)) {
 		memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN);
-		memcpy(pattrib->ra, pattrib->dst, ETH_ALEN);
 		memcpy(pattrib->ta, pattrib->src, ETH_ALEN);
 
 		memcpy(pattrib->bssid,  mybssid, ETH_ALEN);
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/6] staging: r8188eu: don't set pattrib->ta again
  2022-07-04 20:16 [PATCH 0/6] staging: r8188eu: clean up ap2sta_data_frame Martin Kaiser
                   ` (2 preceding siblings ...)
  2022-07-04 20:16 ` [PATCH 3/6] staging: r8188eu: don't set pattrib->ra again Martin Kaiser
@ 2022-07-04 20:16 ` Martin Kaiser
  2022-07-04 20:16 ` [PATCH 5/6] staging: r8188eu: remove a misleading comment Martin Kaiser
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Martin Kaiser @ 2022-07-04 20:16 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Larry Finger, Phillip Potter, Michael Straube, Pavel Skripkin,
	linux-staging, linux-kernel, Martin Kaiser

The table in ieee80211.h shows that TA is addr2. This value was already
set by validate_recv_data_frame, we don't have to set it again in
ap2sta_data_frame.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
---
 drivers/staging/r8188eu/core/rtw_recv.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r8188eu/core/rtw_recv.c
index 3619b1ab0267..a761d88d4711 100644
--- a/drivers/staging/r8188eu/core/rtw_recv.c
+++ b/drivers/staging/r8188eu/core/rtw_recv.c
@@ -705,7 +705,6 @@ static int ap2sta_data_frame(
 	} else if (check_fwstate(pmlmepriv, WIFI_MP_STATE) &&
 		   check_fwstate(pmlmepriv, _FW_LINKED)) {
 		memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN);
-		memcpy(pattrib->ta, pattrib->src, ETH_ALEN);
 
 		memcpy(pattrib->bssid,  mybssid, ETH_ALEN);
 
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 5/6] staging: r8188eu: remove a misleading comment
  2022-07-04 20:16 [PATCH 0/6] staging: r8188eu: clean up ap2sta_data_frame Martin Kaiser
                   ` (3 preceding siblings ...)
  2022-07-04 20:16 ` [PATCH 4/6] staging: r8188eu: don't set pattrib->ta again Martin Kaiser
@ 2022-07-04 20:16 ` Martin Kaiser
  2022-07-04 20:16 ` [PATCH 6/6] staging: r8188eu: use ieee80211 helper to check for nullfunc frame Martin Kaiser
  2022-07-05 19:36 ` [PATCH 0/6] staging: r8188eu: clean up ap2sta_data_frame Philipp Hortmann
  6 siblings, 0 replies; 8+ messages in thread
From: Martin Kaiser @ 2022-07-04 20:16 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Larry Finger, Phillip Potter, Michael Straube, Pavel Skripkin,
	linux-staging, linux-kernel, Martin Kaiser

Remove a misleading comment in ap2sta_data_frame. We are not checking
for QOS frames.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
---
 drivers/staging/r8188eu/core/rtw_recv.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r8188eu/core/rtw_recv.c
index a761d88d4711..8b21ec8f111f 100644
--- a/drivers/staging/r8188eu/core/rtw_recv.c
+++ b/drivers/staging/r8188eu/core/rtw_recv.c
@@ -693,9 +693,6 @@ static int ap2sta_data_frame(
 			goto exit;
 		}
 
-		/* if ((GetFrameSubType(ptr) & WIFI_QOS_DATA_TYPE) == WIFI_QOS_DATA_TYPE) { */
-		/*  */
-
 		if (GetFrameSubType(ptr) & BIT(6)) {
 			/* No data, will not indicate to upper layer, temporily count it here */
 			count_rx_stats(adapter, precv_frame, *psta);
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 6/6] staging: r8188eu: use ieee80211 helper to check for nullfunc frame
  2022-07-04 20:16 [PATCH 0/6] staging: r8188eu: clean up ap2sta_data_frame Martin Kaiser
                   ` (4 preceding siblings ...)
  2022-07-04 20:16 ` [PATCH 5/6] staging: r8188eu: remove a misleading comment Martin Kaiser
@ 2022-07-04 20:16 ` Martin Kaiser
  2022-07-05 19:36 ` [PATCH 0/6] staging: r8188eu: clean up ap2sta_data_frame Philipp Hortmann
  6 siblings, 0 replies; 8+ messages in thread
From: Martin Kaiser @ 2022-07-04 20:16 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Larry Finger, Phillip Potter, Michael Straube, Pavel Skripkin,
	linux-staging, linux-kernel, Martin Kaiser

Use the ieee80211_is_nullfunc function from ieee80211.h to check for a
nullfunc frame. This is a data frame whose subtype has bit6 set.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
---
 drivers/staging/r8188eu/core/rtw_recv.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r8188eu/core/rtw_recv.c
index 8b21ec8f111f..32cd452d1f3d 100644
--- a/drivers/staging/r8188eu/core/rtw_recv.c
+++ b/drivers/staging/r8188eu/core/rtw_recv.c
@@ -649,6 +649,7 @@ static int ap2sta_data_frame(
 	struct sta_info **psta)
 {
 	u8 *ptr = precv_frame->rx_data;
+	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)precv_frame->rx_data;
 	struct rx_pkt_attrib *pattrib = &precv_frame->attrib;
 	int ret = _SUCCESS;
 	struct	sta_priv *pstapriv = &adapter->stapriv;
@@ -693,8 +694,8 @@ static int ap2sta_data_frame(
 			goto exit;
 		}
 
-		if (GetFrameSubType(ptr) & BIT(6)) {
-			/* No data, will not indicate to upper layer, temporily count it here */
+		if (ieee80211_is_nullfunc(hdr->frame_control)) {
+			/* We count the nullfunc frame, but we'll not pass it on to higher layers. */
 			count_rx_stats(adapter, precv_frame, *psta);
 			ret = RTW_RX_HANDLED;
 			goto exit;
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/6] staging: r8188eu: clean up ap2sta_data_frame
  2022-07-04 20:16 [PATCH 0/6] staging: r8188eu: clean up ap2sta_data_frame Martin Kaiser
                   ` (5 preceding siblings ...)
  2022-07-04 20:16 ` [PATCH 6/6] staging: r8188eu: use ieee80211 helper to check for nullfunc frame Martin Kaiser
@ 2022-07-05 19:36 ` Philipp Hortmann
  6 siblings, 0 replies; 8+ messages in thread
From: Philipp Hortmann @ 2022-07-05 19:36 UTC (permalink / raw)
  To: Martin Kaiser, Greg Kroah-Hartman
  Cc: Larry Finger, Phillip Potter, Michael Straube, Pavel Skripkin,
	linux-staging, linux-kernel

On 7/4/22 22:16, Martin Kaiser wrote:
> Start cleaning up ap2sta_data_frame. Remove duplicate assignments, use an
> ieee80211 helper in one place.
> 
> Martin Kaiser (6):
>    staging: r8188eu: set bssid only once
>    staging: r8188eu: don't set pattrib->dst again
>    staging: r8188eu: don't set pattrib->ra again
>    staging: r8188eu: don't set pattrib->ta again
>    staging: r8188eu: remove a misleading comment
>    staging: r8188eu: use ieee80211 helper to check for nullfunc frame
> 
>   drivers/staging/r8188eu/core/rtw_recv.c | 13 +++----------
>   1 file changed, 3 insertions(+), 10 deletions(-)
> 

Tested-by: Philipp Hortmann <philipp.g.hortmann@gmail.com> # Edimax N150

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-07-05 19:36 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-04 20:16 [PATCH 0/6] staging: r8188eu: clean up ap2sta_data_frame Martin Kaiser
2022-07-04 20:16 ` [PATCH 1/6] staging: r8188eu: set bssid only once Martin Kaiser
2022-07-04 20:16 ` [PATCH 2/6] staging: r8188eu: don't set pattrib->dst again Martin Kaiser
2022-07-04 20:16 ` [PATCH 3/6] staging: r8188eu: don't set pattrib->ra again Martin Kaiser
2022-07-04 20:16 ` [PATCH 4/6] staging: r8188eu: don't set pattrib->ta again Martin Kaiser
2022-07-04 20:16 ` [PATCH 5/6] staging: r8188eu: remove a misleading comment Martin Kaiser
2022-07-04 20:16 ` [PATCH 6/6] staging: r8188eu: use ieee80211 helper to check for nullfunc frame Martin Kaiser
2022-07-05 19:36 ` [PATCH 0/6] staging: r8188eu: clean up ap2sta_data_frame Philipp Hortmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.