Reviewed-by: Star Zeng <star.z...@intel.com>

-----Original Message-----
From: Vijayenthiran Subramaniam [mailto:vijayenthiran.subraman...@arm.com] 
Sent: Wednesday, November 21, 2018 11:29 PM
To: edk2-devel@lists.01.org; Zeng, Star <star.z...@intel.com>; Wang, Jian J 
<jian.j.w...@intel.com>; Ni, Ruiyu <ruiyu...@intel.com>
Cc: Vijayenthiran Subramaniam <vijayenthiran.subraman...@arm.com>
Subject: [PATCH v2] MdeModulePkg/Variable: add debug logs in 
VariableServiceSetVariable

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 <star.z...@intel.com>
Cc: Jian J Wang <jian.j.w...@intel.com>
Cc: Ruiyu Ni <ruiyu...@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subraman...@arm.com>
---
Thanks for the review. I have made changes based on Laszlo's and Star's 
suggestions.

- Vijayenthiran

 MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c | 30 ++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c 
b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c
index 8e8db71bd201..d100b1dcc552 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c
@@ -3234,14 +3234,44 @@ VariableServiceSetVariable (
     //
     if ((Attributes & VARIABLE_ATTRIBUTE_AT_AW) != 0) {
       if (StrSize (VariableName) + PayloadSize > 
mVariableModuleGlobal->MaxAuthVariableSize - GetVariableHeaderSize ()) {
+        DEBUG ((DEBUG_ERROR,
+          "%a: Failed to set variable '%s' with Guid %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 ()
+          ));
         return EFI_INVALID_PARAMETER;
       }
     } else if ((Attributes & EFI_VARIABLE_NON_VOLATILE) != 0) {
       if (StrSize (VariableName) + PayloadSize > 
mVariableModuleGlobal->MaxVariableSize - GetVariableHeaderSize ()) {
+        DEBUG ((DEBUG_ERROR,
+          "%a: Failed to set variable '%s' with Guid %g\n",
+          __FUNCTION__, VariableName, VendorGuid));
+        DEBUG ((DEBUG_ERROR,
+          "NameSize(0x%x) + PayloadSize(0x%x) > "
+          "MaxVariableSize(0x%x) - HeaderSize(0x%x)\n",
+          StrSize (VariableName), PayloadSize,
+          mVariableModuleGlobal->MaxVariableSize,
+          GetVariableHeaderSize ()
+          ));
         return EFI_INVALID_PARAMETER;
       }
     } else {
       if (StrSize (VariableName) + PayloadSize > 
mVariableModuleGlobal->MaxVolatileVariableSize - GetVariableHeaderSize ()) {
+        DEBUG ((DEBUG_ERROR,
+          "%a: Failed to set variable '%s' with Guid %g\n",
+          __FUNCTION__, VariableName, VendorGuid));
+        DEBUG ((DEBUG_ERROR,
+          "NameSize(0x%x) + PayloadSize(0x%x) > "
+          "MaxVolatileVariableSize(0x%x) - HeaderSize(0x%x)\n",
+          StrSize (VariableName), PayloadSize,
+          mVariableModuleGlobal->MaxVolatileVariableSize,
+          GetVariableHeaderSize ()
+          ));
         return EFI_INVALID_PARAMETER;
       }
     }
--
2.17.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to