summaryrefslogtreecommitdiff
path: root/sound/pci/asihpi/hpicmn.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2010-11-19 14:49:35 +0300
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-11-19 14:49:35 +0300
commit9e18e1869f5ebac69f0d881fe97a198ebc0834db (patch)
tree18c5b5c185d39cbb50fa652b5e08d047c8cf06e1 /sound/pci/asihpi/hpicmn.c
parent04af964f9cb666caa7c1436d003f8fac0f1fedcc (diff)
parent460ed699f4c943e1ec4a8458869eb532fe31fd16 (diff)
downloadlinux-9e18e1869f5ebac69f0d881fe97a198ebc0834db.tar.xz
Merge branch 'next-samsung-asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into for-2.6.38
Diffstat (limited to 'sound/pci/asihpi/hpicmn.c')
-rw-r--r--sound/pci/asihpi/hpicmn.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/sound/pci/asihpi/hpicmn.c b/sound/pci/asihpi/hpicmn.c
index dda4f1c6f658..d67f4d3db911 100644
--- a/sound/pci/asihpi/hpicmn.c
+++ b/sound/pci/asihpi/hpicmn.c
@@ -571,14 +571,20 @@ struct hpi_control_cache *hpi_alloc_control_cache(const u32
{
struct hpi_control_cache *p_cache =
kmalloc(sizeof(*p_cache), GFP_KERNEL);
+ if (!p_cache)
+ return NULL;
+ p_cache->p_info =
+ kmalloc(sizeof(*p_cache->p_info) * number_of_controls,
+ GFP_KERNEL);
+ if (!p_cache->p_info) {
+ kfree(p_cache);
+ return NULL;
+ }
p_cache->cache_size_in_bytes = size_in_bytes;
p_cache->control_count = number_of_controls;
p_cache->p_cache =
(struct hpi_control_cache_single *)pDSP_control_buffer;
p_cache->init = 0;
- p_cache->p_info =
- kmalloc(sizeof(*p_cache->p_info) * p_cache->control_count,
- GFP_KERNEL);
return p_cache;
}