Unverified Commit 8f93abaf authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!8905 ALSA: scarlett2: Add missing error checks to *_ctl_get()

parents 5e7b1b45 eca61be4
Loading
Loading
Loading
Loading
+30 −13
Original line number Diff line number Diff line
@@ -1032,14 +1032,20 @@ static int scarlett2_master_volume_ctl_get(struct snd_kcontrol *kctl,
	struct usb_mixer_elem_info *elem = kctl->private_data;
	struct usb_mixer_interface *mixer = elem->head.mixer;
	struct scarlett2_mixer_data *private = mixer->private_data;
	int err = 0;

	mutex_lock(&private->data_mutex);
	if (private->vol_updated)
		scarlett2_update_volumes(mixer);
	mutex_unlock(&private->data_mutex);
	if (private->vol_updated) {
		err = scarlett2_update_volumes(mixer);
		if (err < 0)
			goto unlock;
	}

	ucontrol->value.integer.value[0] = private->master_vol;
	return 0;

unlock:
	mutex_unlock(&private->data_mutex);
	return err;
}

static int scarlett2_volume_ctl_get(struct snd_kcontrol *kctl,
@@ -1049,14 +1055,19 @@ static int scarlett2_volume_ctl_get(struct snd_kcontrol *kctl,
	struct usb_mixer_interface *mixer = elem->head.mixer;
	struct scarlett2_mixer_data *private = mixer->private_data;
	int index = elem->control;
	int err = 0;

	mutex_lock(&private->data_mutex);
	if (private->vol_updated)
		scarlett2_update_volumes(mixer);
	mutex_unlock(&private->data_mutex);

	if (private->vol_updated) {
		err = scarlett2_update_volumes(mixer);
		if (err < 0)
			goto unlock;
	}
	ucontrol->value.integer.value[0] = private->vol[index];
	return 0;

unlock:
	mutex_unlock(&private->data_mutex);
	return err;
}

static int scarlett2_volume_ctl_put(struct snd_kcontrol *kctl,
@@ -1322,14 +1333,20 @@ static int scarlett2_button_ctl_get(struct snd_kcontrol *kctl,
	struct usb_mixer_elem_info *elem = kctl->private_data;
	struct usb_mixer_interface *mixer = elem->head.mixer;
	struct scarlett2_mixer_data *private = mixer->private_data;
	int err = 0;

	mutex_lock(&private->data_mutex);
	if (private->vol_updated)
		scarlett2_update_volumes(mixer);
	mutex_unlock(&private->data_mutex);
	if (private->vol_updated) {
		err = scarlett2_update_volumes(mixer);
		if (err < 0)
			goto unlock;
	}

	ucontrol->value.enumerated.item[0] = private->buttons[elem->control];
	return 0;

unlock:
	mutex_unlock(&private->data_mutex);
	return err;
}

static int scarlett2_button_ctl_put(struct snd_kcontrol *kctl,