// Try to allocate big SMRAM data to store Boot record. \r
//\r
if (mSmramIsOutOfResource) {\r
+ ReleaseSpinLock (&mSmmFpdtLock);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
- NewRecordBuffer = AllocatePool (mBootRecordSize + Data->Size + EXTENSION_RECORD_SIZE); \r
+ NewRecordBuffer = ReallocatePool (mBootRecordSize, mBootRecordSize + Data->Size + EXTENSION_RECORD_SIZE, mBootRecordBuffer); \r
if (NewRecordBuffer == NULL) {\r
+ ReleaseSpinLock (&mSmmFpdtLock);\r
mSmramIsOutOfResource = TRUE;\r
return EFI_OUT_OF_RESOURCES;\r
}\r
- CopyMem (NewRecordBuffer, mBootRecordBuffer, mBootRecordSize);\r
mBootRecordBuffer = NewRecordBuffer;\r
mBootRecordMaxSize = mBootRecordSize + Data->Size + EXTENSION_RECORD_SIZE;\r
}\r