All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Vimal Kumar <vimal.kumar32@gmail.com>
Cc: chinmoyghosh2001@gmail.com, Mintu Patel <mintupatel89@gmail.com>,
	Vishal Badole <badolevishal1116@gmail.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Pavel Machek <pavel@ucw.cz>, Len Brown <len.brown@intel.com>,
	linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1] PM: runtime: Add support to disable wakeup sources
Date: Sun, 21 Aug 2022 16:03:40 +0200	[thread overview]
Message-ID: <YwI7PM9wVF/H9hQL@kroah.com> (raw)
In-Reply-To: <20220821134533.22901-1-vimal.kumar32@gmail.com>

On Sun, Aug 21, 2022 at 07:15:32PM +0530, Vimal Kumar wrote:
> User could find many wakeup sources available in the bsp, which
> they won't be using. Currently users can only get the status and
> list of enabled wakeup sources, but users can't disable it runtime.
> It's very difficult to find the driver for each wakeup sources from
> where it's getting enabled and make the changes for disabling it.
> 
> This will help users to disable any wakeup sources at runtime,
> avoiding any code change and re-compilation. A new class attribute
> "disable_ws" will be added in the wakeup calss. If user want to disable
> any wakeup sources, user need to find the wakeup dev node associated
> with the particular wakeup source and write the devnode name to the
> class attribute "disable_ws".
> 
> Example:
> Need to disable the wakeup source '1c08000.qcom,pcie'. The dev node
> associated with this wakeup source is:
> cat /sys/class/wakeup3/name ==> "1c08000.qcom,pcie", then for disabling
> this wakeup source :
> 	echo wakeup3 > /sys/class/wakeup/disable_ws
> 
> Co-developed-by: Mintu Patel <mintupatel89@gmail.com>
> Signed-off-by: Mintu Patel <mintupatel89@gmail.com>
> Co-developed-by: Vishal Badole <badolevishal1116@gmail.com>
> Signed-off-by: Vishal Badole <badolevishal1116@gmail.com>
> Signed-off-by: Vimal Kumar <vimal.kumar32@gmail.com>
> ---
>  drivers/base/power/wakeup_stats.c | 63 ++++++++++++++++++++++++++++++-
>  1 file changed, 62 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/base/power/wakeup_stats.c b/drivers/base/power/wakeup_stats.c
> index 924fac493c4f..ad30e97f168b 100644
> --- a/drivers/base/power/wakeup_stats.c
> +++ b/drivers/base/power/wakeup_stats.c
> @@ -15,6 +15,7 @@
>  #include <linux/kobject.h>
>  #include <linux/slab.h>
>  #include <linux/timekeeping.h>
> +#include <linux/uaccess.h>
>  
>  #include "power.h"
>  
> @@ -208,9 +209,69 @@ void wakeup_source_sysfs_remove(struct wakeup_source *ws)
>  	device_unregister(ws->dev);
>  }
>  
> +static ssize_t disable_ws_store(struct class *class,
> +				struct class_attribute *attr,
> +				const char *buf, size_t len)
> +{
> +	struct device		*dev;
> +	struct wakeup_source	*ws;
> +	char                    *ws_name;
> +	int                     status;

Please don't pad these out to be in line like this, one space is all
that is needed.

> +
> +	ws_name = kzalloc(sizeof(*(buf)), GFP_KERNEL);

Are you sure this does what you think it does?  You are allocating 8
bytes?

> +	if (!ws_name)
> +		return -ENOMEM;
> +
> +	if (copy_from_user(ws_name, buf, sizeof(*(buf))))

Why are you doing this in a sysfs callback?

Did you test this code?  How?  Can you provide a test script for it
also?

This does not look correct at all :(

thanks,

greg k-h

  parent reply	other threads:[~2022-08-21 14:04 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-21 13:45 [PATCH v1] PM: runtime: Add support to disable wakeup sources Vimal Kumar
2022-08-21 14:01 ` Greg KH
2022-08-21 14:03 ` Greg KH [this message]
2022-08-27 11:40   ` Vimal Kumar
2022-09-01 15:56     ` Greg KH
2022-08-21 20:06 ` kernel test robot
2022-08-21 20:17 ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YwI7PM9wVF/H9hQL@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=badolevishal1116@gmail.com \
    --cc=chinmoyghosh2001@gmail.com \
    --cc=len.brown@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mintupatel89@gmail.com \
    --cc=pavel@ucw.cz \
    --cc=rafael@kernel.org \
    --cc=vimal.kumar32@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.