Hi Andy, Thanks for the patch. On Sun, Apr 04, 2021 at 09:14:09PM +0300, Andy Shevchenko wrote: > When we continue, due to device is disabled, loop we have to drop reference count. > When we have an array full of devices we have to also drop the reference count. > Note, in this case the cio2_bridge_unregister_sensors() is called by the caller. Please limit the commit message to 75 chars, at least if there's no reason to do otherwise. I can wrap it this time. > > Fixes: 803abec64ef9 ("media: ipu3-cio2: Add cio2-bridge to ipu3-cio2 driver") > Cc: Daniel Scally <djrscally@xxxxxxxxx> > Cc: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > Signed-off-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> > --- > drivers/media/pci/intel/ipu3/cio2-bridge.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/media/pci/intel/ipu3/cio2-bridge.c b/drivers/media/pci/intel/ipu3/cio2-bridge.c > index c2199042d3db..85f8b587405e 100644 > --- a/drivers/media/pci/intel/ipu3/cio2-bridge.c > +++ b/drivers/media/pci/intel/ipu3/cio2-bridge.c > @@ -173,14 +173,15 @@ static int cio2_bridge_connect_sensor(const struct cio2_sensor_config *cfg, > int ret; > > for_each_acpi_dev_match(adev, cfg->hid, NULL, -1) { > - if (!adev->status.enabled) > + if (!adev->status.enabled) { > + acpi_dev_put(adev); > continue; > + } > > if (bridge->n_sensors >= CIO2_NUM_PORTS) { > + acpi_dev_put(adev); > dev_err(&cio2->dev, "Exceeded available CIO2 ports\n"); > - cio2_bridge_unregister_sensors(bridge); > - ret = -EINVAL; > - goto err_out; > + return -EINVAL; > } > > sensor = &bridge->sensors[bridge->n_sensors]; > @@ -228,7 +229,6 @@ static int cio2_bridge_connect_sensor(const struct cio2_sensor_config *cfg, > software_node_unregister_nodes(sensor->swnodes); > err_put_adev: > acpi_dev_put(sensor->adev); > -err_out: > return ret; > } > -- Regards, Sakari Ailus