/**************************************/
 
 int mite_buf_change(struct mite_dma_descriptor_ring *ring,
-                   struct comedi_async *async)
+                   struct comedi_subdevice *s)
 {
+       struct comedi_async *async = s->async;
        unsigned int n_links;
        int i;
 
                               n_links * sizeof(struct mite_dma_descriptor),
                               &ring->descriptors_dma_addr, GFP_KERNEL);
        if (!ring->descriptors) {
-               dev_err(async->subdevice->device->class_dev,
+               dev_err(s->device->class_dev,
                        "mite: ring buffer allocation failed\n");
                return -ENOMEM;
        }
 
 void mite_prep_dma(struct mite_channel *mite_chan,
                   unsigned int num_device_bits, unsigned int num_memory_bits);
 int mite_buf_change(struct mite_dma_descriptor_ring *ring,
-                   struct comedi_async *async);
+                   struct comedi_subdevice *s);
 
 static inline int CHAN_OFFSET(int channel)
 {
 
        struct ni_gpct *counter = s->private;
        int ret;
 
-       ret = mite_buf_change(mite_ring(devpriv, counter), s->async);
+       ret = mite_buf_change(mite_ring(devpriv, counter), s);
        if (ret < 0)
                return ret;
 
 
        struct nidio96_private *devpriv = dev->private;
        int ret;
 
-       ret = mite_buf_change(devpriv->di_mite_ring, s->async);
+       ret = mite_buf_change(devpriv->di_mite_ring, s);
        if (ret < 0)
                return ret;
 
 
        struct ni_private *devpriv = dev->private;
        int ret;
 
-       ret = mite_buf_change(devpriv->ai_mite_ring, s->async);
+       ret = mite_buf_change(devpriv->ai_mite_ring, s);
        if (ret < 0)
                return ret;
 
        struct ni_private *devpriv = dev->private;
        int ret;
 
-       ret = mite_buf_change(devpriv->ao_mite_ring, s->async);
+       ret = mite_buf_change(devpriv->ao_mite_ring, s);
        if (ret < 0)
                return ret;
 
        struct ni_private *devpriv = dev->private;
        int ret;
 
-       ret = mite_buf_change(devpriv->gpct_mite_ring[0], s->async);
+       ret = mite_buf_change(devpriv->gpct_mite_ring[0], s);
        if (ret < 0)
                return ret;
 
        struct ni_private *devpriv = dev->private;
        int ret;
 
-       ret = mite_buf_change(devpriv->gpct_mite_ring[1], s->async);
+       ret = mite_buf_change(devpriv->gpct_mite_ring[1], s);
        if (ret < 0)
                return ret;
 
        struct ni_private *devpriv = dev->private;
        int ret;
 
-       ret = mite_buf_change(devpriv->cdo_mite_ring, s->async);
+       ret = mite_buf_change(devpriv->cdo_mite_ring, s);
        if (ret < 0)
                return ret;