On 27/11/15 13:55, Lars-Peter Clausen wrote: > The SPI tx and rx buffers are both supposed to be scan_bytes amount of > bytes large and a common allocation is used to allocate both buffers. This > puts the beginning of the tx buffer scan_bytes bytes after the rx buffer. > The initialization of the tx buffer pointer is done adding scan_bytes to > the beginning of the rx buffer, but since the rx buffer is of type __be16 > this will actually add two times as much and the tx buffer ends up pointing > after the allocated buffer. > > Fix this by using scan_count, which is scan_bytes / 2, instead of > scan_bytes when initializing the tx buffer pointer. > > Fixes: aacff892cbd5 ("staging:iio:adis: Preallocate transfer message") > Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx> Applied to my local fixes branch - will push out once Greg has caught up with last pull request - don't want to muddy the waters! Jonathan > --- > Apologies if you got this twice, forgot the mailinglist on the first try. > --- > drivers/iio/imu/adis_buffer.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/iio/imu/adis_buffer.c b/drivers/iio/imu/adis_buffer.c > index cb32b59..36607d5 100644 > --- a/drivers/iio/imu/adis_buffer.c > +++ b/drivers/iio/imu/adis_buffer.c > @@ -43,7 +43,7 @@ int adis_update_scan_mode(struct iio_dev *indio_dev, > return -ENOMEM; > > rx = adis->buffer; > - tx = rx + indio_dev->scan_bytes; > + tx = rx + scan_count; > > spi_message_init(&adis->msg); > > -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html