mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 04:04:43 +01:00
iio: accel: Use iio_push_to_buffers_with_ts() to provide length for runtime checks.
This new function allows us to perform debug checks in the helper to ensure that the overrun does not occur. Use it in all the simple cases where either a static buffer or a structure is used in the drivers. Reviewed-by: David Lechner <dlechner@baylibre.com> Link: https://patch.msgid.link/20250413103443.2420727-11-jic23@kernel.org Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
c65d3f3f93
commit
edfafbd82f
14 changed files with 31 additions and 28 deletions
|
|
@ -666,8 +666,8 @@ static irqreturn_t adxl355_trigger_handler(int irq, void *p)
|
|||
if (ret)
|
||||
goto out_unlock_notify;
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &data->buffer,
|
||||
pf->timestamp);
|
||||
iio_push_to_buffers_with_ts(indio_dev, &data->buffer,
|
||||
sizeof(data->buffer), pf->timestamp);
|
||||
|
||||
out_unlock_notify:
|
||||
mutex_unlock(&data->lock);
|
||||
|
|
|
|||
|
|
@ -887,7 +887,7 @@ static irqreturn_t bma180_trigger_handler(int irq, void *p)
|
|||
|
||||
mutex_unlock(&data->mutex);
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, time_ns);
|
||||
iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan), time_ns);
|
||||
err:
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
||||
|
|
|
|||
|
|
@ -103,8 +103,8 @@ static irqreturn_t bma220_trigger_handler(int irq, void *p)
|
|||
if (ret < 0)
|
||||
goto err;
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
|
||||
pf->timestamp);
|
||||
iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan),
|
||||
pf->timestamp);
|
||||
err:
|
||||
mutex_unlock(&data->lock);
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
|
|
|||
|
|
@ -1591,8 +1591,9 @@ static irqreturn_t bma400_trigger_handler(int irq, void *p)
|
|||
data->buffer.temperature = temp;
|
||||
}
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &data->buffer,
|
||||
iio_get_time_ns(indio_dev));
|
||||
iio_push_to_buffers_with_ts(indio_dev, &data->buffer,
|
||||
sizeof(data->buffer),
|
||||
iio_get_time_ns(indio_dev));
|
||||
|
||||
mutex_unlock(&data->mutex);
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
|
|
|||
|
|
@ -983,8 +983,8 @@ static int fxls8962af_fifo_flush(struct iio_dev *indio_dev)
|
|||
sizeof(data->scan.channels[0]));
|
||||
}
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
|
||||
tstamp);
|
||||
iio_push_to_buffers_with_ts(indio_dev, &data->scan,
|
||||
sizeof(data->scan), tstamp);
|
||||
|
||||
tstamp += sample_period;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1253,8 +1253,8 @@ static irqreturn_t kxcjk1013_trigger_handler(int irq, void *p)
|
|||
if (ret < 0)
|
||||
goto err;
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
|
||||
data->timestamp);
|
||||
iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan),
|
||||
data->timestamp);
|
||||
err:
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
||||
|
|
|
|||
|
|
@ -229,9 +229,8 @@ static irqreturn_t kxsd9_trigger_handler(int irq, void *p)
|
|||
goto out;
|
||||
}
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev,
|
||||
&hw_values,
|
||||
iio_get_time_ns(indio_dev));
|
||||
iio_push_to_buffers_with_ts(indio_dev, &hw_values, sizeof(hw_values),
|
||||
iio_get_time_ns(indio_dev));
|
||||
out:
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
||||
|
|
|
|||
|
|
@ -103,8 +103,9 @@ static irqreturn_t mma7455_trigger_handler(int irq, void *p)
|
|||
if (ret)
|
||||
goto done;
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &mma7455->scan,
|
||||
iio_get_time_ns(indio_dev));
|
||||
iio_push_to_buffers_with_ts(indio_dev, &mma7455->scan,
|
||||
sizeof(mma7455->scan),
|
||||
iio_get_time_ns(indio_dev));
|
||||
|
||||
done:
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
|
|
|||
|
|
@ -1103,8 +1103,9 @@ static irqreturn_t mma8452_trigger_handler(int irq, void *p)
|
|||
if (ret < 0)
|
||||
goto done;
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &data->buffer,
|
||||
iio_get_time_ns(indio_dev));
|
||||
iio_push_to_buffers_with_ts(indio_dev, &data->buffer,
|
||||
sizeof(data->buffer),
|
||||
iio_get_time_ns(indio_dev));
|
||||
|
||||
done:
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
|
|
|||
|
|
@ -919,8 +919,8 @@ static irqreturn_t msa311_buffer_thread(int irq, void *p)
|
|||
|
||||
mutex_unlock(&msa311->lock);
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &buf,
|
||||
iio_get_time_ns(indio_dev));
|
||||
iio_push_to_buffers_with_ts(indio_dev, &buf, sizeof(buf),
|
||||
iio_get_time_ns(indio_dev));
|
||||
|
||||
notify_done:
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
|
|
|||
|
|
@ -335,8 +335,8 @@ static irqreturn_t mxc4005_trigger_handler(int irq, void *private)
|
|||
if (ret < 0)
|
||||
goto err;
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
|
||||
pf->timestamp);
|
||||
iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan),
|
||||
pf->timestamp);
|
||||
|
||||
err:
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
|
|
|||
|
|
@ -505,8 +505,9 @@ static irqreturn_t sca3300_trigger_handler(int irq, void *p)
|
|||
channels[i++] = val;
|
||||
}
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
|
||||
iio_get_time_ns(indio_dev));
|
||||
iio_push_to_buffers_with_ts(indio_dev, data->buffer,
|
||||
sizeof(data->buffer),
|
||||
iio_get_time_ns(indio_dev));
|
||||
out:
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
||||
|
|
|
|||
|
|
@ -460,8 +460,8 @@ static irqreturn_t stk8312_trigger_handler(int irq, void *p)
|
|||
}
|
||||
mutex_unlock(&data->lock);
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
|
||||
pf->timestamp);
|
||||
iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan),
|
||||
pf->timestamp);
|
||||
err:
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
||||
|
|
|
|||
|
|
@ -340,8 +340,8 @@ static irqreturn_t stk8ba50_trigger_handler(int irq, void *p)
|
|||
data->scan.chans[i++] = ret;
|
||||
}
|
||||
}
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
|
||||
pf->timestamp);
|
||||
iio_push_to_buffers_with_ts(indio_dev, &data->scan, sizeof(data->scan),
|
||||
pf->timestamp);
|
||||
err:
|
||||
mutex_unlock(&data->lock);
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue