@@ -308,6 +308,30 @@ static int do_bootm_efi(struct image_data *data)
308308 return 0 ;
309309}
310310
311+ static bool ramdisk_is_fit (struct image_data * data ) {
312+
313+ if (bootm_signed_images_are_forced ())
314+ return true;
315+
316+ if (data -> initrd_file )
317+ return false;
318+
319+ return data -> os_fit ? (bool )fit_has_image (data -> os_fit ,
320+ data -> fit_config , "ramdisk" ) : false;
321+ }
322+
323+ static bool fdt_is_fit (struct image_data * data ) {
324+
325+ if (bootm_signed_images_are_forced ())
326+ return true;
327+
328+ if (data -> oftree_file )
329+ return false;
330+
331+ return data -> os_fit ? (bool )fit_has_image (data -> os_fit ,
332+ data -> fit_config , "fdt" ) : false;
333+ }
334+
311335static int efi_load_os (struct image_data * data , efi_handle_t * h ,
312336 struct efi_loaded_image * * loaded_image )
313337{
@@ -361,23 +385,21 @@ static int efi_load_ramdisk(struct image_data *data)
361385 struct efi_linux_initrd * efi_initrd ;
362386 const void * initrd ;
363387 unsigned long initrd_size ;
364- bool from_fit = false ;
388+ bool from_fit ;
365389 int ret ;
366390
367- if (data -> os_fit ) {
368- from_fit = fit_has_image (data -> os_fit , data -> fit_config ,
369- "ramdisk" );
370- if (from_fit ) {
371- ret = fit_open_image (data -> os_fit , data -> fit_config ,
372- "ramdisk" , & initrd , & initrd_size );
373- if (ret ) {
374- pr_err ("Cannot open ramdisk image in FIT image: %pe\n" ,
375- ERR_PTR (ret ));
376- return ret ;
377- }
391+ from_fit = ramdisk_is_fit (data );
392+
393+ if (from_fit ) {
394+ ret = fit_open_image (data -> os_fit , data -> fit_config ,
395+ "ramdisk" , & initrd , & initrd_size );
396+ if (ret ) {
397+ pr_err ("Cannot open ramdisk image in FIT image: %pe\n" ,
398+ ERR_PTR (ret ));
399+ return ret ;
378400 }
379401 }
380-
402+
381403 if (!from_fit ) {
382404 if (!data -> initrd_file )
383405 return 0 ;
@@ -412,23 +434,22 @@ static int efi_load_ramdisk(struct image_data *data)
412434 return ret ;
413435}
414436
415- static int efi_load_dtb (struct image_data * data , void * * fdt )
437+ static int efi_load_fdt (struct image_data * data , void * * fdt )
416438{
417439 efi_status_t efiret = EFI_SUCCESS ;
418440 void * mem = NULL ;
419441 const void * of_tree ;
420442 unsigned long of_size ;
421- bool from_fit = false ;
443+ bool from_fit ;
422444 int ret ;
423445
424- if (data -> os_fit ) {
425- from_fit = fit_has_image (data -> os_fit , data -> fit_config , "fdt" );
426- if (from_fit ) {
427- ret = fit_open_image (data -> os_fit , data -> fit_config ,
428- "fdt" , & of_tree , & of_size );
429- if (ret )
430- return ret ;
431- }
446+ from_fit = fdt_is_fit (data );
447+
448+ if (from_fit ) {
449+ ret = fit_open_image (data -> os_fit , data -> fit_config ,
450+ "fdt" , & of_tree , & of_size );
451+ if (ret )
452+ return ret ;
432453 }
433454
434455 if (!from_fit ) {
@@ -494,7 +515,7 @@ static int do_bootm_efi_stub(struct image_data *data)
494515 if (ret )
495516 return ret ;
496517
497- ret = efi_load_dtb (data , & fdt );
518+ ret = efi_load_fdt (data , & fdt );
498519 if (ret )
499520 return ret ;
500521
0 commit comments