Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1449195 > unrolled thread
| Started by | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| First post | 2016-07-24 22:20 +0200 |
| Last post | 2016-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.
[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
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Date | 2016-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]
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Date | 2016-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]
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Date | 2016-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]
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Date | 2016-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