staging: comedi: pcmuio: remove subdevice pointer math
authorH Hartley Sweeten <hartleys@visionengravers.com>
Thu, 6 Sep 2012 01:55:08 +0000 (18:55 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 6 Sep 2012 03:06:31 +0000 (20:06 -0700)
Convert the comedi_subdevice access from pointer math to array
access.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/pcmuio.c

index feef3d02f35a3967ddc5aaf76537eb8268e3ddcc..aba6b4516c5fdf2a3aa7f9cfebfa8967755d76b0 100644 (file)
@@ -456,6 +456,7 @@ static irqreturn_t interrupt_pcmuio(int irq, void *d)
 {
        int asic, got1 = 0;
        struct comedi_device *dev = (struct comedi_device *)d;
+       int i;
 
        for (asic = 0; asic < MAX_ASICS; ++asic) {
                if (irq == devpriv->asics[asic].irq) {
@@ -507,9 +508,8 @@ static irqreturn_t interrupt_pcmuio(int irq, void *d)
                                printk
                                    ("PCMUIO DEBUG: got edge detect interrupt %d asic %d which_chans: %06x\n",
                                     irq, asic, triggered);
-                               for (s = dev->subdevices;
-                                    s < dev->subdevices + dev->n_subdevices;
-                                    ++s) {
+                               for (i = 0; i < dev->n_subdevices; i++) {
+                                       s = &dev->subdevices[i];
                                        if (subpriv->intr.asic == asic) {       /* this is an interrupt subdev, and it matches this asic! */
                                                unsigned long flags;
                                                unsigned oldevents;
@@ -811,8 +811,8 @@ static int pcmuio_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        for (sdev_no = 0; sdev_no < (int)dev->n_subdevices; ++sdev_no) {
                int byte_no;
 
-               s = dev->subdevices + sdev_no;
-               s->private = devpriv->sprivs + sdev_no;
+               s = &dev->subdevices[sdev_no];
+               s->private = &devpriv->sprivs[sdev_no];
                s->maxdata = 1;
                s->range_table = &range_digital;
                s->subdev_flags = SDF_READABLE | SDF_WRITABLE;