const struct boardtype *this_board = dev->board_ptr;
        struct pci1710_private *devpriv = dev->private;
        struct comedi_cmd *cmd = &s->async->cmd;
-       int m, samplesinbuf;
+       unsigned int nsamples;
+       unsigned int m;
 
        m = inw(dev->iobase + PCI171x_STATUS);
        if (!(m & Status_FH)) {
                return;
        }
 
-       samplesinbuf = this_board->fifo_half_size;
-       if (samplesinbuf * sizeof(short) >= s->async->prealloc_bufsz) {
-               m = s->async->prealloc_bufsz / sizeof(short);
+       nsamples = this_board->fifo_half_size;
+       if (comedi_samples_to_bytes(s, nsamples) >= s->async->prealloc_bufsz) {
+               m = comedi_bytes_to_samples(s, s->async->prealloc_bufsz);
                if (move_block_from_fifo(dev, s, m, 0))
                        return;
-               samplesinbuf -= m;
+               nsamples -= m;
        }
 
-       if (samplesinbuf) {
-               if (move_block_from_fifo(dev, s, samplesinbuf, 1))
+       if (nsamples) {
+               if (move_block_from_fifo(dev, s, nsamples, 1))
                        return;
        }