[ALSA] usb-audio - Add a proper error check
The error in check_hw_params_convention() has to be checked and handled properly. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
841b23d4d7
commit
5a220c868e
@ -1762,8 +1762,10 @@ static int check_hw_params_convention(struct snd_usb_substream *subs)
|
|||||||
|
|
||||||
channels = kcalloc(MAX_MASK, sizeof(u32), GFP_KERNEL);
|
channels = kcalloc(MAX_MASK, sizeof(u32), GFP_KERNEL);
|
||||||
rates = kcalloc(MAX_MASK, sizeof(u32), GFP_KERNEL);
|
rates = kcalloc(MAX_MASK, sizeof(u32), GFP_KERNEL);
|
||||||
if (!channels || !rates)
|
if (!channels || !rates) {
|
||||||
|
err = -ENOMEM;
|
||||||
goto __out;
|
goto __out;
|
||||||
|
}
|
||||||
|
|
||||||
list_for_each(p, &subs->fmt_list) {
|
list_for_each(p, &subs->fmt_list) {
|
||||||
struct audioformat *f;
|
struct audioformat *f;
|
||||||
@ -1916,7 +1918,10 @@ static int setup_hw_info(struct snd_pcm_runtime *runtime, struct snd_usb_substre
|
|||||||
1000 * MIN_PACKS_URB,
|
1000 * MIN_PACKS_URB,
|
||||||
/*(nrpacks * MAX_URBS) * 1000*/ UINT_MAX);
|
/*(nrpacks * MAX_URBS) * 1000*/ UINT_MAX);
|
||||||
|
|
||||||
if (check_hw_params_convention(subs)) {
|
err = check_hw_params_convention(subs);
|
||||||
|
if (err < 0)
|
||||||
|
return err;
|
||||||
|
else if (err) {
|
||||||
hwc_debug("setting extra hw constraints...\n");
|
hwc_debug("setting extra hw constraints...\n");
|
||||||
if ((err = snd_pcm_hw_rule_add(runtime, 0, SNDRV_PCM_HW_PARAM_RATE,
|
if ((err = snd_pcm_hw_rule_add(runtime, 0, SNDRV_PCM_HW_PARAM_RATE,
|
||||||
hw_rule_rate, subs,
|
hw_rule_rate, subs,
|
||||||
|
Loading…
Reference in New Issue
Block a user