On Mon, Nov 19, 2018 at 9:06 AM, Dave Hansen <[email protected]> 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? > I don't think saving a few lines of code is worth the obfuscation. This is the standard boilerplate for attributes, though. I'd be nice to drop all the copy/pasted code... -- Kees Cook

