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
| ||
|
Date: Fri, 15 May 2020 11:47:59 +0000 From: "Ardelean, Alexandru" <alexandru.Ardelean@...log.com> To: "linux-arm-kernel@...ts.infradead.org" <linux-arm-kernel@...ts.infradead.org>, "linux-stm32@...md-mailman.stormreply.com" <linux-stm32@...md-mailman.stormreply.com>, "Sa, Nuno" <Nuno.Sa@...log.com>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, "linux-iio@...r.kernel.org" <linux-iio@...r.kernel.org> CC: "ludovic.desroches@...rochip.com" <ludovic.desroches@...rochip.com>, "nicolas.ferre@...rochip.com" <nicolas.ferre@...rochip.com>, "alexandre.torgue@...com" <alexandre.torgue@...com>, "ak@...klinger.de" <ak@...klinger.de>, "jic23@...nel.org" <jic23@...nel.org>, "eugen.hristev@...rochip.com" <eugen.hristev@...rochip.com>, "mcoquelin.stm32@...il.com" <mcoquelin.stm32@...il.com>, "alexandre.belloni@...tlin.com" <alexandre.belloni@...tlin.com> Subject: Re: [PATCH v2 7/8] iio: core: simplify alloc alignment code On Fri, 2020-05-15 at 07:12 +0000, Sa, Nuno wrote: > Hey Alex, > > Just a small question... > > > From: linux-iio-owner@...r.kernel.org <linux-iio-owner@...r.kernel.org> > > On Behalf Of Alexandru Ardelean > > Sent: Donnerstag, 14. Mai 2020 15:17 > > To: linux-iio@...r.kernel.org; linux-arm-kernel@...ts.infradead.org; linux- > > stm32@...md-mailman.stormreply.com; linux-kernel@...r.kernel.org > > Cc: ludovic.desroches@...rochip.com; eugen.hristev@...rochip.com; > > jic23@...nel.org; nicolas.ferre@...rochip.com; > > alexandre.belloni@...tlin.com; alexandre.torgue@...com; > > mcoquelin.stm32@...il.com; ak@...klinger.de; Ardelean, Alexandru > > <alexandru.Ardelean@...log.com> > > Subject: [PATCH v2 7/8] iio: core: simplify alloc alignment code > > > > There was a recent discussion about this code: > > https://urldefense.com/v3/__https://lore.kernel.org/linux- > > iio/20200322165317.0b1f0674@...hlinux/__;!!A3Ni8CS0y2Y!pgdUSayJCfxMiE > > w8Fpv0LkEZurCSkX0sEcLnXeDSCLmhpu1xont6-vBQj3ZbCw$ > > > > This looks like a good time to rework this, since any issues about it > > should pop-up under testing, because the iio_dev is having a bit of an > > overhaul and stuff being moved to iio_dev_priv. > > > > Signed-off-by: Alexandru Ardelean <alexandru.ardelean@...log.com> > > --- > > drivers/iio/industrialio-core.c | 10 +++------- > > 1 file changed, 3 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio- > > core.c > > index a1b29e0f8fd6..7671d36efae7 100644 > > --- a/drivers/iio/industrialio-core.c > > +++ b/drivers/iio/industrialio-core.c > > @@ -1514,13 +1514,9 @@ struct iio_dev *iio_device_alloc(int sizeof_priv) > > struct iio_dev *dev; > > size_t alloc_size; > > > > - alloc_size = sizeof(struct iio_dev_opaque); > > - if (sizeof_priv) { > > - alloc_size = ALIGN(alloc_size, IIO_ALIGN); > > - alloc_size += sizeof_priv; > > - } > > - /* ensure 32-byte alignment of whole construct ? */ > > - alloc_size += IIO_ALIGN - 1; > > + alloc_size = ALIGN(sizeof(struct iio_dev_opaque), IIO_ALIGN); > > + if (sizeof_priv) > > + alloc_size += ALIGN(sizeof_priv, IIO_ALIGN); > > Do we actually need to do the `ALIGN` again? It seems to me that `alloc_size > += sizeof_priv` > would be enough or am I missing something obvious? Well, it's not always clear what value 'sizeof_priv' has, and whether it is provided already aligned. The requirement is usually that this data be cacheline aligned. So, sizeof(struct iio_dev_opaque) is aligned already a few lines above, but the private information should also be aligned [given that it's an unknown value provided by the driver]. I think this is mostly important, if we need to do DMA access to buffers allocated on the driver's state-struct, which is allocated here, and which is usually provided as sizeof_priv. Tbh, the discussions around this alignment/cacheline-alignment are a bit fuzzy to me. I haven't run into any of these complicated issues. > > - Nuno Sá >
Powered by blists - more mailing lists