]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: ccs: Fail the probe on CCS static data parser failure
authorMehdi Djait <mehdi.djait@linux.intel.com>
Thu, 12 Dec 2024 13:40:04 +0000 (14:40 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 19 Dec 2024 11:50:15 +0000 (12:50 +0100)
No need to continue probing when the CCS static data parser fails. Improve
this by checking the return value and correctly exiting on failure.

Signed-off-by: Mehdi Djait <mehdi.djait@linux.intel.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/i2c/ccs/ccs-core.c

index cb21df46bab169006eae64996fdec7e22ecf7f82..2cdab2f3d9dc3da9b565f35a1af198ae607ac7e6 100644 (file)
@@ -3335,9 +3335,11 @@ static int ccs_probe(struct i2c_client *client)
 
        rval = request_firmware(&fw, filename, &client->dev);
        if (!rval) {
-               ccs_data_parse(&sensor->sdata, fw->data, fw->size, &client->dev,
-                              true);
+               rval = ccs_data_parse(&sensor->sdata, fw->data, fw->size,
+                                     &client->dev, true);
                release_firmware(fw);
+               if (rval)
+                       goto out_power_off;
        }
 
        if (!(ccsdev->flags & CCS_DEVICE_FLAG_IS_SMIA) ||
@@ -3351,9 +3353,11 @@ static int ccs_probe(struct i2c_client *client)
 
                rval = request_firmware(&fw, filename, &client->dev);
                if (!rval) {
-                       ccs_data_parse(&sensor->mdata, fw->data, fw->size,
-                                      &client->dev, true);
+                       rval = ccs_data_parse(&sensor->mdata, fw->data,
+                                             fw->size, &client->dev, true);
                        release_firmware(fw);
+                       if (rval)
+                               goto out_release_sdata;
                }
        }