Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

iio: buffer: move __iio_buffer_free_sysfs_and_mask() before alloc

The __iio_buffer_free_sysfs_and_mask() function will be used in
iio_buffer_alloc_sysfs_and_mask() when multiple buffers will be attached to
the IIO device.
This will need to be used to cleanup resources on each buffer, when the
buffers cleanup unwind will occur on the error path.

The move is done in this patch to make the patch that adds multiple buffers
per IIO device a bit cleaner.

Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Link: https://lore.kernel.org/r/20210215104043.91251-18-alexandru.ardelean@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

authored by

Alexandru Ardelean and committed by
Jonathan Cameron
0224af85 be24dcb1

+8 -8
+8 -8
drivers/iio/industrialio-buffer.c
··· 1444 1444 return ret; 1445 1445 } 1446 1446 1447 + static void __iio_buffer_free_sysfs_and_mask(struct iio_buffer *buffer) 1448 + { 1449 + bitmap_free(buffer->scan_mask); 1450 + kfree(buffer->buffer_group.name); 1451 + kfree(buffer->buffer_group.attrs); 1452 + iio_free_chan_devattr_list(&buffer->buffer_attr_list); 1453 + } 1454 + 1447 1455 int iio_buffer_alloc_sysfs_and_mask(struct iio_dev *indio_dev) 1448 1456 { 1449 1457 struct iio_buffer *buffer = indio_dev->buffer; ··· 1471 1463 return 0; 1472 1464 1473 1465 return __iio_buffer_alloc_sysfs_and_mask(buffer, indio_dev, 0); 1474 - } 1475 - 1476 - static void __iio_buffer_free_sysfs_and_mask(struct iio_buffer *buffer) 1477 - { 1478 - bitmap_free(buffer->scan_mask); 1479 - kfree(buffer->buffer_group.name); 1480 - kfree(buffer->buffer_group.attrs); 1481 - iio_free_chan_devattr_list(&buffer->buffer_attr_list); 1482 1466 } 1483 1467 1484 1468 void iio_buffer_free_sysfs_and_mask(struct iio_dev *indio_dev)