diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-02-27 11:49:05 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-02-27 11:49:05 -0500 |
commit | cccc65a3b60edaf721cdee5a14f68ba009341822 (patch) | |
tree | a458d28f70cbe0e848596aad6005442a2621d388 /sound | |
parent | ba70d0614728892b86b2be2f7eae0c696b436461 (diff) | |
parent | e95a9ec1bb66e07b138861c743192f06e7b3e4de (diff) |
Merge branch 'master'
Diffstat (limited to 'sound')
-rw-r--r-- | sound/core/control_compat.c | 16 | ||||
-rw-r--r-- | sound/drivers/opl3/opl3_oss.c | 2 | ||||
-rw-r--r-- | sound/isa/cs423x/cs4236.c | 2 |
3 files changed, 13 insertions, 7 deletions
diff --git a/sound/core/control_compat.c b/sound/core/control_compat.c index 418c6d4e5daf..a529b62972b4 100644 --- a/sound/core/control_compat.c +++ b/sound/core/control_compat.c | |||
@@ -167,7 +167,7 @@ static int get_ctl_type(struct snd_card *card, struct snd_ctl_elem_id *id, | |||
167 | int *countp) | 167 | int *countp) |
168 | { | 168 | { |
169 | struct snd_kcontrol *kctl; | 169 | struct snd_kcontrol *kctl; |
170 | struct snd_ctl_elem_info info; | 170 | struct snd_ctl_elem_info *info; |
171 | int err; | 171 | int err; |
172 | 172 | ||
173 | down_read(&card->controls_rwsem); | 173 | down_read(&card->controls_rwsem); |
@@ -176,13 +176,19 @@ static int get_ctl_type(struct snd_card *card, struct snd_ctl_elem_id *id, | |||
176 | up_read(&card->controls_rwsem); | 176 | up_read(&card->controls_rwsem); |
177 | return -ENXIO; | 177 | return -ENXIO; |
178 | } | 178 | } |
179 | info.id = *id; | 179 | info = kzalloc(sizeof(*info), GFP_KERNEL); |
180 | err = kctl->info(kctl, &info); | 180 | if (info == NULL) { |
181 | up_read(&card->controls_rwsem); | ||
182 | return -ENOMEM; | ||
183 | } | ||
184 | info->id = *id; | ||
185 | err = kctl->info(kctl, info); | ||
181 | up_read(&card->controls_rwsem); | 186 | up_read(&card->controls_rwsem); |
182 | if (err >= 0) { | 187 | if (err >= 0) { |
183 | err = info.type; | 188 | err = info->type; |
184 | *countp = info.count; | 189 | *countp = info->count; |
185 | } | 190 | } |
191 | kfree(info); | ||
186 | return err; | 192 | return err; |
187 | } | 193 | } |
188 | 194 | ||
diff --git a/sound/drivers/opl3/opl3_oss.c b/sound/drivers/opl3/opl3_oss.c index 31f1f2e25aa0..0345ae647681 100644 --- a/sound/drivers/opl3/opl3_oss.c +++ b/sound/drivers/opl3/opl3_oss.c | |||
@@ -146,7 +146,7 @@ void snd_opl3_init_seq_oss(struct snd_opl3 *opl3, char *name) | |||
146 | void snd_opl3_free_seq_oss(struct snd_opl3 *opl3) | 146 | void snd_opl3_free_seq_oss(struct snd_opl3 *opl3) |
147 | { | 147 | { |
148 | if (opl3->oss_seq_dev) { | 148 | if (opl3->oss_seq_dev) { |
149 | snd_device_free(opl3->card, opl3->oss_seq_dev); | 149 | /* The instance should have been released in prior */ |
150 | opl3->oss_seq_dev = NULL; | 150 | opl3->oss_seq_dev = NULL; |
151 | } | 151 | } |
152 | } | 152 | } |
diff --git a/sound/isa/cs423x/cs4236.c b/sound/isa/cs423x/cs4236.c index 4fa431040564..99a42138bea0 100644 --- a/sound/isa/cs423x/cs4236.c +++ b/sound/isa/cs423x/cs4236.c | |||
@@ -414,7 +414,7 @@ static int __devinit snd_card_cs423x_pnpc(int dev, struct snd_card_cs4236 *acard | |||
414 | } | 414 | } |
415 | /* MPU initialization */ | 415 | /* MPU initialization */ |
416 | if (acard->mpu && mpu_port[dev] > 0) { | 416 | if (acard->mpu && mpu_port[dev] > 0) { |
417 | if (snd_cs423x_pnp_init_mpu(dev, acard->ctrl, cfg) < 0) | 417 | if (snd_cs423x_pnp_init_mpu(dev, acard->mpu, cfg) < 0) |
418 | goto error; | 418 | goto error; |
419 | } | 419 | } |
420 | kfree(cfg); | 420 | kfree(cfg); |