The function usbduxsigma_getstatusinfo() returns a negative
value in case there has been a communication error with
the board. This should always work and if this communication
fails then there is something seriously wrong with the board.
This is now returned to the caller so that it can
terminte the auto attachement. The return command also prevents
printing out the offset value in case of a fault.

Signed-off-by: Bernd Porr <m...@berndporr.me.uk>
---
 drivers/staging/comedi/drivers/usbduxsigma.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/comedi/drivers/usbduxsigma.c 
b/drivers/staging/comedi/drivers/usbduxsigma.c
index 194c686..ff521b3 100644
--- a/drivers/staging/comedi/drivers/usbduxsigma.c
+++ b/drivers/staging/comedi/drivers/usbduxsigma.c
@@ -1655,9 +1655,11 @@ static int usbduxsigma_auto_attach(struct comedi_device 
*dev,
        }
 
        offset = usbduxsigma_getstatusinfo(dev, 0);
-       if (offset < 0)
+       if (offset < 0) {
                dev_err(dev->class_dev,
-                       "Communication to USBDUXSIGMA failed! Check firmware 
and cabling\n");
+                       "Communication to USBDUXSIGMA failed! Check firmware 
and cabling.\n");
+               return offset;
+       }
 
        dev_info(dev->class_dev, "attached, ADC_zero = %x\n", offset);
 
-- 
1.8.5.2

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to