diff options
author | Navid Emamdoost <navid.emamdoost@gmail.com> | 2019-09-19 11:50:02 -0400 |
---|---|---|
committer | Jonathan Cameron <Jonathan.Cameron@huawei.com> | 2019-10-09 14:11:27 -0400 |
commit | ab612b1daf415b62c58e130cb3d0f30b255a14d0 (patch) | |
tree | d3fbab16914dbe3fbd6186bdf2fc4dcee12156b0 /drivers/iio | |
parent | dcb10920179ab74caf88a6f2afadecfc2743b910 (diff) |
iio: imu: adis16400: release allocated memory on failure
In adis_update_scan_mode, if allocation for adis->buffer fails,
previously allocated adis->xfer needs to be released.
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'drivers/iio')
-rw-r--r-- | drivers/iio/imu/adis_buffer.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/iio/imu/adis_buffer.c b/drivers/iio/imu/adis_buffer.c index 9ac8356d9a95..f446ff497809 100644 --- a/drivers/iio/imu/adis_buffer.c +++ b/drivers/iio/imu/adis_buffer.c | |||
@@ -78,8 +78,11 @@ int adis_update_scan_mode(struct iio_dev *indio_dev, | |||
78 | return -ENOMEM; | 78 | return -ENOMEM; |
79 | 79 | ||
80 | adis->buffer = kcalloc(indio_dev->scan_bytes, 2, GFP_KERNEL); | 80 | adis->buffer = kcalloc(indio_dev->scan_bytes, 2, GFP_KERNEL); |
81 | if (!adis->buffer) | 81 | if (!adis->buffer) { |
82 | kfree(adis->xfer); | ||
83 | adis->xfer = NULL; | ||
82 | return -ENOMEM; | 84 | return -ENOMEM; |
85 | } | ||
83 | 86 | ||
84 | rx = adis->buffer; | 87 | rx = adis->buffer; |
85 | tx = rx + scan_count; | 88 | tx = rx + scan_count; |