Skip to contentSkip to conversation

staging: rtl8188eu: Removed a function and coded inline

PATCH Superseded Bhaskar Singh 2 participants 3 messages Aug 18, 2018 – Aug 20, 2018 Staging

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 staging: rtl8188eu: Removed a function and coded inline

This patch removed function named rtw_malloc2d.

I removed this function because this function is used exactly once and function call have some overhead also.

Maybe this will improve code runtime slightly.

---
 drivers/staging/rtl8188eu/core/rtw_efuse.c        | 10 +++++++++-
 drivers/staging/rtl8188eu/include/osdep_service.h |  2 --
 drivers/staging/rtl8188eu/os_dep/osdep_service.c  | 14 --------------
 3 files changed, 9 insertions(+), 17 deletions(-)
drivers/staging/rtl8188eu/core/rtw_efuse.c +9 -1
index 0fd306a808c4..befc99c197b1 100644
@@ -86,12 +86,20 @@ efuse_phymap_to_logical(u8 *phymap, u16 _offset, u16 _size_byte, u8  *pbuf)
 	u16	**eFuseWord = NULL;
 	u16	efuse_utilized = 0;
 	u8 u1temp = 0;
+	int z;
+	void **a = NULL;
 
 	efuseTbl = kzalloc(EFUSE_MAP_LEN_88E, GFP_KERNEL);
 	if (!efuseTbl)
 		return;
 
-	eFuseWord = (u16 **)rtw_malloc2d(EFUSE_MAX_SECTION_88E, EFUSE_MAX_WORD_UNIT, sizeof(u16));
+	a = kzalloc(EFUSE_MAX_SECTION_88E * sizeof(void *) + EFUSE_MAX_SECTION_88E * EFUSE_MAX_WORD_UNIT * sizeof(u16), GFP_KERNEL);
+	if (!a)
+		goto out;
+	for (z = 0; z < EFUSE_MAX_SECTION_88E; z++)
+		a[z] = ((char *)(a + EFUSE_MAX_SECTION_88E)) + z * EFUSE_MAX_WORD_UNIT * sizeof(u16);
+out:
+	eFuseWord = (u16 **)a;
 	if (!eFuseWord) {
 		DBG_88E("%s: alloc eFuseWord fail!\n", __func__);
 		goto eFuseWord_failed;
drivers/staging/rtl8188eu/include/osdep_service.h +0 -2
index fbcba79a0927..cfe5698fbbb1 100644
@@ -64,8 +64,6 @@ static inline int rtw_netif_queue_stopped(struct net_device *pnetdev)
 u8 *_rtw_malloc(u32 sz);
 #define rtw_malloc(sz)			_rtw_malloc((sz))
 
-void *rtw_malloc2d(int h, int w, int size);
-
 void _rtw_init_queue(struct __queue *pqueue);
 
 struct rtw_netdev_priv_indicator {
drivers/staging/rtl8188eu/os_dep/osdep_service.c +0 -14
index 78daef6704ac..105f3f21bdea 100644
@@ -18,20 +18,6 @@ u8 *_rtw_malloc(u32 sz)
 	return kmalloc(sz, in_interrupt() ? GFP_ATOMIC : GFP_KERNEL);
 }
 
-void *rtw_malloc2d(int h, int w, int size)
-{
-	int j;
-	void **a = kzalloc(h * sizeof(void *) + h * w * size, GFP_KERNEL);
-
-	if (!a)
-		goto out;
-
-	for (j = 0; j < h; j++)
-		a[j] = ((char *)(a + h)) + j * w * size;
-out:
-	return a;
-}
-
 void _rtw_init_queue(struct __queue *pqueue)
 {
 	INIT_LIST_HEAD(&pqueue->queue);
Signature · 1 line
2.16.4
#1 lore raw
Quoted 19 lines · Bhaskar Singh

This patch removed function named rtw_malloc2d.

I removed this function because this function is used exactly once and function call have some overhead also.

Maybe this will improve code runtime slightly.

---
 drivers/staging/rtl8188eu/core/rtw_efuse.c        | 10 +++++++++-
 drivers/staging/rtl8188eu/include/osdep_service.h |  2 --
 drivers/staging/rtl8188eu/os_dep/osdep_service.c  | 14 --------------
 3 files changed, 9 insertions(+), 17 deletions(-)
drivers/staging/rtl8188eu/core/rtw_efuse.c +0 -0
index 0fd306a808c4..befc99c197b1 100644

drivers/staging/rtl8188eu/core/rtw_efuse.c efuse_phymap_to_logical(u8 *phymap, u16 _offset, u16 _size_byte, u8 *pbuf) · line 89

Quoted 4 lines
drivers/staging/rtl8188eu/core/rtw_efuse.c +1 -0
@@ -86,12 +86,20 @@ efuse_phymap_to_logical(u8 *phymap, u16 _offset, u16 _size_byte, u8  *pbuf)
 	u16	**eFuseWord = NULL;
 	u16	efuse_utilized = 0;
 	u8 u1temp = 0;
+	int z;

z is unusual name for an iterator. Does it stand for something? Just use "int i;".

drivers/staging/rtl8188eu/core/rtw_efuse.c efuse_phymap_to_logical(u8 *phymap, u16 _offset, u16 _size_byte, u8 *pbuf) · line 90

Quoted 1 line
drivers/staging/rtl8188eu/core/rtw_efuse.c +1 -0
+	void **a = NULL;

What does "a" mean in this context? Maybe just say "void **tmp;"

drivers/staging/rtl8188eu/core/rtw_efuse.c efuse_phymap_to_logical(u8 *phymap, u16 _offset, u16 _size_byte, u8 *pbuf) · line 98

Quoted 9 lines
drivers/staging/rtl8188eu/core/rtw_efuse.c +3 -1
 	efuseTbl = kzalloc(EFUSE_MAP_LEN_88E, GFP_KERNEL);
 	if (!efuseTbl)
 		return;
 
-	eFuseWord = (u16 **)rtw_malloc2d(EFUSE_MAX_SECTION_88E, EFUSE_MAX_WORD_UNIT, sizeof(u16));
+	a = kzalloc(EFUSE_MAX_SECTION_88E * sizeof(void *) + EFUSE_MAX_SECTION_88E * EFUSE_MAX_WORD_UNIT * sizeof(u16), GFP_KERNEL);
+	if (!a)
+		goto out;

You can simplify the math a bit:

	tmp = kzalloc(EFUSE_MAX_SECTION_88E * (sizeof(void *) + EFUSE_MAX_WORD_UNIT * sizeof(u16)), GFP_KERNEL);

Then if it fails:

	if (!tmp)
		goto eFuseWord_failed;

regards,
dan carpenter

#2 lore raw
Quoted 47 lines · Dan Carpenter
Quoted 19 lines · Bhaskar Singh

This patch removed function named rtw_malloc2d.

I removed this function because this function is used exactly once and function call have some overhead also.

Maybe this will improve code runtime slightly.

---
 drivers/staging/rtl8188eu/core/rtw_efuse.c        | 10 +++++++++-
 drivers/staging/rtl8188eu/include/osdep_service.h |  2 --
 drivers/staging/rtl8188eu/os_dep/osdep_service.c  | 14 --------------
 3 files changed, 9 insertions(+), 17 deletions(-)
drivers/staging/rtl8188eu/core/rtw_efuse.c +0 -0
index 0fd306a808c4..befc99c197b1 100644

drivers/staging/rtl8188eu/core/rtw_efuse.c efuse_phymap_to_logical(u8 *phymap, u16 _offset, u16 _size_byte, u8 *pbuf) · line 89

Quoted 4 lines
drivers/staging/rtl8188eu/core/rtw_efuse.c +1 -0
@@ -86,12 +86,20 @@ efuse_phymap_to_logical(u8 *phymap, u16 _offset, u16 _size_byte, u8  *pbuf)
 	u16	**eFuseWord = NULL;
 	u16	efuse_utilized = 0;
 	u8 u1temp = 0;
+	int z;

z is unusual name for an iterator. Does it stand for something? Just use "int i;".

drivers/staging/rtl8188eu/core/rtw_efuse.c efuse_phymap_to_logical(u8 *phymap, u16 _offset, u16 _size_byte, u8 *pbuf) · line 90

Quoted 1 line
drivers/staging/rtl8188eu/core/rtw_efuse.c +1 -0
+	void **a = NULL;

What does "a" mean in this context? Maybe just say "void **tmp;"

drivers/staging/rtl8188eu/core/rtw_efuse.c efuse_phymap_to_logical(u8 *phymap, u16 _offset, u16 _size_byte, u8 *pbuf) · line 98

Quoted 9 lines
drivers/staging/rtl8188eu/core/rtw_efuse.c +3 -1
 	efuseTbl = kzalloc(EFUSE_MAP_LEN_88E, GFP_KERNEL);
 	if (!efuseTbl)
 		return;
 
-	eFuseWord = (u16 **)rtw_malloc2d(EFUSE_MAX_SECTION_88E, EFUSE_MAX_WORD_UNIT, sizeof(u16));
+	a = kzalloc(EFUSE_MAX_SECTION_88E * sizeof(void *) + EFUSE_MAX_SECTION_88E * EFUSE_MAX_WORD_UNIT * sizeof(u16), GFP_KERNEL);
+	if (!a)
+		goto out;

You can simplify the math a bit:

	tmp = kzalloc(EFUSE_MAX_SECTION_88E * (sizeof(void *) + EFUSE_MAX_WORD_UNIT * sizeof(u16)), GFP_KERNEL);
Quoted 9 lines

Then if it fails:

	if (!tmp)
		goto eFuseWord_failed;

regards,
dan carpenter

Here I have modified 3 files but after seeing comments of Dan Carpenter I have edited one file. What to do with those 2 files which I haven't modified while sending 2nd version of this patch because all three file combinedly making one logical change.
I apologies, if this is not the right place for asking this type of questions