[PATCH] staging: wlang-ng: get memory from kernel allocators instead of big static buffer

Sergio Paracuellos
2016-10-03T16:06:43Z

This patch fix the following sparse warnings in prism2fw.c:
warning: memset with byte count of 120000

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
---
drivers/staging/wlan-ng/prism2fw.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/wlan-ng/prism2fw.c b/drivers/staging/wlan-ng/prism2fw.c
index 96aa211..7e33048 100644
--- a/drivers/staging/wlan-ng/prism2fw.c
+++ b/drivers/staging/wlan-ng/prism2fw.c
@@ -124,7 +124,7 @@ struct imgchunk {

/* Data records */
static unsigned int ns3data;
-static struct s3datarec s3data[S3DATA_MAX];
+static struct s3datarec *s3data;

/* Plug records */
static unsigned int ns3plug;
@@ -248,7 +248,12 @@ static int prism2_fwapply(const struct ihex_binrec *rfptr,

/* Initialize the data structures */
ns3data = 0;
- memset(s3data, 0, sizeof(s3data));
+ s3data = kcalloc(S3DATA_MAX, sizeof(*s3data), GFP_KERNEL);
+ if (unlikely(!s3data)) {
+ result = -ENOMEM;
+ goto out;
+ }
+
ns3plug = 0;
memset(s3plug, 0, sizeof(s3plug));
ns3crc = 0;
@@ -475,7 +480,7 @@ static void free_chunks(struct imgchunk *fchunk, unsigned int *nfchunks)
static void free_srecs(void)
{
ns3data = 0;
- memset(s3data, 0, sizeof(s3data));
+ kfree(s3data);
ns3plug = 0;
memset(s3plug, 0, sizeof(s3plug));
ns3crc = 0;
--
1.9.1