diff options
author | Takashi Iwai <tiwai@suse.de> | 2007-02-05 14:56:20 +0100 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2007-02-09 09:03:56 +0100 |
commit | 88cb42901f1572c95f5933f363cfebd5044c716a (patch) | |
tree | 8eed3d46c81996e780375ff91ae1955f3265629d /sound/soc/codecs/wm8731.c | |
parent | [ALSA] snd-ak4114: Fix two array overflows (diff) | |
download | linux-88cb42901f1572c95f5933f363cfebd5044c716a.tar.xz linux-88cb42901f1572c95f5933f363cfebd5044c716a.zip |
[ALSA] soc - Clean up with kmemdup()
Clean up by replacing with kmemdup().
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/soc/codecs/wm8731.c')
-rw-r--r-- | sound/soc/codecs/wm8731.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/sound/soc/codecs/wm8731.c b/sound/soc/codecs/wm8731.c index e6b990507df2..7ca0b5268289 100644 --- a/sound/soc/codecs/wm8731.c +++ b/sound/soc/codecs/wm8731.c @@ -543,14 +543,10 @@ static int wm8731_init(struct snd_soc_device *socdev) codec->dapm_event = wm8731_dapm_event; codec->dai = &wm8731_dai; codec->num_dai = 1; - codec->reg_cache_size = ARRAY_SIZE(wm8731_reg); - codec->reg_cache = - kzalloc(sizeof(u16) * ARRAY_SIZE(wm8731_reg), GFP_KERNEL); + codec->reg_cache_size = sizeof(wm8731_reg); + codec->reg_cache = kmemdup(wm8731_reg, sizeof(wm8731_reg), GFP_KERNEL); if (codec->reg_cache == NULL) return -ENOMEM; - memcpy(codec->reg_cache, - wm8731_reg, sizeof(u16) * ARRAY_SIZE(wm8731_reg)); - codec->reg_cache_size = sizeof(u16) * ARRAY_SIZE(wm8731_reg); wm8731_reset(codec); @@ -627,12 +623,11 @@ static int wm8731_codec_probe(struct i2c_adapter *adap, int addr, int kind) client_template.adapter = adap; client_template.addr = addr; - i2c = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); + i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL); if (i2c == NULL) { kfree(codec); return -ENOMEM; } - memcpy(i2c, &client_template, sizeof(struct i2c_client)); i2c_set_clientdata(i2c, codec); codec->control_data = i2c; |