@@ -246,7 +246,6 @@ static int rmi_f34_update_firmware(struct f34_data *f34,
246
246
(const struct rmi_f34_firmware * )fw -> data ;
247
247
u32 image_size = le32_to_cpu (syn_fw -> image_size );
248
248
u32 config_size = le32_to_cpu (syn_fw -> config_size );
249
- int ret ;
250
249
251
250
BUILD_BUG_ON (offsetof(struct rmi_f34_firmware , data ) !=
252
251
F34_FW_IMAGE_OFFSET );
@@ -267,8 +266,7 @@ static int rmi_f34_update_firmware(struct f34_data *f34,
267
266
dev_err (& f34 -> fn -> dev ,
268
267
"Bad firmware image: fw size %d, expected %d\n" ,
269
268
image_size , f34 -> v5 .fw_blocks * f34 -> v5 .block_size );
270
- ret = - EILSEQ ;
271
- goto out ;
269
+ return - EILSEQ ;
272
270
}
273
271
274
272
if (config_size &&
@@ -277,25 +275,18 @@ static int rmi_f34_update_firmware(struct f34_data *f34,
277
275
"Bad firmware image: config size %d, expected %d\n" ,
278
276
config_size ,
279
277
f34 -> v5 .config_blocks * f34 -> v5 .block_size );
280
- ret = - EILSEQ ;
281
- goto out ;
278
+ return - EILSEQ ;
282
279
}
283
280
284
281
if (image_size && !config_size ) {
285
282
dev_err (& f34 -> fn -> dev , "Bad firmware image: no config data\n" );
286
- ret = - EILSEQ ;
287
- goto out ;
283
+ return - EILSEQ ;
288
284
}
289
285
290
286
dev_info (& f34 -> fn -> dev , "Firmware image OK\n" );
291
- mutex_lock (& f34 -> v5 .flash_mutex );
292
-
293
- ret = rmi_f34_flash_firmware (f34 , syn_fw );
294
287
295
- mutex_unlock (& f34 -> v5 .flash_mutex );
296
-
297
- out :
298
- return ret ;
288
+ guard (mutex )(& f34 -> v5 .flash_mutex );
289
+ return rmi_f34_flash_firmware (f34 , syn_fw );
299
290
}
300
291
301
292
static int rmi_f34_status (struct rmi_function * fn )
@@ -461,9 +452,8 @@ static ssize_t rmi_driver_update_fw_store(struct device *dev,
461
452
{
462
453
struct rmi_driver_data * data = dev_get_drvdata (dev );
463
454
char fw_name [NAME_MAX ];
464
- const struct firmware * fw ;
465
455
size_t copy_count = count ;
466
- int ret ;
456
+ int error ;
467
457
468
458
if (count == 0 || count >= NAME_MAX )
469
459
return - EINVAL ;
@@ -474,17 +464,18 @@ static ssize_t rmi_driver_update_fw_store(struct device *dev,
474
464
memcpy (fw_name , buf , copy_count );
475
465
fw_name [copy_count ] = '\0' ;
476
466
477
- ret = request_firmware (& fw , fw_name , dev );
478
- if (ret )
479
- return ret ;
467
+ const struct firmware * fw __free (firmware ) = NULL ;
468
+ error = request_firmware (& fw , fw_name , dev );
469
+ if (error )
470
+ return error ;
480
471
481
472
dev_info (dev , "Flashing %s\n" , fw_name );
482
473
483
- ret = rmi_firmware_update (data , fw );
484
-
485
- release_firmware ( fw ) ;
474
+ error = rmi_firmware_update (data , fw );
475
+ if ( error )
476
+ return error ;
486
477
487
- return ret ?: count ;
478
+ return count ;
488
479
}
489
480
490
481
static DEVICE_ATTR (update_fw , 0200 , NULL, rmi_driver_update_fw_store ) ;
0 commit comments