diff options
Diffstat (limited to 'arch/x86/boot/compressed/eboot.c')
-rw-r--r-- | arch/x86/boot/compressed/eboot.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c index 1e6146137f8e..4703a6c4b8e3 100644 --- a/arch/x86/boot/compressed/eboot.c +++ b/arch/x86/boot/compressed/eboot.c | |||
@@ -112,7 +112,7 @@ __file_size64(void *__fh, efi_char16_t *filename_16, | |||
112 | efi_file_info_t *info; | 112 | efi_file_info_t *info; |
113 | efi_status_t status; | 113 | efi_status_t status; |
114 | efi_guid_t info_guid = EFI_FILE_INFO_ID; | 114 | efi_guid_t info_guid = EFI_FILE_INFO_ID; |
115 | u32 info_sz; | 115 | u64 info_sz; |
116 | 116 | ||
117 | status = efi_early->call((unsigned long)fh->open, fh, &h, filename_16, | 117 | status = efi_early->call((unsigned long)fh->open, fh, &h, filename_16, |
118 | EFI_FILE_MODE_READ, (u64)0); | 118 | EFI_FILE_MODE_READ, (u64)0); |
@@ -167,31 +167,31 @@ efi_file_size(efi_system_table_t *sys_table, void *__fh, | |||
167 | } | 167 | } |
168 | 168 | ||
169 | static inline efi_status_t | 169 | static inline efi_status_t |
170 | efi_file_read(void *__fh, void *handle, unsigned long *size, void *addr) | 170 | efi_file_read(void *handle, unsigned long *size, void *addr) |
171 | { | 171 | { |
172 | unsigned long func; | 172 | unsigned long func; |
173 | 173 | ||
174 | if (efi_early->is64) { | 174 | if (efi_early->is64) { |
175 | efi_file_handle_64_t *fh = __fh; | 175 | efi_file_handle_64_t *fh = handle; |
176 | 176 | ||
177 | func = (unsigned long)fh->read; | 177 | func = (unsigned long)fh->read; |
178 | return efi_early->call(func, handle, size, addr); | 178 | return efi_early->call(func, handle, size, addr); |
179 | } else { | 179 | } else { |
180 | efi_file_handle_32_t *fh = __fh; | 180 | efi_file_handle_32_t *fh = handle; |
181 | 181 | ||
182 | func = (unsigned long)fh->read; | 182 | func = (unsigned long)fh->read; |
183 | return efi_early->call(func, handle, size, addr); | 183 | return efi_early->call(func, handle, size, addr); |
184 | } | 184 | } |
185 | } | 185 | } |
186 | 186 | ||
187 | static inline efi_status_t efi_file_close(void *__fh, void *handle) | 187 | static inline efi_status_t efi_file_close(void *handle) |
188 | { | 188 | { |
189 | if (efi_early->is64) { | 189 | if (efi_early->is64) { |
190 | efi_file_handle_64_t *fh = __fh; | 190 | efi_file_handle_64_t *fh = handle; |
191 | 191 | ||
192 | return efi_early->call((unsigned long)fh->close, handle); | 192 | return efi_early->call((unsigned long)fh->close, handle); |
193 | } else { | 193 | } else { |
194 | efi_file_handle_32_t *fh = __fh; | 194 | efi_file_handle_32_t *fh = handle; |
195 | 195 | ||
196 | return efi_early->call((unsigned long)fh->close, handle); | 196 | return efi_early->call((unsigned long)fh->close, handle); |
197 | } | 197 | } |
@@ -1016,6 +1016,9 @@ void setup_graphics(struct boot_params *boot_params) | |||
1016 | * Because the x86 boot code expects to be passed a boot_params we | 1016 | * Because the x86 boot code expects to be passed a boot_params we |
1017 | * need to create one ourselves (usually the bootloader would create | 1017 | * need to create one ourselves (usually the bootloader would create |
1018 | * one for us). | 1018 | * one for us). |
1019 | * | ||
1020 | * The caller is responsible for filling out ->code32_start in the | ||
1021 | * returned boot_params. | ||
1019 | */ | 1022 | */ |
1020 | struct boot_params *make_boot_params(struct efi_config *c) | 1023 | struct boot_params *make_boot_params(struct efi_config *c) |
1021 | { | 1024 | { |
@@ -1081,8 +1084,6 @@ struct boot_params *make_boot_params(struct efi_config *c) | |||
1081 | hdr->vid_mode = 0xffff; | 1084 | hdr->vid_mode = 0xffff; |
1082 | hdr->boot_flag = 0xAA55; | 1085 | hdr->boot_flag = 0xAA55; |
1083 | 1086 | ||
1084 | hdr->code32_start = (__u64)(unsigned long)image->image_base; | ||
1085 | |||
1086 | hdr->type_of_loader = 0x21; | 1087 | hdr->type_of_loader = 0x21; |
1087 | 1088 | ||
1088 | /* Convert unicode cmdline to ascii */ | 1089 | /* Convert unicode cmdline to ascii */ |