> From: linux-iio-owner@xxxxxxxxxxxxxxx <linux-iio-owner@xxxxxxxxxxxxxxx> On > Behalf Of Rohit Sarkar > Sent: Dienstag, 31. März 2020 13:48 > To: linux-iio@xxxxxxxxxxxxxxx > Cc: Bogdan, Dragos <Dragos.Bogdan@xxxxxxxxxx>; Rohit Sarkar > <rohitsarkar5398@xxxxxxxxx>; Lars-Peter Clausen <lars@xxxxxxxxxx>; > Hennerich, Michael <Michael.Hennerich@xxxxxxxxxx>; Stefan Popa > <stefan.popa@xxxxxxxxxx>; Jonathan Cameron <jic23@xxxxxxxxxx>; Hartmut > Knaack <knaack.h@xxxxxx>; Peter Meerwald-Stadler > <pmeerw@xxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx > Subject: [PATCH v2 1/2] iio: imu: adis16400: 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: Rohit Sarkar <rohitsarkar5398@xxxxxxxxx> > --- > drivers/iio/imu/adis16400.c | 19 ++++++++++--------- > 1 file changed, 10 insertions(+), 9 deletions(-) > > diff --git a/drivers/iio/imu/adis16400.c b/drivers/iio/imu/adis16400.c > index cfb1c19eb930..c8fcd40f58c0 100644 > --- a/drivers/iio/imu/adis16400.c > +++ b/drivers/iio/imu/adis16400.c > @@ -258,7 +258,7 @@ static int adis16400_show_product_id(void *arg, u64 > *val) > > return 0; > } > -DEFINE_SIMPLE_ATTRIBUTE(adis16400_product_id_fops, > +DEFINE_DEBUGFS_ATTRIBUTE(adis16400_product_id_fops, > adis16400_show_product_id, NULL, "%lld\n"); > > static int adis16400_show_flash_count(void *arg, u64 *val) > @@ -275,7 +275,7 @@ static int adis16400_show_flash_count(void *arg, u64 > *val) > > return 0; > } > -DEFINE_SIMPLE_ATTRIBUTE(adis16400_flash_count_fops, > +DEFINE_DEBUGFS_ATTRIBUTE(adis16400_flash_count_fops, > adis16400_show_flash_count, NULL, "%lld\n"); > > static int adis16400_debugfs_init(struct iio_dev *indio_dev) > @@ -283,15 +283,16 @@ static int adis16400_debugfs_init(struct iio_dev > *indio_dev) > struct adis16400_state *st = iio_priv(indio_dev); > > if (st->variant->flags & ADIS16400_HAS_SERIAL_NUMBER) > - debugfs_create_file("serial_number", 0400, > - indio_dev->debugfs_dentry, st, > - &adis16400_serial_number_fops); > + debugfs_create_file_unsafe("serial_number", 0400, > + indio_dev->debugfs_dentry, st, > + &adis16400_serial_number_fops); > if (st->variant->flags & ADIS16400_HAS_PROD_ID) > - debugfs_create_file("product_id", 0400, > + debugfs_create_file_unsafe("product_id", 0400, > + indio_dev->debugfs_dentry, st, > + &adis16400_product_id_fops); > + debugfs_create_file_unsafe("flash_count", 0400, > indio_dev->debugfs_dentry, st, > - &adis16400_product_id_fops); > - debugfs_create_file("flash_count", 0400, indio_dev->debugfs_dentry, > - st, &adis16400_flash_count_fops); > + &adis16400_flash_count_fops); > > return 0; > } Tested-by Nuno Sá <nuno.sa@xxxxxxxxxx> > -- > 2.23.0.385.gbc12974a89