From: H Hartley Sweeten Date: Wed, 24 Oct 2012 23:31:14 +0000 (-0700) Subject: staging: comedi: cb_pcidda: check for subdev_8255_init() failure X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=618351aed1dc9b0340bc755ffc0dba6caf190299;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git staging: comedi: cb_pcidda: check for subdev_8255_init() failure 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 Cc: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/comedi/drivers/cb_pcidda.c b/drivers/staging/comedi/drivers/cb_pcidda.c index 511401fbdeb7..8371fa2a1b7b 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++)