summaryrefslogtreecommitdiff
path: root/sound/core/vmaster.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/core/vmaster.c')
-rw-r--r--sound/core/vmaster.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/sound/core/vmaster.c b/sound/core/vmaster.c
index c657659b236c..cd3dcaaf9f72 100644
--- a/sound/core/vmaster.c
+++ b/sound/core/vmaster.c
@@ -56,10 +56,10 @@ struct link_follower {
static int follower_update(struct link_follower *follower)
{
- struct snd_ctl_elem_value *uctl __free(kfree) = NULL;
int err, ch;
+ struct snd_ctl_elem_value *uctl __free(kfree) =
+ kzalloc_obj(*uctl);
- uctl = kzalloc(sizeof(*uctl), GFP_KERNEL);
if (!uctl)
return -ENOMEM;
uctl->id = follower->follower.id;
@@ -74,7 +74,6 @@ static int follower_update(struct link_follower *follower)
/* get the follower ctl info and save the initial values */
static int follower_init(struct link_follower *follower)
{
- struct snd_ctl_elem_info *uinfo __free(kfree) = NULL;
int err;
if (follower->info.count) {
@@ -84,7 +83,8 @@ static int follower_init(struct link_follower *follower)
return 0;
}
- uinfo = kmalloc(sizeof(*uinfo), GFP_KERNEL);
+ struct snd_ctl_elem_info *uinfo __free(kfree) =
+ kmalloc_obj(*uinfo);
if (!uinfo)
return -ENOMEM;
uinfo->id = follower->follower.id;
@@ -256,8 +256,7 @@ int _snd_ctl_add_follower(struct snd_kcontrol *master,
struct link_master *master_link = snd_kcontrol_chip(master);
struct link_follower *srec;
- srec = kzalloc(struct_size(srec, follower.vd, follower->count),
- GFP_KERNEL);
+ srec = kzalloc_flex(*srec, follower.vd, follower->count);
if (!srec)
return -ENOMEM;
srec->kctl = follower;
@@ -341,9 +340,9 @@ static int master_get(struct snd_kcontrol *kcontrol,
static int sync_followers(struct link_master *master, int old_val, int new_val)
{
struct link_follower *follower;
- struct snd_ctl_elem_value *uval __free(kfree) = NULL;
+ struct snd_ctl_elem_value *uval __free(kfree) =
+ kmalloc_obj(*uval);
- uval = kmalloc(sizeof(*uval), GFP_KERNEL);
if (!uval)
return -ENOMEM;
list_for_each_entry(follower, &master->followers, list) {
@@ -430,7 +429,7 @@ struct snd_kcontrol *snd_ctl_make_virtual_master(char *name,
knew.name = name;
knew.info = master_info;
- master = kzalloc(sizeof(*master), GFP_KERNEL);
+ master = kzalloc_obj(*master);
if (!master)
return NULL;
INIT_LIST_HEAD(&master->followers);