drivers/iio/common/ssp_sensors/ssp_dev.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
If an error occurs after a successful mfd_add_devices() call, it should be
undone by a corresponding mfd_remove_devices() call, as already done in the
remove function.
Fixes: 50dd64d57eee ("iio: common: ssp_sensors: Add sensorhub driver")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
drivers/iio/common/ssp_sensors/ssp_dev.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/ssp_sensors/ssp_dev.c
index 1e167dc673ca..da09c9f3ceb6 100644
--- a/drivers/iio/common/ssp_sensors/ssp_dev.c
+++ b/drivers/iio/common/ssp_sensors/ssp_dev.c
@@ -503,7 +503,7 @@ static int ssp_probe(struct spi_device *spi)
ret = spi_setup(spi);
if (ret < 0) {
dev_err(&spi->dev, "Failed to setup spi\n");
- return ret;
+ goto err_setup_spi;
}
data->fw_dl_state = SSP_FW_DL_STATE_NONE;
@@ -568,6 +568,8 @@ static int ssp_probe(struct spi_device *spi)
err_setup_irq:
mutex_destroy(&data->pending_lock);
mutex_destroy(&data->comm_lock);
+err_setup_spi:
+ mfd_remove_devices(&spi->dev);
dev_err(&spi->dev, "Probe failed!\n");
--
2.51.0
On Fri, 2025-10-10 at 20:58 +0200, Christophe JAILLET wrote:
> If an error occurs after a successful mfd_add_devices() call, it should be
> undone by a corresponding mfd_remove_devices() call, as already done in the
> remove function.
>
> Fixes: 50dd64d57eee ("iio: common: ssp_sensors: Add sensorhub driver")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> ---
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
> drivers/iio/common/ssp_sensors/ssp_dev.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c
> b/drivers/iio/common/ssp_sensors/ssp_dev.c
> index 1e167dc673ca..da09c9f3ceb6 100644
> --- a/drivers/iio/common/ssp_sensors/ssp_dev.c
> +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c
> @@ -503,7 +503,7 @@ static int ssp_probe(struct spi_device *spi)
> ret = spi_setup(spi);
> if (ret < 0) {
> dev_err(&spi->dev, "Failed to setup spi\n");
> - return ret;
> + goto err_setup_spi;
> }
>
> data->fw_dl_state = SSP_FW_DL_STATE_NONE;
> @@ -568,6 +568,8 @@ static int ssp_probe(struct spi_device *spi)
> err_setup_irq:
> mutex_destroy(&data->pending_lock);
> mutex_destroy(&data->comm_lock);
> +err_setup_spi:
> + mfd_remove_devices(&spi->dev);
>
> dev_err(&spi->dev, "Probe failed!\n");
>
On Fri, 10 Oct 2025 19:56:41 +0100
Nuno Sá <noname.nuno@gmail.com> wrote:
> On Fri, 2025-10-10 at 20:58 +0200, Christophe JAILLET wrote:
> > If an error occurs after a successful mfd_add_devices() call, it should be
> > undone by a corresponding mfd_remove_devices() call, as already done in the
> > remove function.
> >
> > Fixes: 50dd64d57eee ("iio: common: ssp_sensors: Add sensorhub driver")
> > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> > ---
>
> Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Applied to my temporary fixes branch (I'll rebase on rc1) and marked
for stable.
Thanks,
Jonathan
>
> > drivers/iio/common/ssp_sensors/ssp_dev.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c
> > b/drivers/iio/common/ssp_sensors/ssp_dev.c
> > index 1e167dc673ca..da09c9f3ceb6 100644
> > --- a/drivers/iio/common/ssp_sensors/ssp_dev.c
> > +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c
> > @@ -503,7 +503,7 @@ static int ssp_probe(struct spi_device *spi)
> > ret = spi_setup(spi);
> > if (ret < 0) {
> > dev_err(&spi->dev, "Failed to setup spi\n");
> > - return ret;
> > + goto err_setup_spi;
> > }
> >
> > data->fw_dl_state = SSP_FW_DL_STATE_NONE;
> > @@ -568,6 +568,8 @@ static int ssp_probe(struct spi_device *spi)
> > err_setup_irq:
> > mutex_destroy(&data->pending_lock);
> > mutex_destroy(&data->comm_lock);
> > +err_setup_spi:
> > + mfd_remove_devices(&spi->dev);
> >
> > dev_err(&spi->dev, "Probe failed!\n");
> >
© 2016 - 2025 Red Hat, Inc.