aboutsummaryrefslogtreecommitdiffstats
path: root/sound/core/sgbuf.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/core/sgbuf.c')
-rw-r--r--sound/core/sgbuf.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/sound/core/sgbuf.c b/sound/core/sgbuf.c
index 6e4d4ab34632..c30669f14ac0 100644
--- a/sound/core/sgbuf.c
+++ b/sound/core/sgbuf.c
@@ -68,21 +68,18 @@ void *snd_malloc_sgbuf_pages(struct device *device,
68 68
69 dmab->area = NULL; 69 dmab->area = NULL;
70 dmab->addr = 0; 70 dmab->addr = 0;
71 dmab->private_data = sgbuf = kmalloc(sizeof(*sgbuf), GFP_KERNEL); 71 dmab->private_data = sgbuf = kzalloc(sizeof(*sgbuf), GFP_KERNEL);
72 if (! sgbuf) 72 if (! sgbuf)
73 return NULL; 73 return NULL;
74 memset(sgbuf, 0, sizeof(*sgbuf));
75 sgbuf->dev = device; 74 sgbuf->dev = device;
76 pages = snd_sgbuf_aligned_pages(size); 75 pages = snd_sgbuf_aligned_pages(size);
77 sgbuf->tblsize = sgbuf_align_table(pages); 76 sgbuf->tblsize = sgbuf_align_table(pages);
78 sgbuf->table = kmalloc(sizeof(*sgbuf->table) * sgbuf->tblsize, GFP_KERNEL); 77 sgbuf->table = kcalloc(sgbuf->tblsize, sizeof(*sgbuf->table), GFP_KERNEL);
79 if (! sgbuf->table) 78 if (! sgbuf->table)
80 goto _failed; 79 goto _failed;
81 memset(sgbuf->table, 0, sizeof(*sgbuf->table) * sgbuf->tblsize); 80 sgbuf->page_table = kcalloc(sgbuf->tblsize, sizeof(*sgbuf->page_table), GFP_KERNEL);
82 sgbuf->page_table = kmalloc(sizeof(*sgbuf->page_table) * sgbuf->tblsize, GFP_KERNEL);
83 if (! sgbuf->page_table) 81 if (! sgbuf->page_table)
84 goto _failed; 82 goto _failed;
85 memset(sgbuf->page_table, 0, sizeof(*sgbuf->page_table) * sgbuf->tblsize);
86 83
87 /* allocate each page */ 84 /* allocate each page */
88 for (i = 0; i < pages; i++) { 85 for (i = 0; i < pages; i++) {