return 0;
 }
 
-static int ptdump_open(struct inode *inode, struct file *filp)
-{
-       return single_open(filp, ptdump_show, NULL);
-}
-
-static const struct file_operations ptdump_fops = {
-       .owner          = THIS_MODULE,
-       .open           = ptdump_open,
-       .read           = seq_read,
-       .llseek         = seq_lseek,
-       .release        = single_release,
-};
+DEFINE_SHOW_ATTRIBUTE(ptdump);
 
-static int ptdump_show_curknl(struct seq_file *m, void *v)
+static int ptdump_curknl_show(struct seq_file *m, void *v)
 {
        if (current->mm->pgd) {
                down_read(¤t->mm->mmap_sem);
        return 0;
 }
 
-static int ptdump_open_curknl(struct inode *inode, struct file *filp)
-{
-       return single_open(filp, ptdump_show_curknl, NULL);
-}
-
-static const struct file_operations ptdump_curknl_fops = {
-       .owner          = THIS_MODULE,
-       .open           = ptdump_open_curknl,
-       .read           = seq_read,
-       .llseek         = seq_lseek,
-       .release        = single_release,
-};
+DEFINE_SHOW_ATTRIBUTE(ptdump_curknl);
 
 #ifdef CONFIG_PAGE_TABLE_ISOLATION
 static struct dentry *pe_curusr;
 
-static int ptdump_show_curusr(struct seq_file *m, void *v)
+static int ptdump_curusr_show(struct seq_file *m, void *v)
 {
        if (current->mm->pgd) {
                down_read(¤t->mm->mmap_sem);
        return 0;
 }
 
-static int ptdump_open_curusr(struct inode *inode, struct file *filp)
-{
-       return single_open(filp, ptdump_show_curusr, NULL);
-}
-
-static const struct file_operations ptdump_curusr_fops = {
-       .owner          = THIS_MODULE,
-       .open           = ptdump_open_curusr,
-       .read           = seq_read,
-       .llseek         = seq_lseek,
-       .release        = single_release,
-};
+DEFINE_SHOW_ATTRIBUTE(ptdump_curusr);
 #endif
 
 #if defined(CONFIG_EFI) && defined(CONFIG_X86_64)
 static struct dentry *pe_efi;
 
-static int ptdump_show_efi(struct seq_file *m, void *v)
+static int ptdump_efi_show(struct seq_file *m, void *v)
 {
        if (efi_mm.pgd)
                ptdump_walk_pgd_level_debugfs(m, efi_mm.pgd, false);
        return 0;
 }
 
-static int ptdump_open_efi(struct inode *inode, struct file *filp)
-{
-       return single_open(filp, ptdump_show_efi, NULL);
-}
-
-static const struct file_operations ptdump_efi_fops = {
-       .owner          = THIS_MODULE,
-       .open           = ptdump_open_efi,
-       .read           = seq_read,
-       .llseek         = seq_lseek,
-       .release        = single_release,
-};
+DEFINE_SHOW_ATTRIBUTE(ptdump_efi);
 #endif
 
 static struct dentry *dir, *pe_knl, *pe_curknl;