Re: [RFT PATCH v3 10/10] iio: Don't silently expect attribute types

From: Matti Vaittinen
Date: Mon Oct 10 2022 - 05:37:10 EST


On 10/9/22 20:38, Jonathan Cameron wrote:
On Thu, 6 Oct 2022 15:53:52 +0300
Matti Vaittinen <mazziesaccount@xxxxxxxxx> wrote:

Hi Claudiu,

On 10/6/22 11:35, Claudiu.Beznea@xxxxxxxxxxxxx wrote:
On 03.10.2022 11:13, Matti Vaittinen wrote:
The iio_triggered_buffer_setup_ext() and the
devm_iio_kfifo_buffer_setup_ext() were changed by
commit 15097c7a1adc ("iio: buffer: wrap all buffer attributes into iio_dev_attr")
to silently expect that all attributes given in buffer_attrs array are
device-attributes. This expectation was not forced by the API - and some
drivers did register attributes created by IIO_CONST_ATTR().

When using IIO_CONST_ATTRs the added attribute "wrapping" does not copy
the pointer to stored string constant and when the sysfs file is read the
kernel will access to invalid location.

Change the function signatures to expect an array of iio_dev_attrs to
avoid similar errors in the future.

Signed-off-by: Matti Vaittinen <mazziesaccount@xxxxxxxxx>

Tested-by: Claudiu Beznea <claudiu.beznea@xxxxxxxxxxxxx>

on SAMA5D2

Thanks a ton for the testing! I do _really_ appreciate it :) I am now
slightly more confident regarding the fix here - and a lot more
confident that we do have an actual bug (as you explained in the reply
to the first RFT) :)

You analysis was sound, so I've long been convinced ;)

Anyhow, one more coming through...
AD4130 v9 patch had same issue and so will also need updating with this
patch if it lands before yours.

Other than that static macro being ugly (which I can't improve on!)
all looks good to me, but I'll let it sit a while longer. If nothing
else I want to rebase the fixes-togreg tree on rc1 before putting the first
part of this series on top of it then letting them soak in next for
a few days,

Thanks Jonathan.

Can you please ping me if you want me to rebase/rework the series? (I may combine this with the kx022a-series then, but naturally not all patches in the series need to be applied at once. Eg, fixes can be taken in faster, kx022a part can be iterated, iterated, iterated... ;] ).

Yours
-- Matti

--
Matti Vaittinen
Linux kernel developer at ROHM Semiconductors
Oulu Finland

~~ When things go utterly wrong vim users can always type :help! ~~