diff --git a/drivers/staging/comedi/drivers/comedi_fc.h b/drivers/staging/comedi/drivers/comedi_fc.h index 042bf87918c649b46686af8c1bdb50a792a7645b..b8d125e81a0f03d5e0ef6caa4818f596aca92eba 100644 --- a/drivers/staging/comedi/drivers/comedi_fc.h +++ b/drivers/staging/comedi/drivers/comedi_fc.h @@ -47,19 +47,20 @@ unsigned int cfc_handle_events(struct comedi_device *, static inline unsigned int cfc_bytes_per_scan(struct comedi_subdevice *s) { - int num_samples; - int bits_per_sample; + unsigned int chanlist_len = s->async->cmd.chanlist_len; + unsigned int num_samples; + unsigned int bits_per_sample; switch (s->type) { case COMEDI_SUBD_DI: case COMEDI_SUBD_DO: case COMEDI_SUBD_DIO: bits_per_sample = 8 * bytes_per_sample(s); - num_samples = (s->async->cmd.chanlist_len + - bits_per_sample - 1) / bits_per_sample; + num_samples = (chanlist_len + bits_per_sample - 1) / + bits_per_sample; break; default: - num_samples = s->async->cmd.chanlist_len; + num_samples = chanlist_len; break; } return num_samples * bytes_per_sample(s);