2022-08-18 13:14:59

by Joe Simmons-Talbott

[permalink] [raw]
Subject: [PATCH] iio: Avoid multiple line dereference for mask

Add a mask variable to hold dereferences that span multiple lines.
Found with checkpatch.pl.

Signed-off-by: Joe Simmons-Talbott <[email protected]>
---
drivers/iio/industrialio-core.c | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
index 67d3d01d2dac..549f2254c258 100644
--- a/drivers/iio/industrialio-core.c
+++ b/drivers/iio/industrialio-core.c
@@ -1291,6 +1291,7 @@ static int iio_device_add_channel_sysfs(struct iio_dev *indio_dev,
struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(indio_dev);
int ret, attrcount = 0;
const struct iio_chan_spec_ext_info *ext_info;
+ long *mask;

if (chan->channel < 0)
return 0;
@@ -1301,10 +1302,9 @@ static int iio_device_add_channel_sysfs(struct iio_dev *indio_dev,
return ret;
attrcount += ret;

+ mask = &chan->info_mask_separate_available;
ret = iio_device_add_info_mask_type_avail(indio_dev, chan,
- IIO_SEPARATE,
- &chan->
- info_mask_separate_available);
+ IIO_SEPARATE, mask);
if (ret < 0)
return ret;
attrcount += ret;
@@ -1316,10 +1316,9 @@ static int iio_device_add_channel_sysfs(struct iio_dev *indio_dev,
return ret;
attrcount += ret;

+ mask = &chan->info_mask_shared_by_type_available;
ret = iio_device_add_info_mask_type_avail(indio_dev, chan,
- IIO_SHARED_BY_TYPE,
- &chan->
- info_mask_shared_by_type_available);
+ IIO_SHARED_BY_TYPE, mask);
if (ret < 0)
return ret;
attrcount += ret;
@@ -1331,9 +1330,9 @@ static int iio_device_add_channel_sysfs(struct iio_dev *indio_dev,
return ret;
attrcount += ret;

+ mask = &chan->info_mask_shared_by_dir_available;
ret = iio_device_add_info_mask_type_avail(indio_dev, chan,
- IIO_SHARED_BY_DIR,
- &chan->info_mask_shared_by_dir_available);
+ IIO_SHARED_BY_DIR, mask);
if (ret < 0)
return ret;
attrcount += ret;
@@ -1345,9 +1344,9 @@ static int iio_device_add_channel_sysfs(struct iio_dev *indio_dev,
return ret;
attrcount += ret;

+ mask = &chan->info_mask_shared_by_all_available;
ret = iio_device_add_info_mask_type_avail(indio_dev, chan,
- IIO_SHARED_BY_ALL,
- &chan->info_mask_shared_by_all_available);
+ IIO_SHARED_BY_ALL, mask);
if (ret < 0)
return ret;
attrcount += ret;
--
2.37.2


2022-08-19 00:13:15

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] iio: Avoid multiple line dereference for mask

On Thu, 2022-08-18 at 08:58 -0400, Joe Simmons-Talbott wrote:
> Add a mask variable to hold dereferences that span multiple lines.
> Found with checkpatch.pl.
[]
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
[]
> @@ -1301,10 +1302,9 @@ static int iio_device_add_channel_sysfs(struct iio_dev *indio_dev,
> return ret;
> attrcount += ret;
>
> + mask = &chan->info_mask_separate_available;
> ret = iio_device_add_info_mask_type_avail(indio_dev, chan,
> - IIO_SEPARATE,
> - &chan->
> - info_mask_separate_available);
> + IIO_SEPARATE, mask);

The issue is the conflict between using 30+ character identifiers and 80 column lines.
Perhaps it's better just to use a longer line instead of a temporary.

ret = iio_device_add_info_mask_type_avail(indio_dev, chan, IIO_SEPARATE,
&chan->info_mask_separate_available);
[]

> @@ -1316,10 +1316,9 @@ static int iio_device_add_channel_sysfs(struct iio_dev *indio_dev,
> return ret;
> attrcount += ret;
>
> + mask = &chan->info_mask_shared_by_type_available;
> ret = iio_device_add_info_mask_type_avail(indio_dev, chan,
> - IIO_SHARED_BY_TYPE,
> - &chan->
> - info_mask_shared_by_type_available);
> + IIO_SHARED_BY_TYPE, mask);

ret = iio_device_add_info_mask_type_avail(indio_dev, chan, IIO_SHARED_BY_TYPE,
&chan->info_mask_shared_by_type_available);

etc...


2022-08-19 18:47:01

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH] iio: Avoid multiple line dereference for mask

On Thu, 18 Aug 2022 20:08:27 -0400
Joe Perches <[email protected]> wrote:

> On Thu, 2022-08-18 at 08:58 -0400, Joe Simmons-Talbott wrote:
> > Add a mask variable to hold dereferences that span multiple lines.
> > Found with checkpatch.pl.
> []
> > diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> []
> > @@ -1301,10 +1302,9 @@ static int iio_device_add_channel_sysfs(struct iio_dev *indio_dev,
> > return ret;
> > attrcount += ret;
> >
> > + mask = &chan->info_mask_separate_available;
> > ret = iio_device_add_info_mask_type_avail(indio_dev, chan,
> > - IIO_SEPARATE,
> > - &chan->
> > - info_mask_separate_available);
> > + IIO_SEPARATE, mask);
>
> The issue is the conflict between using 30+ character identifiers and 80 column lines.
> Perhaps it's better just to use a longer line instead of a temporary.
>
> ret = iio_device_add_info_mask_type_avail(indio_dev, chan, IIO_SEPARATE,
> &chan->info_mask_separate_available);

Agreed. Looks nicer to me this way and still under the wider 100 char limit
which is appropriate when readability is improved.

Some unfortunately long identifiers, that I think got there via evolution.
We should consider shortening them that's a job for a separate patch.


> []
>
> > @@ -1316,10 +1316,9 @@ static int iio_device_add_channel_sysfs(struct iio_dev *indio_dev,
> > return ret;
> > attrcount += ret;
> >
> > + mask = &chan->info_mask_shared_by_type_available;
> > ret = iio_device_add_info_mask_type_avail(indio_dev, chan,
> > - IIO_SHARED_BY_TYPE,
> > - &chan->
> > - info_mask_shared_by_type_available);
> > + IIO_SHARED_BY_TYPE, mask);
>
> ret = iio_device_add_info_mask_type_avail(indio_dev, chan, IIO_SHARED_BY_TYPE,
> &chan->info_mask_shared_by_type_available);
>
> etc...
>
>