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  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Thu, 21 May 2020 19:40:20 +0100
From:   Jonathan Cameron <jic23@...nel.org>
To:     Alexandru Ardelean <alexandru.ardelean@...log.com>
Cc:     <linux-kernel@...r.kernel.org>, <linux-iio@...r.kernel.org>,
        <ak@...klinger.de>
Subject: Re: [PATCH v2] iio: proximity: ping: pass reference to IIO device
 as param to ping_read()

On Mon, 18 May 2020 16:38:13 +0300
Alexandru Ardelean <alexandru.ardelean@...log.com> wrote:

> Since there will be some changes to how iio_priv_to_dev() is implemented,
> it could be that the helper becomes a bit slower, as it will be hidden away
> in the IIO core.
> 
> But even without that rework, this looks like it can pass the 'indio_dev'
> object to ping_read() and obtain the state struct via iio_priv() which is a
> preferred practice than going back-n-forth (getting the state-struct, then
> using iio_priv_to_dev() to get the indio_dev object back).
> 
> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@...log.com>
Seems trivial and unlikely to have any issues so I'll take this one
without waiting any longer.

Applied to the togreg branch of iio.git and pushed out as testing for
the autobuilders to play with it.

Thanks,

Jonathan

> ---
> 
> Changelog v1 -> v2:
> * split away from series
> * pass 'indio_dev' to ping_read() and get the info via iio_priv()
> 
>  drivers/iio/proximity/ping.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/iio/proximity/ping.c b/drivers/iio/proximity/ping.c
> index 12b893c5b0ee..2e99eeb27f2e 100644
> --- a/drivers/iio/proximity/ping.c
> +++ b/drivers/iio/proximity/ping.c
> @@ -89,14 +89,14 @@ static irqreturn_t ping_handle_irq(int irq, void *dev_id)
>  	return IRQ_HANDLED;
>  }
>  
> -static int ping_read(struct ping_data *data)
> +static int ping_read(struct iio_dev *indio_dev)
>  {
> +	struct ping_data *data = iio_priv(indio_dev);
>  	int ret;
>  	ktime_t ktime_dt;
>  	s64 dt_ns;
>  	u32 time_ns, distance_mm;
>  	struct platform_device *pdev = to_platform_device(data->dev);
> -	struct iio_dev *indio_dev = iio_priv_to_dev(data);
>  
>  	/*
>  	 * just one read-echo-cycle can take place at a time
> @@ -228,7 +228,6 @@ static int ping_read_raw(struct iio_dev *indio_dev,
>  			    struct iio_chan_spec const *channel, int *val,
>  			    int *val2, long info)
>  {
> -	struct ping_data *data = iio_priv(indio_dev);
>  	int ret;
>  
>  	if (channel->type != IIO_DISTANCE)
> @@ -236,7 +235,7 @@ static int ping_read_raw(struct iio_dev *indio_dev,
>  
>  	switch (info) {
>  	case IIO_CHAN_INFO_RAW:
> -		ret = ping_read(data);
> +		ret = ping_read(indio_dev);
>  		if (ret < 0)
>  			return ret;
>  		*val = ret;

Powered by blists - more mailing lists