Re: [PATCH] x86/mm/dump_pagetables: Change to use DEFINE_SHOW_ATTRIBUTE macro

From: Kees Cook
Date: Thu Nov 29 2018 - 16:29:14 EST


On Wed, Nov 28, 2018 at 10:45 AM Dave Hansen <dave.hansen@xxxxxxxxx> wrote:
>
> On 11/27/18 2:50 PM, Kees Cook wrote:
> > On Mon, Nov 19, 2018 at 9:06 AM, Dave Hansen <dave.hansen@xxxxxxxxx> wrote:
> >> On 11/19/18 7:43 AM, Yangtao Li wrote:
> >>> -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);
> >>
> >> FWIW, I rather dislike this conversion and the DEFINE_SHOW_ATTRIBUTE()
> >> approach in general. It makes it basically impossible to go from
> >> ptdump_curusr to ptdump_open_curusr without opening up the macro and
> >> reverse-engineering it.
> >>
> >> My test is that for these macros to be sane, I need to be able to find
> >> "ptdump_open_curusr" by grepping for "ptdump_curusr". This fails the test.
> >
> > Er, "ptdump_curusr" matches the generated name "ptdump_curusr_show",
> > is that what you mean?
>
> Ahh, I also missed some of the renames to make this OK, like:
>
> > -static int ptdump_show_efi(struct seq_file *m, void *v)
> > +static int ptdump_efi_show(struct seq_file *m, void *v)
>
> I thought there was some macro magic going on that screwed the names up.
>
> This looks fine to me.
>
> Reviewed-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>

Cool, thanks!

Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>

Ingo, can you toss this in -tip please?

--
Kees Cook