Re: [PATCH 32/38] staging: comedi: amplc_pci230: chanlist is valid after Step 1 of (*do_cmdtest)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2014-05-27 18:31, H Hartley Sweeten wrote:
THe comedi core ensures that the chanlist will be valid for any async operation
other than Step 1 of the (*do_cmdtest) to get the trigger source masks.

Remove the unnecessary checks.

Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Cc: Ian Abbott <abbotti@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

NAK. It only ensures chanlist_len is non-zero for the COMEDI_CMD ioctl, not for the COMEDI_CMDTEST ioctl. So both chanlist_len checks are necessary below.

---
  drivers/staging/comedi/drivers/amplc_pci230.c | 33 +++++++++++----------------
  1 file changed, 13 insertions(+), 20 deletions(-)

diff --git a/drivers/staging/comedi/drivers/amplc_pci230.c b/drivers/staging/comedi/drivers/amplc_pci230.c
index 3895bc7..c87260c 100644
--- a/drivers/staging/comedi/drivers/amplc_pci230.c
+++ b/drivers/staging/comedi/drivers/amplc_pci230.c
@@ -1511,16 +1511,12 @@ static int pci230_ao_cancel(struct comedi_device *dev,

  static int pci230_ai_check_scan_period(struct comedi_cmd *cmd)
  {
-	unsigned int min_scan_period, chanlist_len;
+	unsigned int min_scan_period;
  	int err = 0;

-	chanlist_len = cmd->chanlist_len;
-	if (cmd->chanlist_len == 0)
-		chanlist_len = 1;
-
-	min_scan_period = chanlist_len * cmd->convert_arg;
-	if ((min_scan_period < chanlist_len)
-	    || (min_scan_period < cmd->convert_arg)) {
+	min_scan_period = cmd->chanlist_len * cmd->convert_arg;
+	if ((min_scan_period < cmd->chanlist_len) ||
+	    (min_scan_period < cmd->convert_arg)) {
  		/* Arithmetic overflow. */
  		min_scan_period = UINT_MAX;
  		err++;
@@ -1703,19 +1699,16 @@ static int pci230_ai_cmdtest(struct comedi_device *dev,
  		unsigned int max_speed_ai;

  		if (devpriv->hwver == 0) {
-			/* PCI230 or PCI260.  Max speed depends whether
-			 * single-ended or pseudo-differential. */
-			if (cmd->chanlist && (cmd->chanlist_len > 0)) {
-				/* Peek analogue reference of first channel. */
-				if (CR_AREF(cmd->chanlist[0]) == AREF_DIFF)
-					max_speed_ai = MAX_SPEED_AI_DIFF;
-				else
-					max_speed_ai = MAX_SPEED_AI_SE;
-
-			} else {
-				/* No channel list.  Assume single-ended. */
+			/*
+			 * PCI230 or PCI260.  Max speed depends whether
+			 * single-ended or pseudo-differential.
+			 *
+			 * Peek analogue reference of first channel.
+			 */
+			if (CR_AREF(cmd->chanlist[0]) == AREF_DIFF)
+				max_speed_ai = MAX_SPEED_AI_DIFF;
+			else
  				max_speed_ai = MAX_SPEED_AI_SE;
-			}
  		} else {
  			/* PCI230+ or PCI260+. */
  			max_speed_ai = MAX_SPEED_AI_PLUS;



--
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti@xxxxxxxxx>        )=-
-=( Tel: +44 (0)161 477 1898   FAX: +44 (0)161 718 3587         )=-
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux