Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7d8b7b4d authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman
Browse files

staging: comedi: usbdux: fix the cmd->start_arg use



For all cmd->start_src values this driver trivially validates that the
cmd->start_arg is 0.

For a TRIG_INT source, the cmd->start_arg is actually the valid trig_num
that is used by the async (*inttrig) callback.

Refactor the (*inttrig) functions so that the cmd->start_arg is used to
check the trig_num instead of the open coded values.

Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 95194590
Loading
Loading
Loading
Loading
+12 −10
Original line number Diff line number Diff line
@@ -692,15 +692,16 @@ static int receive_dux_commands(struct comedi_device *dev, unsigned int command)

static int usbdux_ai_inttrig(struct comedi_device *dev,
			     struct comedi_subdevice *s,
			     unsigned int trignum)
			     unsigned int trig_num)
{
	struct usbdux_private *devpriv = dev->private;
	int ret = -EINVAL;
	struct comedi_cmd *cmd = &s->async->cmd;
	int ret;

	down(&devpriv->sem);
	if (trig_num != cmd->start_arg)
		return -EINVAL;

	if (trignum != 0)
		goto ai_trig_exit;
	down(&devpriv->sem);

	if (!devpriv->ai_cmd_running) {
		devpriv->ai_cmd_running = 1;
@@ -913,15 +914,16 @@ static int usbdux_ao_insn_write(struct comedi_device *dev,

static int usbdux_ao_inttrig(struct comedi_device *dev,
			     struct comedi_subdevice *s,
			     unsigned int trignum)
			     unsigned int trig_num)
{
	struct usbdux_private *devpriv = dev->private;
	int ret = -EINVAL;
	struct comedi_cmd *cmd = &s->async->cmd;
	int ret;

	down(&devpriv->sem);
	if (trig_num != cmd->start_arg)
		return -EINVAL;

	if (trignum != 0)
		goto ao_trig_exit;
	down(&devpriv->sem);

	if (!devpriv->ao_cmd_running) {
		devpriv->ao_cmd_running = 1;