forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/iio/buffer/industrialio-buffer-cb.c
....@@ -1,8 +1,5 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /* The industrial I/O callback buffer
2
- *
3
- * This program is free software; you can redistribute it and/or modify it
4
- * under the terms of the GNU General Public License version 2 as published by
5
- * the Free Software Foundation.
63 */
74
85 #include <linux/kernel.h>
....@@ -36,7 +33,8 @@
3633 static void iio_buffer_cb_release(struct iio_buffer *buffer)
3734 {
3835 struct iio_cb_buffer *cb_buff = buffer_to_cb_buffer(buffer);
39
- kfree(cb_buff->buffer.scan_mask);
36
+
37
+ bitmap_free(cb_buff->buffer.scan_mask);
4038 kfree(cb_buff);
4139 }
4240
....@@ -74,9 +72,8 @@
7472 }
7573
7674 cb_buff->indio_dev = cb_buff->channels[0].indio_dev;
77
- cb_buff->buffer.scan_mask
78
- = kcalloc(BITS_TO_LONGS(cb_buff->indio_dev->masklength),
79
- sizeof(long), GFP_KERNEL);
75
+ cb_buff->buffer.scan_mask = bitmap_zalloc(cb_buff->indio_dev->masklength,
76
+ GFP_KERNEL);
8077 if (cb_buff->buffer.scan_mask == NULL) {
8178 ret = -ENOMEM;
8279 goto error_release_channels;
....@@ -95,7 +92,7 @@
9592 return cb_buff;
9693
9794 error_free_scan_mask:
98
- kfree(cb_buff->buffer.scan_mask);
95
+ bitmap_free(cb_buff->buffer.scan_mask);
9996 error_release_channels:
10097 iio_channel_release_all(cb_buff->channels);
10198 error_free_cb_buff: