Re: [PATCH v1] :reuse DEFINE_SHOW_ATTRIBUTE() macro

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux