On Thu, Dec 12, 2019 at 10:35:56PM +0000, Ard Biesheuvel wrote: > On Thu, 12 Dec 2019 at 22:34, Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote: > > > > Use typedef for the GOP structures, in anticipation of unifying > > 32/64-bit code. Also use more appropriate types in the non-bitness > > specific structures for the framebuffer address and pointers. > > > > Signed-off-by: Arvind Sankar <nivedita@xxxxxxxxxxxx> > > > This gives me > > /home/ardbie01/linux/drivers/firmware/efi/libstub/gop.c: In function > ‘setup_gop32’: > /home/ardbie01/linux/drivers/firmware/efi/libstub/gop.c:96:27: error: > storage size of ‘pixel_info’ isn’t known > struct efi_pixel_bitmask pixel_info; > ^~~~~~~~~~ > /home/ardbie01/linux/drivers/firmware/efi/libstub/gop.c:125:38: error: > dereferencing pointer to incomplete type ‘struct > efi_graphics_output_protocol_32’ > mode = (void *)(unsigned long)gop32->mode; > ^~ > /home/ardbie01/linux/scripts/Makefile.build:265: recipe for target > 'drivers/firmware/efi/libstub/gop.o' failed > make[5]: *** [drivers/firmware/efi/libstub/gop.o] Error 1 > make[5]: *** Waiting for unfinished jobs.... Something must be wrong with the application of the patch. The patch does change the declaration of pixel_info and gop32 as seen below. > > @@ -87,13 +87,13 @@ static efi_status_t > > setup_gop32(efi_system_table_t *sys_table_arg, struct screen_info *si, > > efi_guid_t *proto, unsigned long size, void **gop_handle) > > { > > - struct efi_graphics_output_protocol_32 *gop32, *first_gop; > > + efi_graphics_output_protocol_32_t *gop32, *first_gop; > > unsigned long nr_gops; > > u16 width, height; > > u32 pixels_per_scan_line; > > u32 ext_lfb_base; > > - u64 fb_base; > > - struct efi_pixel_bitmask pixel_info; > > + efi_physical_addr_t fb_base; > > + efi_pixel_bitmask_t pixel_info; > > int pixel_format;