Skip to content

Commit

Permalink
ath6kl: Use vmalloc instead of kmalloc for fw
Browse files Browse the repository at this point in the history
Sometimes it has been observed that allocating a contiguous memory
of more than 100K fails with kmalloc. This has been modified to
use vmalloc instead.

Signed-off-by: PingYang Zhang <pingzhan@qca.qualcomm.com>
Signed-off-by: Vivek Natarajan <nataraja@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
  • Loading branch information
Vivek Natarajan authored and Kalle Valo committed Apr 3, 2012
1 parent f599359 commit 8437754
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
3 changes: 2 additions & 1 deletion drivers/net/wireless/ath/ath6kl/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/export.h>
#include <linux/vmalloc.h>

#include "debug.h"
#include "hif-ops.h"
Expand Down Expand Up @@ -305,7 +306,7 @@ void ath6kl_core_cleanup(struct ath6kl *ar)

kfree(ar->fw_board);
kfree(ar->fw_otp);
kfree(ar->fw);
vfree(ar->fw);
kfree(ar->fw_patch);
kfree(ar->fw_testscript);

Expand Down
4 changes: 3 additions & 1 deletion drivers/net/wireless/ath/ath6kl/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include <linux/export.h>
#include <linux/of.h>
#include <linux/mmc/sdio_func.h>
#include <linux/vmalloc.h>

#include "core.h"
#include "cfg80211.h"
Expand Down Expand Up @@ -928,13 +929,14 @@ static int ath6kl_fetch_fw_apin(struct ath6kl *ar, const char *name)
if (ar->fw != NULL)
break;

ar->fw = kmemdup(data, ie_len, GFP_KERNEL);
ar->fw = vmalloc(ie_len);

if (ar->fw == NULL) {
ret = -ENOMEM;
goto out;
}

memcpy(ar->fw, data, ie_len);
ar->fw_len = ie_len;
break;
case ATH6KL_FW_IE_PATCH_IMAGE:
Expand Down

0 comments on commit 8437754

Please sign in to comment.