Re: [PATCH 1/7] Staging: rtl8192e: Added blank lines before/after struct
From: Joe Perches
Date: Tue Jun 28 2022 - 13:58:36 EST
On Tue, 2022-06-28 at 10:30 +0200, Felix Schlepper wrote:
> This addresses an issue raised by checkpatch.pl:
>
> $ ./scripts/checkpatch.pl --terse -f drivers/staging/rtl8192e/rtllib_wx.c
> CHECK: Please use a blank line after function/struct/union/enum
> declarations
>
> The additional blank line above the struct/before the headers is
> just cleaner.
[]
> diff --git a/drivers/staging/rtl8192e/rtllib_wx.c b/drivers/staging/rtl8192e/rtllib_wx.c
[]
> @@ -17,10 +17,12 @@
> #include <linux/module.h>
> #include <linux/etherdevice.h>
> #include "rtllib.h"
> +
> struct modes_unit {
> char *mode_string;
> int mode_size;
> };
> +
> static struct modes_unit rtllib_modes[] = {
> {"a", 1},
> {"b", 1},
Please always look deeper at the code and do not simply take
any checkpatch suggestion as the "best" fix.
Using this struct style with an embedded length is error prone
and would likely be better as a simple char * array.
Also, the existing sprintf use of mode_string and mode_size is
nonsensical. There is nothing to format in any of the mode_size.
so the use of mode_size as an argument is silly.
Perhaps something like this would be better:
---
drivers/staging/rtl8192e/rtllib_wx.c | 21 +++++----------------
1 file changed, 5 insertions(+), 16 deletions(-)
diff --git a/drivers/staging/rtl8192e/rtllib_wx.c b/drivers/staging/rtl8192e/rtllib_wx.c
index cf9a240924f20..90dcce152d80c 100644
--- a/drivers/staging/rtl8192e/rtllib_wx.c
+++ b/drivers/staging/rtl8192e/rtllib_wx.c
@@ -17,17 +17,9 @@
#include <linux/module.h>
#include <linux/etherdevice.h>
#include "rtllib.h"
-struct modes_unit {
- char *mode_string;
- int mode_size;
-};
-static struct modes_unit rtllib_modes[] = {
- {"a", 1},
- {"b", 1},
- {"g", 1},
- {"?", 1},
- {"N-24G", 5},
- {"N-5G", 4},
+
+static const char *rtllib_modes[] = {
+ "a", "b", "g", "?", "N-24G", "N-5G",
};
#define MAX_CUSTOM_LEN 64
@@ -72,11 +64,8 @@ static inline char *rtl819x_translate_scan(struct rtllib_device *ieee,
/* Add the protocol name */
iwe.cmd = SIOCGIWNAME;
for (i = 0; i < ARRAY_SIZE(rtllib_modes); i++) {
- if (network->mode&(1<<i)) {
- sprintf(pname, rtllib_modes[i].mode_string,
- rtllib_modes[i].mode_size);
- pname += rtllib_modes[i].mode_size;
- }
+ if (network->mode & BIT(i))
+ pname = stpcpy(pname, rtllib_modes[i]);
}
*pname = '\0';
snprintf(iwe.u.name, IFNAMSIZ, "IEEE802.11%s", proto_name);