fhdr is used only to boot other payloads but it isn't actually necesarry
there. Remove it
diff --git a/src/boot.c b/src/boot.c
index d6b1fb7..31dfafd 100644
--- a/src/boot.c
+++ b/src/boot.c
@@ -660,7 +660,7 @@ boot_cdrom(struct drive_s *drive_g)
 
 // Boot from a CBFS payload
 static void
-boot_cbfs(struct cbfs_file *file)
+boot_cbfs(struct cbfs_romfile_s *file)
 {
     if (!CONFIG_COREBOOT_FLASH)
         return;
diff --git a/src/fw/coreboot.c b/src/fw/coreboot.c
index 6610b3a..7815de4 100644
--- a/src/fw/coreboot.c
+++ b/src/fw/coreboot.c
@@ -334,7 +334,6 @@ struct cbfs_file {
 
 struct cbfs_romfile_s {
     struct romfile_s file;
-    struct cbfs_file *fhdr;
     void *data;
     u32 rawsize, flags;
 };
@@ -445,7 +444,6 @@ coreboot_cbfs_init(void)
         memset(cfile, 0, sizeof(*cfile));
         strtcpy(cfile->file.name, fhdr->filename, sizeof(cfile->file.name));
         cfile->file.size = cfile->rawsize = be32_to_cpu(fhdr->len);
-        cfile->fhdr = fhdr;
         cfile->file.copy = cbfs_copyfile;
         cfile->data = (void*)fhdr + be32_to_cpu(fhdr->offset);
         int len = strlen(cfile->file.name);
@@ -484,12 +482,12 @@ struct cbfs_payload {
 };
 
 void
-cbfs_run_payload(struct cbfs_file *fhdr)
+cbfs_run_payload(struct cbfs_romfile_s *cbfs)
 {
-    if (!CONFIG_COREBOOT_FLASH || !fhdr)
+    if (!CONFIG_COREBOOT_FLASH || !cbfs)
         return;
-    dprintf(1, "Run %s\n", fhdr->filename);
-    struct cbfs_payload *pay = (void*)fhdr + be32_to_cpu(fhdr->offset);
+    dprintf(1, "Run %s\n", cbfs->file.name);
+    struct cbfs_payload *pay = cbfs->data;
     struct cbfs_payload_segment *seg = pay->segments;
     for (;;) {
         void *src = (void*)pay + be32_to_cpu(seg->offset);
@@ -548,7 +546,7 @@ cbfs_payload_setup(void)
         cfile = container_of(file, struct cbfs_romfile_s, file);
         const char *filename = file->name;
         char *desc = znprintf(MAXDESCSIZE, "Payload [%s]", &filename[4]);
-        boot_add_cbfs(cfile->fhdr, desc, bootprio_find_named_rom(filename, 0));
+        boot_add_cbfs(cfile, desc, bootprio_find_named_rom(filename, 0));
     }
 }
 
diff --git a/src/util.h b/src/util.h
index 09bb8a9..704ae0a 100644
--- a/src/util.h
+++ b/src/util.h
@@ -84,7 +84,8 @@ void smbios_setup(void);
 extern const char *CBvendor, *CBpart;
 struct cbfs_file;
 void coreboot_debug_putc(char c);
-void cbfs_run_payload(struct cbfs_file *file);
+struct cbfs_romfile_s;
+void cbfs_run_payload(struct cbfs_romfile_s *file);
 void coreboot_platform_setup(void);
 void cbfs_payload_setup(void);
 void coreboot_preinit(void);
_______________________________________________
SeaBIOS mailing list
[email protected]
http://www.seabios.org/mailman/listinfo/seabios

Reply via email to