ALSA: hda - Call snd_array_init() early and only once
This is a preliminary patch for introducing a protection to access races of snd_array instances. Call snd_array_init() appropriately at the initialization time and don't call it twice. Also the allocations of codec-spec structs are cleaned up by helper functions in patch_sigmatel.c and patch_analog.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Šī revīzija ir iekļauta:
@@ -241,6 +241,7 @@ static struct via_spec * via_new_spec(struct hda_codec *codec)
|
||||
if (spec == NULL)
|
||||
return NULL;
|
||||
|
||||
snd_array_init(&spec->kctls, sizeof(struct snd_kcontrol_new), 32);
|
||||
mutex_init(&spec->config_mutex);
|
||||
codec->spec = spec;
|
||||
spec->codec = codec;
|
||||
@@ -387,7 +388,6 @@ static struct snd_kcontrol_new *__via_clone_ctl(struct via_spec *spec,
|
||||
{
|
||||
struct snd_kcontrol_new *knew;
|
||||
|
||||
snd_array_init(&spec->kctls, sizeof(*knew), 32);
|
||||
knew = snd_array_new(&spec->kctls);
|
||||
if (!knew)
|
||||
return NULL;
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user