lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250709164545.3af9f056@jic23-huawei>
Date: Wed, 9 Jul 2025 16:45:45 +0100
From: Jonathan Cameron <jic23@...nel.org>
To: Sakari Ailus <sakari.ailus@...ux.intel.com>
Cc: Subhajit Ghosh <subhajit.ghosh@...aklogic.com>, David Lechner
 <dlechner@...libre.com>, Nuno Sá <nuno.sa@...log.com>, Andy
 Shevchenko <andy@...nel.org>, Linus Walleij <linus.walleij@...aro.org>,
 Julien Stephan <jstephan@...libre.com>, Abhash Jha
 <abhashkumarjha123@...il.com>, Waqar Hameed <waqar.hameed@...s.com>,
 chuguangqing <chuguangqing@...pur.com>, Shreeya Patel
 <shreeya.patel@...labora.com>, Marek Vasut <marex@...x.de>, Al Viro
 <viro@...iv.linux.org.uk>, Vasileios Amoiridis <vassilisamir@...il.com>,
 Per-Daniel Olsson <perdaniel.olsson@...s.com>, Javier Carrasco
 <javier.carrasco.cruz@...il.com>, linux-iio@...r.kernel.org,
 linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 08/12] iio: light: Remove redundant
 pm_runtime_mark_last_busy() calls

On Wed,  9 Jul 2025 02:11:52 +0300
Sakari Ailus <sakari.ailus@...ux.intel.com> wrote:

> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@...ux.intel.com>
> Reviewed-by: Linus Walleij <linus.walleij@...aro.org>
> ---
>  drivers/iio/light/apds9306.c   |  2 --
>  drivers/iio/light/apds9960.c   |  1 -
>  drivers/iio/light/bh1780.c     |  1 -
>  drivers/iio/light/gp2ap002.c   |  2 --
>  drivers/iio/light/isl29028.c   | 11 +++--------
>  drivers/iio/light/ltrf216a.c   |  1 -
>  drivers/iio/light/pa12203001.c | 11 +++--------
>  drivers/iio/light/rpr0521.c    |  6 ++----
>  drivers/iio/light/tsl2583.c    | 12 +++---------
>  drivers/iio/light/tsl2591.c    |  2 --
>  drivers/iio/light/us5182d.c    | 12 +++---------
>  drivers/iio/light/vcnl4000.c   | 11 +++--------
>  drivers/iio/light/vcnl4035.c   | 11 +++--------
>  13 files changed, 20 insertions(+), 63 deletions(-)
> 
> diff --git a/drivers/iio/light/isl29028.c b/drivers/iio/light/isl29028.c
> index 0e4284823d44..374bccad9119 100644
> --- a/drivers/iio/light/isl29028.c
> +++ b/drivers/iio/light/isl29028.c
> @@ -336,16 +336,11 @@ static int isl29028_ir_get(struct isl29028_chip *chip, int *ir_data)
>  static int isl29028_set_pm_runtime_busy(struct isl29028_chip *chip, bool on)
>  {
>  	struct device *dev = regmap_get_device(chip->regmap);
> -	int ret;
>  
> -	if (on) {
> -		ret = pm_runtime_resume_and_get(dev);
> -	} else {
> -		pm_runtime_mark_last_busy(dev);
> -		ret = pm_runtime_put_autosuspend(dev);
> -	}
> +	if (on)
> +		return pm_runtime_resume_and_get(dev);
>  
> -	return ret;
> +	return pm_runtime_put_autosuspend(dev);
>  }
This is one that can definitely be squashed down to call sites given
the parameter is always hard coded.
>  
>  /* Channel IO */
> diff --git a/drivers/iio/light/ltrf216a.c b/drivers/iio/light/ltrf216a.c
> index 61f57a82b872..5f27f754fe1c 100644
> --- a/drivers/iio/light/ltrf216a.c
> +++ b/drivers/iio/light/ltrf216a.c
> @@ -208,7 +208,6 @@ static int ltrf216a_set_power_state(struct ltrf216a_data *data, bool on)
Also this one.
>  			return ret;
>  		}
>  	} else {
> -		pm_runtime_mark_last_busy(dev);
>  		pm_runtime_put_autosuspend(dev);
>  	}
>  

> diff --git a/drivers/iio/light/tsl2583.c b/drivers/iio/light/tsl2583.c
> index fc3b0c4226be..8801a491de77 100644
> --- a/drivers/iio/light/tsl2583.c
> +++ b/drivers/iio/light/tsl2583.c
> @@ -641,16 +641,10 @@ static const struct iio_chan_spec tsl2583_channels[] = {
>  
>  static int tsl2583_set_pm_runtime_busy(struct tsl2583_chip *chip, bool on)
And this one.
>  {
> -	int ret;
> +	if (on)
> +		return pm_runtime_resume_and_get(&chip->client->dev);
>  
> -	if (on) {
> -		ret = pm_runtime_resume_and_get(&chip->client->dev);
> -	} else {
> -		pm_runtime_mark_last_busy(&chip->client->dev);
> -		ret = pm_runtime_put_autosuspend(&chip->client->dev);
> -	}
> -
> -	return ret;
> +	return pm_runtime_put_autosuspend(&chip->client->dev);
>  }
>  
>  static int tsl2583_read_raw(struct iio_dev *indio_dev,




> diff --git a/drivers/iio/light/vcnl4000.c b/drivers/iio/light/vcnl4000.c
> index 90e7d4421abf..7d70bb71b432 100644
> --- a/drivers/iio/light/vcnl4000.c
> +++ b/drivers/iio/light/vcnl4000.c
> @@ -576,16 +576,11 @@ static bool vcnl4010_is_in_periodic_mode(struct vcnl4000_data *data)
>  static int vcnl4000_set_pm_runtime_state(struct vcnl4000_data *data, bool on)

And this one.

>  {
>  	struct device *dev = &data->client->dev;
> -	int ret;
>  
> -	if (on) {
> -		ret = pm_runtime_resume_and_get(dev);
> -	} else {
> -		pm_runtime_mark_last_busy(dev);
> -		ret = pm_runtime_put_autosuspend(dev);
> -	}
> +	if (on)
> +		return pm_runtime_resume_and_get(dev);
>  
> -	return ret;
> +	return pm_runtime_put_autosuspend(dev);
>  }
>  
>  static int vcnl4040_read_als_it(struct vcnl4000_data *data, int *val, int *val2)
> diff --git a/drivers/iio/light/vcnl4035.c b/drivers/iio/light/vcnl4035.c
> index 01bc99564f98..963747927425 100644
> --- a/drivers/iio/light/vcnl4035.c
> +++ b/drivers/iio/light/vcnl4035.c
> @@ -141,17 +141,12 @@ static const struct iio_trigger_ops vcnl4035_trigger_ops = {

And this one. All as follow up series though to keep this series focused
on just the dropping of the calls.
>  
>  static int vcnl4035_set_pm_runtime_state(struct vcnl4035_data *data, bool on)
>  {
> -	int ret;
>  	struct device *dev = &data->client->dev;
>  
> -	if (on) {
> -		ret = pm_runtime_resume_and_get(dev);
> -	} else {
> -		pm_runtime_mark_last_busy(dev);
> -		ret = pm_runtime_put_autosuspend(dev);
> -	}
> +	if (on)
> +		return pm_runtime_resume_and_get(dev);
>  
> -	return ret;
> +	return pm_runtime_put_autosuspend(dev);
>  }
>  
>  static int vcnl4035_read_info_raw(struct iio_dev *indio_dev,


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ