...instead of open coding file operations followed by custom ->open() callbacks per each attribute. Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> --- drivers/platform/x86/samsung-laptop.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c index d3cb26f6df73..03305e0b89ff 100644 --- a/drivers/platform/x86/samsung-laptop.c +++ b/drivers/platform/x86/samsung-laptop.c @@ -1252,7 +1252,7 @@ static int __init samsung_sysfs_init(struct samsung_laptop *samsung) } -static int show_call(struct seq_file *m, void *data) +static int samsung_laptop_call_show(struct seq_file *m, void *data) { struct samsung_laptop *samsung = m->private; struct sabi_data *sdata = &samsung->debug.data; @@ -1274,19 +1274,7 @@ static int show_call(struct seq_file *m, void *data) sdata->d0, sdata->d1, sdata->d2, sdata->d3); return 0; } - -static int samsung_debugfs_open(struct inode *inode, struct file *file) -{ - return single_open(file, show_call, inode->i_private); -} - -static const struct file_operations samsung_laptop_call_io_ops = { - .owner = THIS_MODULE, - .open = samsung_debugfs_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; +DEFINE_SHOW_ATTRIBUTE(samsung_laptop_call); static void samsung_debugfs_exit(struct samsung_laptop *samsung) { @@ -1351,7 +1339,7 @@ static int samsung_debugfs_init(struct samsung_laptop *samsung) dent = debugfs_create_file("call", S_IFREG | S_IRUGO, samsung->debug.root, samsung, - &samsung_laptop_call_io_ops); + &samsung_laptop_call_fops); if (!dent) goto error_debugfs; -- 2.15.1