Commit 2ca73823 authored by Rohit Sarkar's avatar Rohit Sarkar Committed by Jonathan Cameron

iio: imu: adis16460: use DEFINE_DEBUGFS_ATTRIBUTE instead of DEFINE_SIMPLE_ATTRIBUTE

debugfs_create_file_unsafe does not protect the fops handed to it
against file removal. DEFINE_DEBUGFS_ATTRIBUTE makes the fops aware of
the file lifetime and thus protects it against removal.
Signed-off-by: default avatarRohit Sarkar <rohitsarkar5398@gmail.com>
Tested-by Nuno Sá <nuno.sa@analog.com>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent ae1d37a9
...@@ -87,7 +87,7 @@ static int adis16460_show_serial_number(void *arg, u64 *val) ...@@ -87,7 +87,7 @@ static int adis16460_show_serial_number(void *arg, u64 *val)
return 0; return 0;
} }
DEFINE_SIMPLE_ATTRIBUTE(adis16460_serial_number_fops, DEFINE_DEBUGFS_ATTRIBUTE(adis16460_serial_number_fops,
adis16460_show_serial_number, NULL, "0x%.4llx\n"); adis16460_show_serial_number, NULL, "0x%.4llx\n");
static int adis16460_show_product_id(void *arg, u64 *val) static int adis16460_show_product_id(void *arg, u64 *val)
...@@ -105,7 +105,7 @@ static int adis16460_show_product_id(void *arg, u64 *val) ...@@ -105,7 +105,7 @@ static int adis16460_show_product_id(void *arg, u64 *val)
return 0; return 0;
} }
DEFINE_SIMPLE_ATTRIBUTE(adis16460_product_id_fops, DEFINE_DEBUGFS_ATTRIBUTE(adis16460_product_id_fops,
adis16460_show_product_id, NULL, "%llu\n"); adis16460_show_product_id, NULL, "%llu\n");
static int adis16460_show_flash_count(void *arg, u64 *val) static int adis16460_show_flash_count(void *arg, u64 *val)
...@@ -123,19 +123,22 @@ static int adis16460_show_flash_count(void *arg, u64 *val) ...@@ -123,19 +123,22 @@ static int adis16460_show_flash_count(void *arg, u64 *val)
return 0; return 0;
} }
DEFINE_SIMPLE_ATTRIBUTE(adis16460_flash_count_fops, DEFINE_DEBUGFS_ATTRIBUTE(adis16460_flash_count_fops,
adis16460_show_flash_count, NULL, "%lld\n"); adis16460_show_flash_count, NULL, "%lld\n");
static int adis16460_debugfs_init(struct iio_dev *indio_dev) static int adis16460_debugfs_init(struct iio_dev *indio_dev)
{ {
struct adis16460 *adis16460 = iio_priv(indio_dev); struct adis16460 *adis16460 = iio_priv(indio_dev);
debugfs_create_file("serial_number", 0400, indio_dev->debugfs_dentry, debugfs_create_file_unsafe("serial_number", 0400,
adis16460, &adis16460_serial_number_fops); indio_dev->debugfs_dentry, adis16460,
debugfs_create_file("product_id", 0400, indio_dev->debugfs_dentry, &adis16460_serial_number_fops);
adis16460, &adis16460_product_id_fops); debugfs_create_file_unsafe("product_id", 0400,
debugfs_create_file("flash_count", 0400, indio_dev->debugfs_dentry, indio_dev->debugfs_dentry, adis16460,
adis16460, &adis16460_flash_count_fops); &adis16460_product_id_fops);
debugfs_create_file_unsafe("flash_count", 0400,
indio_dev->debugfs_dentry, adis16460,
&adis16460_flash_count_fops);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment