Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1449195 > unrolled thread

[PATCH 0/3] staging: wilc1000: Fine-tuning for two function implementations

Started bySF Markus Elfring <elfring@users.sourceforge.net>
First post2016-07-24 22:20 +0200
Last post2016-07-24 22:30 +0200
Articles 4 — 1 participant

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 0/3] staging: wilc1000: Fine-tuning for two function  implementations SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-24 22:20 +0200
    [PATCH 2/3] staging: wilc1000: One function call less in mac_ioctl()  after error detection SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-24 22:30 +0200
    [PATCH 1/3] staging: wilc1000: Delete an unnecessary check before the  function call "release_firmware" SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-24 22:30 +0200
    [PATCH 3/3] staging: wilc1000: Reduce scope for a few variables in  mac_ioctl() SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-24 22:30 +0200

#1449195 — [PATCH 0/3] staging: wilc1000: Fine-tuning for two function implementations

FromSF Markus Elfring <elfring@users.sourceforge.net>
Date2016-07-24 22:20 +0200
Subject[PATCH 0/3] staging: wilc1000: Fine-tuning for two function implementations
Message-ID<rYy2u-3R2-11@gated-at.bofh.it>
From: Markus Elfring <elfring@users.sourceforge.net>

Further update suggestions were taken into account
after a patch was applied from static source code analysis.

Markus Elfring (3):
  Delete an unnecessary check before the function call "release_firmware"
  One function call less in mac_ioctl() after error detection
  Reduce scope for a few variables in mac_ioctl()

 drivers/staging/wilc1000/linux_wlan.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

-- 
2.9.2

[toc] | [next] | [standalone]


#1449198 — [PATCH 2/3] staging: wilc1000: One function call less in mac_ioctl() after error detection

FromSF Markus Elfring <elfring@users.sourceforge.net>
Date2016-07-24 22:30 +0200
Subject[PATCH 2/3] staging: wilc1000: One function call less in mac_ioctl() after error detection
Message-ID<rYyca-3U4-1@gated-at.bofh.it>
In reply to#1449195
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sun, 24 Jul 2016 21:15:23 +0200

The kfree() function was called in two cases by the mac_ioctl() function
during error handling even if the passed variable did not contain a pointer
for a valid data item.

Improve this implementation detail by the introduction of another
jump label.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/staging/wilc1000/linux_wlan.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index cdef645..7b1ebcc 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1130,7 +1130,7 @@ static int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd)
 				if (copy_to_user(wrq->u.data.pointer, buff, size)) {
 					netdev_err(ndev, "failed to copy\n");
 					ret = -EFAULT;
-					goto done;
+					goto free_buffer;
 				}
 			}
 		}
@@ -1144,11 +1144,9 @@ static int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd)
 		goto done;
 	}
 	}
-
-done:
-
+free_buffer:
 	kfree(buff);
-
+done:
 	return ret;
 }
 
-- 
2.9.2

[toc] | [prev] | [next] | [standalone]


#1449201 — [PATCH 1/3] staging: wilc1000: Delete an unnecessary check before the function call "release_firmware"

FromSF Markus Elfring <elfring@users.sourceforge.net>
Date2016-07-24 22:30 +0200
Subject[PATCH 1/3] staging: wilc1000: Delete an unnecessary check before the function call "release_firmware"
Message-ID<rYyca-3U4-11@gated-at.bofh.it>
In reply to#1449195
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sun, 24 Jul 2016 21:00:20 +0200

The release_firmware() function tests whether its argument is NULL and then
returns immediately. Thus the test around the call is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/staging/wilc1000/linux_wlan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 3a66255..cdef645 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1223,7 +1223,7 @@ void wilc_netdev_cleanup(struct wilc *wilc)
 			vif[i] = netdev_priv(wilc->vif[i]->ndev);
 	}
 
-	if (wilc && wilc->firmware) {
+	if (wilc) {
 		release_firmware(wilc->firmware);
 		wilc->firmware = NULL;
 	}
-- 
2.9.2

[toc] | [prev] | [next] | [standalone]


#1449202 — [PATCH 3/3] staging: wilc1000: Reduce scope for a few variables in mac_ioctl()

FromSF Markus Elfring <elfring@users.sourceforge.net>
Date2016-07-24 22:30 +0200
Subject[PATCH 3/3] staging: wilc1000: Reduce scope for a few variables in mac_ioctl()
Message-ID<rYyca-3U4-19@gated-at.bofh.it>
In reply to#1449195
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sun, 24 Jul 2016 21:45:37 +0200

Three local variables were used only within a single case branch.

* Thus move the data type definition for "rssi" and "size" into the
  corresponding code block.

* The variable "length" was not modified after its initialisation.
  Thus pass a constant value in the affected function call instead.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/staging/wilc1000/linux_wlan.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 7b1ebcc..173be16 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1094,8 +1094,6 @@ int wilc_mac_close(struct net_device *ndev)
 static int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd)
 {
 	u8 *buff = NULL;
-	s8 rssi;
-	u32 size = 0, length = 0;
 	struct wilc_vif *vif;
 	s32 ret = 0;
 	struct wilc *wilc;
@@ -1110,8 +1108,7 @@ static int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd)
 	case SIOCSIWPRIV:
 	{
 		struct iwreq *wrq = (struct iwreq *)req;
-
-		size = wrq->u.data.length;
+		u32 size = wrq->u.data.length;
 
 		if (size && wrq->u.data.pointer) {
 			buff = memdup_user(wrq->u.data.pointer,
@@ -1119,7 +1116,9 @@ static int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd)
 			if (IS_ERR(buff))
 				return PTR_ERR(buff);
 
-			if (strncasecmp(buff, "RSSI", length) == 0) {
+			if (strncasecmp(buff, "RSSI", 0) == 0) {
+				s8 rssi;
+
 				ret = wilc_get_rssi(vif, &rssi);
 				netdev_info(ndev, "RSSI :%d\n", rssi);
 
-- 
2.9.2

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web