[PATCH 10/19] staging: comedi: cb_pcidda: check for subdev_8255_init() failure
H Hartley Sweeten
hartleys at visionengravers.com
Wed Oct 24 23:31:14 UTC 2012
The subdev_8255_init() can fail, make sure to check for it.
This board has two 8255 subdevices, one at iobase PCI bar2 and one
at iobase PCI bar2 + 4. Init the subdevices using a for() loop to
make the code a bit more concise.
Signed-off-by: H Hartley Sweeten <hsweeten at visionengravers.com>
Cc: Ian Abbott <abbotti at mev.co.uk>
Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
---
drivers/staging/comedi/drivers/cb_pcidda.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/staging/comedi/drivers/cb_pcidda.c b/drivers/staging/comedi/drivers/cb_pcidda.c
index 511401f..8371fa2a 100644
--- a/drivers/staging/comedi/drivers/cb_pcidda.c
+++ b/drivers/staging/comedi/drivers/cb_pcidda.c
@@ -520,11 +520,13 @@ static int cb_pcidda_attach_pci(struct comedi_device *dev,
s->range_table = thisboard->ranges;
s->insn_write = cb_pcidda_ao_winsn;
- /* two 8255 digital io subdevices */
- s = &dev->subdevices[1];
- subdev_8255_init(dev, s, NULL, iobase_8255);
- s = &dev->subdevices[2];
- subdev_8255_init(dev, s, NULL, iobase_8255 + PORT2A);
+ /* two 8255 digital io subdevices */
+ for (i = 0; i < 2; i++) {
+ s = &dev->subdevices[1 + i];
+ ret = subdev_8255_init(dev, s, NULL, iobase_8255 + (i * 4));
+ if (ret)
+ return ret;
+ }
/* Read the caldac eeprom data */
for (i = 0; i < EEPROM_SIZE; i++)
--
1.7.11
More information about the devel
mailing list