diff options
Diffstat (limited to 'sound/core/vmaster.c')
| -rw-r--r-- | sound/core/vmaster.c | 17 |
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); |
