mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-25 18:46:32 +03:00
Merge pull request #325348 from JulienMalka/remove-uefi-large-file-test
nixos/tests/systemd-boot: remove uefiLargeFileWorkaround test
This commit is contained in:
commit
21aed90c1e
2 changed files with 0 additions and 51 deletions
|
@ -1,25 +0,0 @@
|
||||||
From d87a7513c6f2f2824203032ef27caeb84892ed7e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Will Fancher <elvishjerricco@gmail.com>
|
|
||||||
Date: Tue, 30 May 2023 16:53:20 -0400
|
|
||||||
Subject: [PATCH] Intentionally break the fat driver
|
|
||||||
|
|
||||||
---
|
|
||||||
FatPkg/EnhancedFatDxe/ReadWrite.c | 5 +++++
|
|
||||||
1 file changed, 5 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/FatPkg/EnhancedFatDxe/ReadWrite.c b/FatPkg/EnhancedFatDxe/ReadWrite.c
|
|
||||||
index 8f525044d1f1..32c62ff7817b 100644
|
|
||||||
--- a/FatPkg/EnhancedFatDxe/ReadWrite.c
|
|
||||||
+++ b/FatPkg/EnhancedFatDxe/ReadWrite.c
|
|
||||||
@@ -216,6 +216,11 @@ FatIFileAccess (
|
|
||||||
Volume = OFile->Volume;
|
|
||||||
Task = NULL;
|
|
||||||
|
|
||||||
+ if (*BufferSize > (10U * 1024U * 1024U)) {
|
|
||||||
+ IFile->Position += 10U * 1024U * 1024U;
|
|
||||||
+ return EFI_BAD_BUFFER_SIZE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
//
|
|
||||||
// Write to a directory is unsupported
|
|
||||||
//
|
|
|
@ -428,32 +428,6 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Some UEFI firmwares fail on large reads. Now that systemd-boot loads initrd
|
|
||||||
# itself, systems with such firmware won't boot without this fix
|
|
||||||
uefiLargeFileWorkaround = makeTest {
|
|
||||||
name = "uefi-large-file-workaround";
|
|
||||||
meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ];
|
|
||||||
nodes.machine = { pkgs, ... }: {
|
|
||||||
imports = [common];
|
|
||||||
virtualisation.efi.OVMF = pkgs.OVMF.overrideAttrs (old: {
|
|
||||||
# This patch deliberately breaks the FAT driver in EDK2 to
|
|
||||||
# exhibit (part of) the firmware bug that we are testing
|
|
||||||
# for. Files greater than 10MiB will fail to be read in a
|
|
||||||
# single Read() call, so systemd-boot will fail to load the
|
|
||||||
# initrd without a workaround. The number 10MiB was chosen
|
|
||||||
# because if it were smaller than the kernel size, even the
|
|
||||||
# LoadImage call would fail, which is not the failure mode
|
|
||||||
# we're testing for. It needs to be between the kernel size
|
|
||||||
# and the initrd size.
|
|
||||||
patches = old.patches or [] ++ [ ./systemd-boot-ovmf-broken-fat-driver.patch ];
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
testScript = ''
|
|
||||||
machine.wait_for_unit("multi-user.target")
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
no-bootspec = makeTest
|
no-bootspec = makeTest
|
||||||
{
|
{
|
||||||
name = "systemd-boot-no-bootspec";
|
name = "systemd-boot-no-bootspec";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue