From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: "Jonathan Cameron" <jic23@kernel.org>,
"Lars-Peter Clausen" <lars@metafoo.de>,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
"Nuno Sa" <nuno.sa@analog.com>
Subject: Re: [PATCH v2 1/8] iio: core: Add opaque_struct_size() helper and use it
Date: Fri, 21 Jul 2023 20:27:50 +0300 [thread overview]
Message-ID: <ZLrAFmyWz7/gtOgF@smile.fi.intel.com> (raw)
In-Reply-To: <ZLq/eDDSblr2vlSA@smile.fi.intel.com>
On Fri, Jul 21, 2023 at 08:25:12PM +0300, Andy Shevchenko wrote:
> On Fri, Jul 21, 2023 at 08:22:35PM +0300, Andy Shevchenko wrote:
> > On Fri, Jul 21, 2023 at 08:00:15PM +0300, Andy Shevchenko wrote:
> > > Introduce opaque_struct_size() helper, which may be moved
> > > to overflow.h in the future, and use it in the IIO core.
...
> > > +#define opaque_struct_size(p, a, s) ({ \
> > > + size_t _psize = sizeof(*(p)); \
> > > + size_t _asize = ALIGN(_psize, (a)); \
> > > + size_t _ssize = s; \
> > > + _ssize ? size_add(_asize, _ssize) : _psize; \
> > > +})
> > > +
> > > +#define opaque_struct_data(p, a) \
> > > + ((void *)(p) + ALIGN(sizeof(*(p)), (a)))
> >
> > Hmm... This can potentially evaluate p twice.
> >
> > Perhaps this variant is better:
> >
> > #define opaque_struct_data(p, a) ALIGN((p) + 1, (a)))
> >
> > Besides, I don't think we should worry about @s evaluation in the main macro
> > which may be simplified to
> >
> > #define opaque_struct_size(p, a, s) \
> > ((s) ? size_add(ALIGN(sizeof(*(p)), (a)), (s)) : sizeof(*(p)))
> >
> > Thoughts?
>
> Also we may leave the struct always be aligned which makes the above even
> simpler (but might waste bytes if @s = 0).
>
> #define opaque_struct_size(p, a, s) size_add(ALIGN(sizeof(*(p)), (a)), (s))
>
> (with the respective documentation update).
Jonathan, this patch can be skipped and if you are okay with the rest, the rest
may be (clearly, I have just checked) applied without as there is no dependency.
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2023-07-21 17:27 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-21 17:00 [PATCH v2 0/8] iio: core: A few code cleanups and documentation fixes Andy Shevchenko
2023-07-21 17:00 ` [PATCH v2 1/8] iio: core: Add opaque_struct_size() helper and use it Andy Shevchenko
2023-07-21 17:22 ` Andy Shevchenko
2023-07-21 17:25 ` Andy Shevchenko
2023-07-21 17:27 ` Andy Shevchenko [this message]
2023-07-21 18:12 ` Uwe Kleine-König
2023-07-21 17:00 ` [PATCH v2 2/8] iio: core: Use sysfs_match_string() helper Andy Shevchenko
2023-07-22 17:11 ` Jonathan Cameron
2023-07-21 17:00 ` [PATCH v2 3/8] iio: core: Switch to krealloc_array() Andy Shevchenko
2023-07-22 17:28 ` Jonathan Cameron
2023-07-24 10:37 ` Andy Shevchenko
2023-07-21 17:00 ` [PATCH v2 4/8] iio: core: Use min() instead of min_t() to make code more robust Andy Shevchenko
2023-07-23 9:14 ` Jonathan Cameron
2023-07-21 17:00 ` [PATCH v2 5/8] iio: core: Get rid of redundant 'else' Andy Shevchenko
2023-07-23 9:16 ` Jonathan Cameron
2023-07-21 17:00 ` [PATCH v2 6/8] iio: core: Fix issues and style of the comments Andy Shevchenko
2023-07-21 20:48 ` Randy Dunlap
2023-07-21 21:37 ` andy.shevchenko
2023-07-23 9:21 ` Jonathan Cameron
2023-07-21 17:00 ` [PATCH v2 7/8] iio: core: Move initcalls closer to the respective calls Andy Shevchenko
2023-07-23 9:23 ` Jonathan Cameron
2023-07-24 10:53 ` Andy Shevchenko
2023-07-21 17:00 ` [PATCH v2 8/8] iio: core: Improve indentation in a few places Andy Shevchenko
2023-07-23 9:24 ` Jonathan Cameron
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=ZLrAFmyWz7/gtOgF@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=jic23@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=u.kleine-koenig@pengutronix.de \
/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.