From 09abc636756b5d1f29224402181f7fd34f736c5f Mon Sep 17 00:00:00 2001 From: Hao Wu Date: Wed, 20 Apr 2016 13:23:59 +0800 Subject: MdeModulePkg RamDiskDxe: Fix wrong HII behavior for more than 8 RAM disks The RamDiskDxe driver originally uses a variable-length HII varstore to retrieve the HII checkbox status of each registered RAM disk. However, HII does not support the variable-length varstore feature. Therefore, only the checkbox status for the first 8 RAM disks are tracked for the following definition of HII varstore structure considering the alignment: typedef struct { UINT64 Size; UINT8 RamDiskList[0]; } RAM_DISK_CONFIGURATION; This commit uses the private data of each registered RAM disks to track the HII checkbox status instead to resolve the issue. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu Reviewed-by: Feng Tian --- MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskProtocol.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskProtocol.c') diff --git a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskProtocol.c b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskProtocol.c index 93b1b83877..ed71849fb4 100644 --- a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskProtocol.c +++ b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskProtocol.c @@ -694,7 +694,6 @@ RamDiskRegister ( // Insert the newly created one to the registered RAM disk list // InsertTailList (&RegisteredRamDisks, &PrivateData->ThisInstance); - ListEntryNum++; gBS->ConnectController (PrivateData->Handle, NULL, NULL, TRUE); @@ -829,7 +828,6 @@ RamDiskUnregister ( FreePool (PrivateData->DevicePath); FreePool (PrivateData); - ListEntryNum--; Found = TRUE; break; -- cgit v1.2.3