From: Dmitry Rokosov <DDRokosov@sberdevices.ru> To: "robh+dt@kernel.org" <robh+dt@kernel.org>, "jic23@kernel.org" <jic23@kernel.org>, "lars@metafoo.de" <lars@metafoo.de>, "andy.shevchenko@gmail.com" <andy.shevchenko@gmail.com>, "lorenzo.bianconi83@gmail.com" <lorenzo.bianconi83@gmail.com>, "linus.walleij@linaro.org" <linus.walleij@linaro.org>, "stephan@gerhold.net" <stephan@gerhold.net>, "hdegoede@redhat.com" <hdegoede@redhat.com>, "antoniu.miclaus@analog.com" <antoniu.miclaus@analog.com>, "sean@geanix.com" <sean@geanix.com>, "linmq006@gmail.com" <linmq006@gmail.com>, "gwendal@chromium.org" <gwendal@chromium.org>, "yangyingliang@huawei.com" <yangyingliang@huawei.com> Cc: "linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>, kernel <kernel@sberdevices.ru>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Dmitry Rokosov <DDRokosov@sberdevices.ru> Subject: [PATCH v1 3/5] iio:accel:mxc4005: rearrange iio trigger get and register Date: Mon, 23 May 2022 16:41:48 +0000 [thread overview] Message-ID: <20220523164159.11579-4-ddrokosov@sberdevices.ru> (raw) In-Reply-To: <20220523164159.11579-1-ddrokosov@sberdevices.ru> IIO trigger interface function iio_trigger_get() should be called after iio_trigger_register() (or its devm analogue) strictly, because of iio_trigger_get() acquires module refcnt based on the trigger->owner pointer, which is initialized inside iio_trigger_register() to THIS_MODULE. If this call order is wrong, the next iio_trigger_put() (from sysfs callbacks or rmmod) will derefence "default" module refcnt, which is completely incorrect. Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru> --- drivers/iio/accel/mxc4005.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/iio/accel/mxc4005.c b/drivers/iio/accel/mxc4005.c index b3afbf064915..df600d2917c0 100644 --- a/drivers/iio/accel/mxc4005.c +++ b/drivers/iio/accel/mxc4005.c @@ -456,8 +456,6 @@ static int mxc4005_probe(struct i2c_client *client, data->dready_trig->ops = &mxc4005_trigger_ops; iio_trigger_set_drvdata(data->dready_trig, indio_dev); - indio_dev->trig = data->dready_trig; - iio_trigger_get(indio_dev->trig); ret = devm_iio_trigger_register(&client->dev, data->dready_trig); if (ret) { @@ -465,6 +463,8 @@ static int mxc4005_probe(struct i2c_client *client, "failed to register trigger\n"); return ret; } + + indio_dev->trig = iio_trigger_get(data->dready_trig); } return devm_iio_device_register(&client->dev, indio_dev); -- 2.36.0
next prev parent reply other threads:[~2022-05-23 16:43 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-05-23 16:41 [PATCH v1 0/5] iio: treewide: rearrange iio trig get/register Dmitry Rokosov 2022-05-23 16:41 ` [PATCH v1 1/5] iio:accel:bma180: rearrange iio trigger get and register Dmitry Rokosov 2022-05-23 16:41 ` [PATCH v1 2/5] iio:accel:kxcjk-1013: " Dmitry Rokosov 2022-05-23 16:41 ` Dmitry Rokosov [this message] 2022-05-23 16:41 ` [PATCH v1 4/5] iio:chemical:ccs811: " Dmitry Rokosov 2022-05-23 17:40 ` [PATCH v1 0/5] iio: treewide: rearrange iio trig get/register Andy Shevchenko 2022-05-23 19:06 ` Dmitry Rokosov 2022-05-23 18:36 ` [PATCH v1 5/5] iio:humidity:hts221: rearrange iio trigger get and register Dmitry Rokosov
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=20220523164159.11579-4-ddrokosov@sberdevices.ru \ --to=ddrokosov@sberdevices.ru \ --cc=andy.shevchenko@gmail.com \ --cc=antoniu.miclaus@analog.com \ --cc=gwendal@chromium.org \ --cc=hdegoede@redhat.com \ --cc=jic23@kernel.org \ --cc=kernel@sberdevices.ru \ --cc=lars@metafoo.de \ --cc=linmq006@gmail.com \ --cc=linus.walleij@linaro.org \ --cc=linux-iio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lorenzo.bianconi83@gmail.com \ --cc=robh+dt@kernel.org \ --cc=sean@geanix.com \ --cc=stephan@gerhold.net \ --cc=yangyingliang@huawei.com \ --subject='Re: [PATCH v1 3/5] iio:accel:mxc4005: rearrange iio trigger get and register' \ /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
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.