From: H Hartley Sweeten Date: Thu, 6 Sep 2012 01:50:39 +0000 (-0700) Subject: staging: comedi: ni_pcidio: remove subdevice pointer math X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=88892ca3cebe278b4eaa8ab692d45adb1c1439fc;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git staging: comedi: ni_pcidio: remove subdevice pointer math Convert the comedi_subdevice access from pointer math to array access. Signed-off-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/comedi/drivers/ni_pcidio.c b/drivers/staging/comedi/drivers/ni_pcidio.c index 0a55de968039..a83f52517567 100644 --- a/drivers/staging/comedi/drivers/ni_pcidio.c +++ b/drivers/staging/comedi/drivers/ni_pcidio.c @@ -480,7 +480,7 @@ static int ni_pcidio_poll(struct comedi_device *dev, struct comedi_subdevice *s) static irqreturn_t nidio_interrupt(int irq, void *d) { struct comedi_device *dev = d; - struct comedi_subdevice *s = dev->subdevices; + struct comedi_subdevice *s = &dev->subdevices[0]; struct comedi_async *async = s->async; struct mite_struct *mite = devpriv->mite; @@ -1252,8 +1252,8 @@ static int nidio_attach(struct comedi_device *dev, struct comedi_devconfig *it) if (!this_board->is_diodaq) { for (i = 0; i < this_board->n_8255; i++) { - subdev_8255_init(dev, dev->subdevices + i, - nidio96_8255_cb, + s = &dev->subdevices[i]; + subdev_8255_init(dev, s, nidio96_8255_cb, (unsigned long)(devpriv->mite-> daq_io_addr + NIDIO_8255_BASE(i))); @@ -1263,7 +1263,7 @@ static int nidio_attach(struct comedi_device *dev, struct comedi_devconfig *it) printk(KERN_INFO " rev=%d", readb(devpriv->mite->daq_io_addr + Chip_Version)); - s = dev->subdevices + 0; + s = &dev->subdevices[0]; dev->read_subdev = s; s->type = COMEDI_SUBD_DIO; @@ -1307,11 +1307,14 @@ static int nidio_attach(struct comedi_device *dev, struct comedi_devconfig *it) static void nidio_detach(struct comedi_device *dev) { + struct comedi_subdevice *s; int i; if (this_board && !this_board->is_diodaq) { - for (i = 0; i < this_board->n_8255; i++) - subdev_8255_cleanup(dev, dev->subdevices + i); + for (i = 0; i < this_board->n_8255; i++) { + s = &dev->subdevices[i]; + subdev_8255_cleanup(dev, s); + } } if (dev->irq) free_irq(dev->irq, dev);