diff options
author | Himangi Saraogi <himangi774@gmail.com> | 2014-05-28 10:23:09 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-05-30 18:40:29 -0400 |
commit | 09b38aa1e73234e9173a3d640eb0b02ab12b790c (patch) | |
tree | d0fdfd692137819427d0d646b7f37af98d3a60bc | |
parent | c3aad35e4890d79084ab70c54a5d7740045d2f90 (diff) |
ehea: Introduce the use of the managed version of kzalloc
This patch moves data allocated using kzalloc to managed data allocated
using devm_kzalloc and cleans now unnecessary kfrees in probe and remove
functions. Also, linux/device.h is added to make sure the devm_*()
routine declarations are unambiguously available.
The following Coccinelle semantic patch was used for making the change:
@platform@
identifier p, probefn, removefn;
@@
struct platform_driver p = {
.probe = probefn,
.remove = removefn,
};
@prb@
identifier platform.probefn, pdev;
expression e, e1, e2;
@@
probefn(struct platform_device *pdev, ...) {
<+...
- e = kzalloc(e1, e2)
+ e = devm_kzalloc(&pdev->dev, e1, e2)
...
?-kfree(e);
...+>
}
@rem depends on prb@
identifier platform.removefn;
expression e;
@@
removefn(...) {
<...
- kfree(e);
...>
}
Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Compile-Tested-by: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/ibm/ehea/ehea_main.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/net/ethernet/ibm/ehea/ehea_main.c b/drivers/net/ethernet/ibm/ehea/ehea_main.c index 538903bf13bc..a0b418e007a0 100644 --- a/drivers/net/ethernet/ibm/ehea/ehea_main.c +++ b/drivers/net/ethernet/ibm/ehea/ehea_main.c | |||
@@ -28,6 +28,7 @@ | |||
28 | 28 | ||
29 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | 29 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt |
30 | 30 | ||
31 | #include <linux/device.h> | ||
31 | #include <linux/in.h> | 32 | #include <linux/in.h> |
32 | #include <linux/ip.h> | 33 | #include <linux/ip.h> |
33 | #include <linux/tcp.h> | 34 | #include <linux/tcp.h> |
@@ -3273,7 +3274,7 @@ static int ehea_probe_adapter(struct platform_device *dev) | |||
3273 | return -EINVAL; | 3274 | return -EINVAL; |
3274 | } | 3275 | } |
3275 | 3276 | ||
3276 | adapter = kzalloc(sizeof(*adapter), GFP_KERNEL); | 3277 | adapter = devm_kzalloc(&dev->dev, sizeof(*adapter), GFP_KERNEL); |
3277 | if (!adapter) { | 3278 | if (!adapter) { |
3278 | ret = -ENOMEM; | 3279 | ret = -ENOMEM; |
3279 | dev_err(&dev->dev, "no mem for ehea_adapter\n"); | 3280 | dev_err(&dev->dev, "no mem for ehea_adapter\n"); |
@@ -3359,7 +3360,6 @@ out_kill_eq: | |||
3359 | 3360 | ||
3360 | out_free_ad: | 3361 | out_free_ad: |
3361 | list_del(&adapter->list); | 3362 | list_del(&adapter->list); |
3362 | kfree(adapter); | ||
3363 | 3363 | ||
3364 | out: | 3364 | out: |
3365 | ehea_update_firmware_handles(); | 3365 | ehea_update_firmware_handles(); |
@@ -3386,7 +3386,6 @@ static int ehea_remove(struct platform_device *dev) | |||
3386 | ehea_destroy_eq(adapter->neq); | 3386 | ehea_destroy_eq(adapter->neq); |
3387 | ehea_remove_adapter_mr(adapter); | 3387 | ehea_remove_adapter_mr(adapter); |
3388 | list_del(&adapter->list); | 3388 | list_del(&adapter->list); |
3389 | kfree(adapter); | ||
3390 | 3389 | ||
3391 | ehea_update_firmware_handles(); | 3390 | ehea_update_firmware_handles(); |
3392 | 3391 | ||