Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e19a3c97 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman
Browse files

staging: comedi: comedi_buf: absorb comedi_write_array_to_buffer()



This function is only called by comedi_buf_write_samples(). Absorb it.

The buffer overflow was already checked so the overflow check of
comedi_buf_write_alloc() can be removed.

Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 8f907261
Loading
Loading
Loading
Loading
+9 −27
Original line number Original line Diff line number Diff line
@@ -474,31 +474,6 @@ static void comedi_buf_memcpy_from(struct comedi_subdevice *s,
	}
	}
}
}


static unsigned int comedi_write_array_to_buffer(struct comedi_subdevice *s,
						 const void *data,
						 unsigned int num_bytes)
{
	struct comedi_async *async = s->async;
	unsigned int retval;

	if (num_bytes == 0)
		return 0;

	retval = comedi_buf_write_alloc(s, num_bytes);
	if (retval != num_bytes) {
		dev_warn(s->device->class_dev, "buffer overrun\n");
		async->events |= COMEDI_CB_OVERFLOW;
		return 0;
	}

	comedi_buf_memcpy_to(s, data, num_bytes);
	comedi_buf_write_free(s, num_bytes);
	comedi_inc_scan_progress(s, num_bytes);
	async->events |= COMEDI_CB_BLOCK;

	return num_bytes;
}

/**
/**
 * comedi_buf_write_samples - write sample data to comedi buffer
 * comedi_buf_write_samples - write sample data to comedi buffer
 * @s: comedi_subdevice struct
 * @s: comedi_subdevice struct
@@ -524,9 +499,16 @@ unsigned int comedi_buf_write_samples(struct comedi_subdevice *s,
		return 0;
		return 0;
	}
	}


	nbytes = nsamples * bytes_per_sample(s);
	if (nsamples == 0)
		return 0;

	nbytes = comedi_buf_write_alloc(s, nsamples * bytes_per_sample(s));
	comedi_buf_memcpy_to(s, data, nbytes);
	comedi_buf_write_free(s, nbytes);
	comedi_inc_scan_progress(s, nbytes);
	s->async->events |= COMEDI_CB_BLOCK;


	return comedi_write_array_to_buffer(s, data, nbytes);
	return nbytes;
}
}
EXPORT_SYMBOL_GPL(comedi_buf_write_samples);
EXPORT_SYMBOL_GPL(comedi_buf_write_samples);