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 <hao.a.wu@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com>
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user