aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJulia Lawall <julia@diku.dk>2010-05-15 17:16:39 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-07-26 15:32:40 -0400
commit929ebd30e4f982a1d2817f70154e7441f5714118 (patch)
tree4ff2f64fb6d1e695ddc3c837b6b8c6eab64894e6 /drivers
parent3289a8368c294726659588d044e354dd3bcf44b3 (diff)
drivers/net/wireless/wl12xx: Use kmemdup
Use kmemdup when some other buffer is immediately copied into the allocated region. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression from,to,size,flag; statement S; @@ - to = \(kmalloc\|kzalloc\)(size,flag); + to = kmemdup(from,size,flag); if (to==NULL || ...) S - memcpy(to, from, size); // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_main.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c
index d30de58cef90..864318f096ea 100644
--- a/drivers/net/wireless/wl12xx/wl1271_main.c
+++ b/drivers/net/wireless/wl12xx/wl1271_main.c
@@ -576,7 +576,7 @@ static int wl1271_fetch_nvs(struct wl1271 *wl)
576 goto out; 576 goto out;
577 } 577 }
578 578
579 wl->nvs = kzalloc(sizeof(struct wl1271_nvs_file), GFP_KERNEL); 579 wl->nvs = kmemdup(fw->data, sizeof(struct wl1271_nvs_file), GFP_KERNEL);
580 580
581 if (!wl->nvs) { 581 if (!wl->nvs) {
582 wl1271_error("could not allocate memory for the nvs file"); 582 wl1271_error("could not allocate memory for the nvs file");
@@ -584,8 +584,6 @@ static int wl1271_fetch_nvs(struct wl1271 *wl)
584 goto out; 584 goto out;
585 } 585 }
586 586
587 memcpy(wl->nvs, fw->data, fw->size);
588
589out: 587out:
590 release_firmware(fw); 588 release_firmware(fw);
591 589
@@ -2350,15 +2348,13 @@ struct ieee80211_hw *wl1271_alloc_hw(void)
2350 goto err_hw_alloc; 2348 goto err_hw_alloc;
2351 } 2349 }
2352 2350
2353 plat_dev = kmalloc(sizeof(wl1271_device), GFP_KERNEL); 2351 plat_dev = kmemdup(&wl1271_device, sizeof(wl1271_device), GFP_KERNEL);
2354 if (!plat_dev) { 2352 if (!plat_dev) {
2355 wl1271_error("could not allocate platform_device"); 2353 wl1271_error("could not allocate platform_device");
2356 ret = -ENOMEM; 2354 ret = -ENOMEM;
2357 goto err_plat_alloc; 2355 goto err_plat_alloc;
2358 } 2356 }
2359 2357
2360 memcpy(plat_dev, &wl1271_device, sizeof(wl1271_device));
2361
2362 wl = hw->priv; 2358 wl = hw->priv;
2363 memset(wl, 0, sizeof(*wl)); 2359 memset(wl, 0, sizeof(*wl));
2364 2360