All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] staging: r8188eu: refactor rtw_macaddr_cfg()
@ 2021-08-30 12:04 Michael Straube
  2021-08-30 12:04 ` [PATCH 1/8] staging: r8188eu use mac_pton() in rtw_macaddr_cfg() Michael Straube
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Michael Straube @ 2021-08-30 12:04 UTC (permalink / raw)
  To: gregkh
  Cc: Larry.Finger, phil, martin, fmdefrancesco, linux-staging,
	linux-kernel, Michael Straube

This series refactors rtw_macaddr_cfg().
- use mac_pton() instead of custom approach
- use *_ether_addr() functions to copy the mac address
  and check if it is a broadcast or zero address
- assign random default mac address instead of fixed one
- clean up minor style issues

Michael Straube (8):
  staging: r8188eu use mac_pton() in rtw_macaddr_cfg()
  staging: r8188eu: ensure mac address buffer is properly aligned
  staging: r8188eu: use ETH_ALEN
  staging: r8188eu: use is_*_ether_addr() in rtw_macaddr_cfg()
  staging: r8188eu: use random default mac address
  staging: r8188eu: use ether_addr_copy() in rtw_macaddr_cfg()
  staging: r8188eu: add missing blank line after declarations
  staging: r8188eu: remove unnecessary parentheses

 drivers/staging/r8188eu/core/rtw_ieee80211.c | 33 +++++++-------------
 drivers/staging/r8188eu/include/rtw_eeprom.h |  2 +-
 2 files changed, 12 insertions(+), 23 deletions(-)

-- 
2.33.0


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

* [PATCH 1/8] staging: r8188eu use mac_pton() in rtw_macaddr_cfg()
  2021-08-30 12:04 [PATCH 0/8] staging: r8188eu: refactor rtw_macaddr_cfg() Michael Straube
@ 2021-08-30 12:04 ` Michael Straube
  2021-08-30 12:04 ` [PATCH 2/8] staging: r8188eu: ensure mac address buffer is properly aligned Michael Straube
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Michael Straube @ 2021-08-30 12:04 UTC (permalink / raw)
  To: gregkh
  Cc: Larry.Finger, phil, martin, fmdefrancesco, linux-staging,
	linux-kernel, Michael Straube

Instead of a custom approach use mac_pton() to convert the mac
address string. With mac_pton() the driver also validates the
input now.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
---
 drivers/staging/r8188eu/core/rtw_ieee80211.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/r8188eu/core/rtw_ieee80211.c b/drivers/staging/r8188eu/core/rtw_ieee80211.c
index b3a74198596a..205798b76cf9 100644
--- a/drivers/staging/r8188eu/core/rtw_ieee80211.c
+++ b/drivers/staging/r8188eu/core/rtw_ieee80211.c
@@ -1024,13 +1024,11 @@ void rtw_macaddr_cfg(u8 *mac_addr)
 	if (!mac_addr)
 		return;
 
-	if (rtw_initmac) {	/* Users specify the mac address */
-		int jj, kk;
-
-		for (jj = 0, kk = 0; jj < ETH_ALEN; jj++, kk += 3)
-			mac[jj] = key_2char2num(rtw_initmac[kk], rtw_initmac[kk + 1]);
+	if (rtw_initmac && mac_pton(rtw_initmac, mac)) {
+		/* Users specify the mac address */
 		memcpy(mac_addr, mac, ETH_ALEN);
-	} else {	/* Use the mac address stored in the Efuse */
+	} else {
+		/* Use the mac address stored in the Efuse */
 		memcpy(mac, mac_addr, ETH_ALEN);
 	}
 
-- 
2.33.0


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

* [PATCH 2/8] staging: r8188eu: ensure mac address buffer is properly aligned
  2021-08-30 12:04 [PATCH 0/8] staging: r8188eu: refactor rtw_macaddr_cfg() Michael Straube
  2021-08-30 12:04 ` [PATCH 1/8] staging: r8188eu use mac_pton() in rtw_macaddr_cfg() Michael Straube
@ 2021-08-30 12:04 ` Michael Straube
  2021-08-30 12:04 ` [PATCH 3/8] staging: r8188eu: use ETH_ALEN Michael Straube
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Michael Straube @ 2021-08-30 12:04 UTC (permalink / raw)
  To: gregkh
  Cc: Larry.Finger, phil, martin, fmdefrancesco, linux-staging,
	linux-kernel, Michael Straube

Ensure the mac address buffer in struct eeprom_priv is properly
aligned for use with functions from <linux/etherdevice.h>.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
---
 drivers/staging/r8188eu/include/rtw_eeprom.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/r8188eu/include/rtw_eeprom.h b/drivers/staging/r8188eu/include/rtw_eeprom.h
index 9f8a9c070339..fb591a764dac 100644
--- a/drivers/staging/r8188eu/include/rtw_eeprom.h
+++ b/drivers/staging/r8188eu/include/rtw_eeprom.h
@@ -99,7 +99,7 @@ struct eeprom_priv {
 	u8		bautoload_fail_flag;
 	u8		bloadfile_fail_flag;
 	u8		bloadmac_fail_flag;
-	u8		mac_addr[6];	/* PermanentAddress */
+	u8		mac_addr[6] __aligned(2); /* PermanentAddress */
 	u16		channel_plan;
 	u8		EepromOrEfuse;
 	u8		efuse_eeprom_data[HWSET_MAX_SIZE_512] __aligned(4);
-- 
2.33.0


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

* [PATCH 3/8] staging: r8188eu: use ETH_ALEN
  2021-08-30 12:04 [PATCH 0/8] staging: r8188eu: refactor rtw_macaddr_cfg() Michael Straube
  2021-08-30 12:04 ` [PATCH 1/8] staging: r8188eu use mac_pton() in rtw_macaddr_cfg() Michael Straube
  2021-08-30 12:04 ` [PATCH 2/8] staging: r8188eu: ensure mac address buffer is properly aligned Michael Straube
@ 2021-08-30 12:04 ` Michael Straube
  2021-08-30 12:04 ` [PATCH 4/8] staging: r8188eu: use is_*_ether_addr() in rtw_macaddr_cfg() Michael Straube
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Michael Straube @ 2021-08-30 12:04 UTC (permalink / raw)
  To: gregkh
  Cc: Larry.Finger, phil, martin, fmdefrancesco, linux-staging,
	linux-kernel, Michael Straube

Use ETH_ALEN instead of hard-coding the value for the mac_addr buffer
in struct eeprom_priv.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
---
 drivers/staging/r8188eu/include/rtw_eeprom.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/r8188eu/include/rtw_eeprom.h b/drivers/staging/r8188eu/include/rtw_eeprom.h
index fb591a764dac..d0c812cf5cc2 100644
--- a/drivers/staging/r8188eu/include/rtw_eeprom.h
+++ b/drivers/staging/r8188eu/include/rtw_eeprom.h
@@ -99,7 +99,7 @@ struct eeprom_priv {
 	u8		bautoload_fail_flag;
 	u8		bloadfile_fail_flag;
 	u8		bloadmac_fail_flag;
-	u8		mac_addr[6] __aligned(2); /* PermanentAddress */
+	u8		mac_addr[ETH_ALEN] __aligned(2); /* PermanentAddress */
 	u16		channel_plan;
 	u8		EepromOrEfuse;
 	u8		efuse_eeprom_data[HWSET_MAX_SIZE_512] __aligned(4);
-- 
2.33.0


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

* [PATCH 4/8] staging: r8188eu: use is_*_ether_addr() in rtw_macaddr_cfg()
  2021-08-30 12:04 [PATCH 0/8] staging: r8188eu: refactor rtw_macaddr_cfg() Michael Straube
                   ` (2 preceding siblings ...)
  2021-08-30 12:04 ` [PATCH 3/8] staging: r8188eu: use ETH_ALEN Michael Straube
@ 2021-08-30 12:04 ` Michael Straube
  2021-08-30 12:04 ` [PATCH 5/8] staging: r8188eu: use random default mac address Michael Straube
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Michael Straube @ 2021-08-30 12:04 UTC (permalink / raw)
  To: gregkh
  Cc: Larry.Finger, phil, martin, fmdefrancesco, linux-staging,
	linux-kernel, Michael Straube

Use is_broadcast_ether_addr() and is_zero_ether_addr() in
rtw_macaddr_cfg(). The buffer is properly aligned.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
---
 drivers/staging/r8188eu/core/rtw_ieee80211.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/staging/r8188eu/core/rtw_ieee80211.c b/drivers/staging/r8188eu/core/rtw_ieee80211.c
index 205798b76cf9..35a548e1c92e 100644
--- a/drivers/staging/r8188eu/core/rtw_ieee80211.c
+++ b/drivers/staging/r8188eu/core/rtw_ieee80211.c
@@ -1032,10 +1032,7 @@ void rtw_macaddr_cfg(u8 *mac_addr)
 		memcpy(mac, mac_addr, ETH_ALEN);
 	}
 
-	if (((mac[0] == 0xff) && (mac[1] == 0xff) && (mac[2] == 0xff) &&
-	     (mac[3] == 0xff) && (mac[4] == 0xff) && (mac[5] == 0xff)) ||
-	    ((mac[0] == 0x0) && (mac[1] == 0x0) && (mac[2] == 0x0) &&
-	     (mac[3] == 0x0) && (mac[4] == 0x0) && (mac[5] == 0x0))) {
+	if (is_broadcast_ether_addr(mac) || is_zero_ether_addr(mac)) {
 		mac[0] = 0x00;
 		mac[1] = 0xe0;
 		mac[2] = 0x4c;
-- 
2.33.0


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

* [PATCH 5/8] staging: r8188eu: use random default mac address
  2021-08-30 12:04 [PATCH 0/8] staging: r8188eu: refactor rtw_macaddr_cfg() Michael Straube
                   ` (3 preceding siblings ...)
  2021-08-30 12:04 ` [PATCH 4/8] staging: r8188eu: use is_*_ether_addr() in rtw_macaddr_cfg() Michael Straube
@ 2021-08-30 12:04 ` Michael Straube
  2021-08-30 12:04 ` [PATCH 6/8] staging: r8188eu: use ether_addr_copy() in rtw_macaddr_cfg() Michael Straube
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Michael Straube @ 2021-08-30 12:04 UTC (permalink / raw)
  To: gregkh
  Cc: Larry.Finger, phil, martin, fmdefrancesco, linux-staging,
	linux-kernel, Michael Straube

Use a random default mac address instead of a fixed one to reduce the
likelihood of mac address collision.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
---
 drivers/staging/r8188eu/core/rtw_ieee80211.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/r8188eu/core/rtw_ieee80211.c b/drivers/staging/r8188eu/core/rtw_ieee80211.c
index 35a548e1c92e..370a710ab7cb 100644
--- a/drivers/staging/r8188eu/core/rtw_ieee80211.c
+++ b/drivers/staging/r8188eu/core/rtw_ieee80211.c
@@ -1033,15 +1033,8 @@ void rtw_macaddr_cfg(u8 *mac_addr)
 	}
 
 	if (is_broadcast_ether_addr(mac) || is_zero_ether_addr(mac)) {
-		mac[0] = 0x00;
-		mac[1] = 0xe0;
-		mac[2] = 0x4c;
-		mac[3] = 0x87;
-		mac[4] = 0x00;
-		mac[5] = 0x00;
-		/*  use default mac addresss */
-		memcpy(mac_addr, mac, ETH_ALEN);
-		DBG_88E("MAC Address from efuse error, assign default one !!!\n");
+		eth_random_addr(mac_addr);
+		DBG_88E("MAC Address from efuse error, assign random one !!!\n");
 	}
 
 	DBG_88E("rtw_macaddr_cfg MAC Address  = %pM\n", (mac_addr));
-- 
2.33.0


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

* [PATCH 6/8] staging: r8188eu: use ether_addr_copy() in rtw_macaddr_cfg()
  2021-08-30 12:04 [PATCH 0/8] staging: r8188eu: refactor rtw_macaddr_cfg() Michael Straube
                   ` (4 preceding siblings ...)
  2021-08-30 12:04 ` [PATCH 5/8] staging: r8188eu: use random default mac address Michael Straube
@ 2021-08-30 12:04 ` Michael Straube
  2021-08-30 12:04 ` [PATCH 7/8] staging: r8188eu: add missing blank line after declarations Michael Straube
  2021-08-30 12:04 ` [PATCH 8/8] staging: r8188eu: remove unnecessary parentheses Michael Straube
  7 siblings, 0 replies; 9+ messages in thread
From: Michael Straube @ 2021-08-30 12:04 UTC (permalink / raw)
  To: gregkh
  Cc: Larry.Finger, phil, martin, fmdefrancesco, linux-staging,
	linux-kernel, Michael Straube

Use ether_addr_copy() in rtw_macaddr_cfg() to copy the mac address.
The buffers are properly aligned.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
---
 drivers/staging/r8188eu/core/rtw_ieee80211.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/r8188eu/core/rtw_ieee80211.c b/drivers/staging/r8188eu/core/rtw_ieee80211.c
index 370a710ab7cb..c37358be631f 100644
--- a/drivers/staging/r8188eu/core/rtw_ieee80211.c
+++ b/drivers/staging/r8188eu/core/rtw_ieee80211.c
@@ -1026,10 +1026,10 @@ void rtw_macaddr_cfg(u8 *mac_addr)
 
 	if (rtw_initmac && mac_pton(rtw_initmac, mac)) {
 		/* Users specify the mac address */
-		memcpy(mac_addr, mac, ETH_ALEN);
+		ether_addr_copy(mac_addr, mac);
 	} else {
 		/* Use the mac address stored in the Efuse */
-		memcpy(mac, mac_addr, ETH_ALEN);
+		ether_addr_copy(mac, mac_addr);
 	}
 
 	if (is_broadcast_ether_addr(mac) || is_zero_ether_addr(mac)) {
-- 
2.33.0


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

* [PATCH 7/8] staging: r8188eu: add missing blank line after declarations
  2021-08-30 12:04 [PATCH 0/8] staging: r8188eu: refactor rtw_macaddr_cfg() Michael Straube
                   ` (5 preceding siblings ...)
  2021-08-30 12:04 ` [PATCH 6/8] staging: r8188eu: use ether_addr_copy() in rtw_macaddr_cfg() Michael Straube
@ 2021-08-30 12:04 ` Michael Straube
  2021-08-30 12:04 ` [PATCH 8/8] staging: r8188eu: remove unnecessary parentheses Michael Straube
  7 siblings, 0 replies; 9+ messages in thread
From: Michael Straube @ 2021-08-30 12:04 UTC (permalink / raw)
  To: gregkh
  Cc: Larry.Finger, phil, martin, fmdefrancesco, linux-staging,
	linux-kernel, Michael Straube

Add a missing blank line after declarations in rtw_macaddr_cfg()
to clear a checkpatch warning.

WARNING: Missing a blank line after declarations

Signed-off-by: Michael Straube <straube.linux@gmail.com>
---
 drivers/staging/r8188eu/core/rtw_ieee80211.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/staging/r8188eu/core/rtw_ieee80211.c b/drivers/staging/r8188eu/core/rtw_ieee80211.c
index c37358be631f..f76c762ccd4b 100644
--- a/drivers/staging/r8188eu/core/rtw_ieee80211.c
+++ b/drivers/staging/r8188eu/core/rtw_ieee80211.c
@@ -1021,6 +1021,7 @@ u8 key_2char2num(u8 hch, u8 lch)
 void rtw_macaddr_cfg(u8 *mac_addr)
 {
 	u8 mac[ETH_ALEN];
+
 	if (!mac_addr)
 		return;
 
-- 
2.33.0


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

* [PATCH 8/8] staging: r8188eu: remove unnecessary parentheses
  2021-08-30 12:04 [PATCH 0/8] staging: r8188eu: refactor rtw_macaddr_cfg() Michael Straube
                   ` (6 preceding siblings ...)
  2021-08-30 12:04 ` [PATCH 7/8] staging: r8188eu: add missing blank line after declarations Michael Straube
@ 2021-08-30 12:04 ` Michael Straube
  7 siblings, 0 replies; 9+ messages in thread
From: Michael Straube @ 2021-08-30 12:04 UTC (permalink / raw)
  To: gregkh
  Cc: Larry.Finger, phil, martin, fmdefrancesco, linux-staging,
	linux-kernel, Michael Straube

Remove unnecessary parentheses around a variable to improve
readability.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
---
 drivers/staging/r8188eu/core/rtw_ieee80211.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/r8188eu/core/rtw_ieee80211.c b/drivers/staging/r8188eu/core/rtw_ieee80211.c
index f76c762ccd4b..952ad3eec5bc 100644
--- a/drivers/staging/r8188eu/core/rtw_ieee80211.c
+++ b/drivers/staging/r8188eu/core/rtw_ieee80211.c
@@ -1038,7 +1038,7 @@ void rtw_macaddr_cfg(u8 *mac_addr)
 		DBG_88E("MAC Address from efuse error, assign random one !!!\n");
 	}
 
-	DBG_88E("rtw_macaddr_cfg MAC Address  = %pM\n", (mac_addr));
+	DBG_88E("rtw_macaddr_cfg MAC Address  = %pM\n", mac_addr);
 }
 
 void dump_ies(u8 *buf, u32 buf_len)
-- 
2.33.0


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

end of thread, other threads:[~2021-08-30 12:04 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-30 12:04 [PATCH 0/8] staging: r8188eu: refactor rtw_macaddr_cfg() Michael Straube
2021-08-30 12:04 ` [PATCH 1/8] staging: r8188eu use mac_pton() in rtw_macaddr_cfg() Michael Straube
2021-08-30 12:04 ` [PATCH 2/8] staging: r8188eu: ensure mac address buffer is properly aligned Michael Straube
2021-08-30 12:04 ` [PATCH 3/8] staging: r8188eu: use ETH_ALEN Michael Straube
2021-08-30 12:04 ` [PATCH 4/8] staging: r8188eu: use is_*_ether_addr() in rtw_macaddr_cfg() Michael Straube
2021-08-30 12:04 ` [PATCH 5/8] staging: r8188eu: use random default mac address Michael Straube
2021-08-30 12:04 ` [PATCH 6/8] staging: r8188eu: use ether_addr_copy() in rtw_macaddr_cfg() Michael Straube
2021-08-30 12:04 ` [PATCH 7/8] staging: r8188eu: add missing blank line after declarations Michael Straube
2021-08-30 12:04 ` [PATCH 8/8] staging: r8188eu: remove unnecessary parentheses Michael Straube

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.