On Thu, 15 Jun 2017 11:55:47 +0300 Mikko Koivunen <mikko.koivunen@xxxxxxxxxxxxxxxxx> wrote: > Change iio_device_register to devm_ > > Signed-off-by: Mikko Koivunen <mikko.koivunen@xxxxxxxxxxxxxxxxx> This leads to a race I think. Power is turned off in remove. Userspace interface is only removed after the remove call ends. Basic rule of thumb is that if you have anything in .remove then you can't use the devm_iio_device_register call. Jonathan > --- > > drivers/iio/light/rpr0521.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/drivers/iio/light/rpr0521.c b/drivers/iio/light/rpr0521.c > index ce576be..e00f427 100644 > --- a/drivers/iio/light/rpr0521.c > +++ b/drivers/iio/light/rpr0521.c > @@ -1025,7 +1025,7 @@ static int rpr0521_probe(struct i2c_client *client, > } > } > > - ret = iio_device_register(indio_dev); > + ret = devm_iio_device_register(indio_dev->dev.parent, indio_dev); > if (ret) > goto err_pm_disable; > > @@ -1045,8 +1045,6 @@ static int rpr0521_remove(struct i2c_client *client) > { > struct iio_dev *indio_dev = i2c_get_clientdata(client); > > - iio_device_unregister(indio_dev); > - > pm_runtime_disable(&client->dev); > pm_runtime_set_suspended(&client->dev); > pm_runtime_put_noidle(&client->dev); -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html