On 2018/11/20 19:17, Laszlo Ersek wrote:
On 11/20/18 11:38, Vijayenthiran Subramaniam wrote:
Print debug messages if size of the VariableName plus DataSize exceeds
Max(Auth|Voltaile)VariableSize bytes. The messages will be useful if any
platform specific value of Max(Auth|Voltaile)VariableSize PCDs have to
be changed.
Cc: Star Zeng <[email protected]>
Cc: Jian J Wang <[email protected]>
Cc: Ruiyu Ni <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Vijayenthiran Subramaniam <[email protected]>
---
MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c
b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c
index 8e8db71bd201..db54fa4412c0 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c
@@ -3234,14 +3234,20 @@ VariableServiceSetVariable (
//
if ((Attributes & VARIABLE_ATTRIBUTE_AT_AW) != 0) {
if (StrSize (VariableName) + PayloadSize >
mVariableModuleGlobal->MaxAuthVariableSize - GetVariableHeaderSize ()) {
+ DEBUG ((DEBUG_ERROR, "%a: Size of (%s) variable + DataSize exceeds
MaxAuthVariableSize.\n",
+ __FUNCTION__, VariableName));
return EFI_INVALID_PARAMETER;
}
} else if ((Attributes & EFI_VARIABLE_NON_VOLATILE) != 0) {
if (StrSize (VariableName) + PayloadSize >
mVariableModuleGlobal->MaxVariableSize - GetVariableHeaderSize ()) {
+ DEBUG ((DEBUG_ERROR, "%a: Size of (%s) variable + DataSize exceeds
MaxVariableSize.\n",
+ __FUNCTION__, VariableName));
return EFI_INVALID_PARAMETER;
}
} else {
if (StrSize (VariableName) + PayloadSize >
mVariableModuleGlobal->MaxVolatileVariableSize - GetVariableHeaderSize ()) {
+ DEBUG ((DEBUG_ERROR, "%a: Size of (%s) variable + DataSize exceeds
MaxVolatileVariableSize.\n",
+ __FUNCTION__, VariableName));
return EFI_INVALID_PARAMETER;
}
}
You could make this more useful as well -- again, *if* the package
maintainers agree with the new log messages --; namely, the vendor GUID,
DataSize, and the limit in question should / could all be logged.
I agree to add these debug messages. I also think Laszlo's suggestion is
good.
So, how about having the debug message like below?
DEBUG ((
DEBUG_ERROR,
"%a: %s:%g\n",
__FUNCTION__,
VariableName,
VendorGuid
));
DEBUG ((
DEBUG_ERROR,
" NameSize(0x%x) + PayloadSize(0x%x) >
MaxAuthVariableSize(0x%x) - HeaderSize(0x%x)\n",
StrSize (VariableName),
PayloadSize,
mVariableModuleGlobal->MaxAuthVariableSize,
GetVariableHeaderSize ()
));
Thanks,
Star
Thanks
Laszlo
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel