Skip to content

Commit

Permalink
staging: comedi: cb_pcidda: check for subdev_8255_init() failure
Browse files Browse the repository at this point in the history
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@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Oct 25, 2012
1 parent 2730c73 commit 618351a
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions drivers/staging/comedi/drivers/cb_pcidda.c
Original file line number Diff line number Diff line change
Expand Up @@ -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++)
Expand Down

0 comments on commit 618351a

Please sign in to comment.