OvmfPkg/QemuKernelLoaderFsDxe: don't expose kernel command line
We have no need for exposing the kernel command line as a file, so remove support for that. Since the remaining blobs (kernel and initrd) are typically much larger than a page, switch to the page based allocator for blobs at the same time. Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2566 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
		
				
					committed by
					
						![mergify[bot]](/avatar/e3df20cd7a67969c41a65f03bea54961?size=40) mergify[bot]
						mergify[bot]
					
				
			
			
				
	
			
			
			
						parent
						
							364e0b4cda
						
					
				
				
					commit
					efc52d67e1
				
			| @@ -30,7 +30,6 @@ | ||||
| typedef enum { | ||||
|   KernelBlobTypeKernel, | ||||
|   KernelBlobTypeInitrd, | ||||
|   KernelBlobTypeCommandLine, | ||||
|   KernelBlobTypeMax | ||||
| } KERNEL_BLOB_TYPE; | ||||
|  | ||||
| @@ -45,7 +44,6 @@ typedef struct { | ||||
| STATIC KERNEL_BLOB mKernelBlob[KernelBlobTypeMax] = { | ||||
|   { QemuFwCfgItemKernelSize,      QemuFwCfgItemKernelData,      L"kernel"  }, | ||||
|   { QemuFwCfgItemInitrdSize,      QemuFwCfgItemInitrdData,      L"initrd"  }, | ||||
|   { QemuFwCfgItemCommandLineSize, QemuFwCfgItemCommandLineData, L"cmdline" } | ||||
| }; | ||||
|  | ||||
| STATIC UINT64 mTotalBlobBytes; | ||||
| @@ -865,7 +863,7 @@ FetchBlob ( | ||||
|   // | ||||
|   // Read blob. | ||||
|   // | ||||
|   Blob->Data = AllocatePool (Blob->Size); | ||||
|   Blob->Data = AllocatePages (EFI_SIZE_TO_PAGES ((UINTN)Blob->Size)); | ||||
|   if (Blob->Data == NULL) { | ||||
|     DEBUG ((DEBUG_ERROR, "%a: failed to allocate %Ld bytes for \"%s\"\n", | ||||
|       __FUNCTION__, (INT64)Blob->Size, Blob->Name)); | ||||
| @@ -969,7 +967,8 @@ FreeBlobs: | ||||
|   while (BlobType > 0) { | ||||
|     CurrentBlob = &mKernelBlob[--BlobType]; | ||||
|     if (CurrentBlob->Data != NULL) { | ||||
|       FreePool (CurrentBlob->Data); | ||||
|       FreePages (CurrentBlob->Data, | ||||
|         EFI_SIZE_TO_PAGES ((UINTN)CurrentBlob->Size)); | ||||
|       CurrentBlob->Size = 0; | ||||
|       CurrentBlob->Data = NULL; | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user