aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/emu10k1/emufx.c
diff options
context:
space:
mode:
authorMariusz Kozlowski <m.kozlowski@tuxland.pl>2007-08-11 05:06:09 -0400
committerJaroslav Kysela <perex@perex.cz>2007-10-16 09:58:48 -0400
commit51882453a729675aa7266aa87d99f33eca310c86 (patch)
treebf948854782092a0111058224bdfbec6cbcc36c6 /sound/pci/emu10k1/emufx.c
parent6ca2cdcc5e40286e6bf5286056b50a56c8ce327e (diff)
[ALSA] This patch removes memset() from snd_emu10k1_fx8010_info() which apparently
isn't needed there. Upatched code uses: memset(info, 0, sizeof(info)); where 'info' is a pointer and therefore only first 4 bytes of 'info' gets cleared on a 32bit machine. Anyway looking at the code zeoring this memory region isn't needed at all because the snd_emu10k1_fx8010_info() function initializes all the 'info' fields on its own. So that's why this code works at all in its original form. This patch removes this redundant code. Also snd_emu10k1_fx8010_info() can't fail so lets save some bytes and change its return type to void. Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/pci/emu10k1/emufx.c')
-rw-r--r--sound/pci/emu10k1/emufx.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c
index febdd130a209..5967e60119fb 100644
--- a/sound/pci/emu10k1/emufx.c
+++ b/sound/pci/emu10k1/emufx.c
@@ -2440,14 +2440,13 @@ static void copy_string(char *dst, char *src, char *null, int idx)
2440 strcpy(dst, src); 2440 strcpy(dst, src);
2441} 2441}
2442 2442
2443static int snd_emu10k1_fx8010_info(struct snd_emu10k1 *emu, 2443static void snd_emu10k1_fx8010_info(struct snd_emu10k1 *emu,
2444 struct snd_emu10k1_fx8010_info *info) 2444 struct snd_emu10k1_fx8010_info *info)
2445{ 2445{
2446 char **fxbus, **extin, **extout; 2446 char **fxbus, **extin, **extout;
2447 unsigned short fxbus_mask, extin_mask, extout_mask; 2447 unsigned short fxbus_mask, extin_mask, extout_mask;
2448 int res; 2448 int res;
2449 2449
2450 memset(info, 0, sizeof(info));
2451 info->internal_tram_size = emu->fx8010.itram_size; 2450 info->internal_tram_size = emu->fx8010.itram_size;
2452 info->external_tram_size = emu->fx8010.etram_pages.bytes / 2; 2451 info->external_tram_size = emu->fx8010.etram_pages.bytes / 2;
2453 fxbus = fxbuses; 2452 fxbus = fxbuses;
@@ -2464,7 +2463,6 @@ static int snd_emu10k1_fx8010_info(struct snd_emu10k1 *emu,
2464 for (res = 16; res < 32; res++, extout++) 2463 for (res = 16; res < 32; res++, extout++)
2465 copy_string(info->extout_names[res], extout_mask & (1 << res) ? *extout : NULL, "Unused", res); 2464 copy_string(info->extout_names[res], extout_mask & (1 << res) ? *extout : NULL, "Unused", res);
2466 info->gpr_controls = emu->fx8010.gpr_count; 2465 info->gpr_controls = emu->fx8010.gpr_count;
2467 return 0;
2468} 2466}
2469 2467
2470static int snd_emu10k1_fx8010_ioctl(struct snd_hwdep * hw, struct file *file, unsigned int cmd, unsigned long arg) 2468static int snd_emu10k1_fx8010_ioctl(struct snd_hwdep * hw, struct file *file, unsigned int cmd, unsigned long arg)
@@ -2485,10 +2483,7 @@ static int snd_emu10k1_fx8010_ioctl(struct snd_hwdep * hw, struct file *file, un
2485 info = kmalloc(sizeof(*info), GFP_KERNEL); 2483 info = kmalloc(sizeof(*info), GFP_KERNEL);
2486 if (!info) 2484 if (!info)
2487 return -ENOMEM; 2485 return -ENOMEM;
2488 if ((res = snd_emu10k1_fx8010_info(emu, info)) < 0) { 2486 snd_emu10k1_fx8010_info(emu, info);
2489 kfree(info);
2490 return res;
2491 }
2492 if (copy_to_user(argp, info, sizeof(*info))) { 2487 if (copy_to_user(argp, info, sizeof(*info))) {
2493 kfree(info); 2488 kfree(info);
2494 return -EFAULT; 2489 return -EFAULT;