On Mon 2018-07-09 10:23:41, Andy Shevchenko wrote: > Reuse DEFINE_SHOW_ATTRIBUTE() macro instead of open coding file > operations followed by custom ->open() callbacks per each attribute. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Is it supposed to fix the "grep /sys" crash? > --- > arch/arm/mach-omap2/pm-debug.c | 37 ++++++---------------------------- > 1 file changed, 6 insertions(+), 31 deletions(-) > > diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c > index acb698d5780f..5a8839203958 100644 > --- a/arch/arm/mach-omap2/pm-debug.c > +++ b/arch/arm/mach-omap2/pm-debug.c > @@ -47,11 +47,6 @@ static int pm_dbg_init_done; > > static int pm_dbg_init(void); > > -enum { > - DEBUG_FILE_COUNTERS = 0, > - DEBUG_FILE_TIMERS, > -}; > - > static const char pwrdm_state_names[][PWRDM_MAX_PWRSTS] = { > "OFF", > "RET", > @@ -141,39 +136,21 @@ static int pwrdm_dbg_show_timer(struct powerdomain *pwrdm, void *user) > return 0; > } > > -static int pm_dbg_show_counters(struct seq_file *s, void *unused) > +static int pm_dbg_counters_show(struct seq_file *s, void *unused) > { > pwrdm_for_each(pwrdm_dbg_show_counter, s); > clkdm_for_each(clkdm_dbg_show_counter, s); > > return 0; > } > +DEFINE_SHOW_ATTRIBUTE(pm_dbg_counters); > > -static int pm_dbg_show_timers(struct seq_file *s, void *unused) > +static int pm_dbg_timers_show(struct seq_file *s, void *unused) > { > pwrdm_for_each(pwrdm_dbg_show_timer, s); > return 0; > } > - > -static int pm_dbg_open(struct inode *inode, struct file *file) > -{ > - switch ((int)inode->i_private) { > - case DEBUG_FILE_COUNTERS: > - return single_open(file, pm_dbg_show_counters, > - &inode->i_private); > - case DEBUG_FILE_TIMERS: > - default: > - return single_open(file, pm_dbg_show_timers, > - &inode->i_private); > - } > -} > - > -static const struct file_operations debug_fops = { > - .open = pm_dbg_open, > - .read = seq_read, > - .llseek = seq_lseek, > - .release = single_release, > -}; > +DEFINE_SHOW_ATTRIBUTE(pm_dbg_timers); > > static int pwrdm_suspend_get(void *data, u64 *val) > { > @@ -259,10 +236,8 @@ static int __init pm_dbg_init(void) > if (!d) > return -EINVAL; > > - (void) debugfs_create_file("count", S_IRUGO, > - d, (void *)DEBUG_FILE_COUNTERS, &debug_fops); > - (void) debugfs_create_file("time", S_IRUGO, > - d, (void *)DEBUG_FILE_TIMERS, &debug_fops); > + (void) debugfs_create_file("count", 0444, d, NULL, &pm_dbg_counters_fops); > + (void) debugfs_create_file("time", 0444, d, NULL, &pm_dbg_timers_fops); > > pwrdm_for_each(pwrdms_setup, (void *)d); > -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Attachment:
signature.asc
Description: Digital signature