From 7158fddc165c23c82ac396b3db5bb10ecfaf646f Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 27 May 2014 10:12:39 -0700 Subject: [PATCH] staging: comedi: adl_pci9111: use comedi_fc helpers to validate timer args Use the comedi_fc helper, cfc_check_trigger_arg_is(), to validate the cmd->convert_arg for the convert_src TRIG_TIMER. Pass the local variable to i8253_cascade_ns_to_timer() instead of the cmd argument. This value is modified by that function to return the actual time (in nanoseconds) that the timer will be programmed with based on the calculated divisors. The cfc_check_trigger_arg_is() helper will then validate that the cmd->convert_arg is that value and modify it if not. Also use cfc_check_trigger_arg_is() to validate that the cmd->scan_begin_arg is the calculate value and modify it if not. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/adl_pci9111.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c b/drivers/staging/comedi/drivers/adl_pci9111.c index c84930ca8040..bb1d56e887ba 100644 --- a/drivers/staging/comedi/drivers/adl_pci9111.c +++ b/drivers/staging/comedi/drivers/adl_pci9111.c @@ -418,9 +418,8 @@ static int pci9111_ai_do_cmd_test(struct comedi_device *dev, i8253_cascade_ns_to_timer(I8254_OSC_BASE_2MHZ, &dev_private->div1, &dev_private->div2, - &cmd->convert_arg, cmd->flags); - if (cmd->convert_arg != arg) - err |= -EINVAL; + &arg, cmd->flags); + err |= cfc_check_trigger_arg_is(&cmd->convert_arg, arg); } /* @@ -433,10 +432,7 @@ static int pci9111_ai_do_cmd_test(struct comedi_device *dev, if (arg < cmd->scan_begin_arg) arg *= (cmd->scan_begin_arg / arg); - if (cmd->scan_begin_arg != arg) { - cmd->scan_begin_arg = arg; - err |= -EINVAL; - } + err |= cfc_check_trigger_arg_is(&cmd->scan_begin_arg, arg); } if (err) -- 2.39.5