IN VOID *Data
)
{
- return gRT->SetVariable (
- VariableName,
- VendorGuid,
- Attributes,
- DataSize,
- Data
- );
+ EFI_STATUS Status;\r
+ STATIC CONST UINT32 AuthMask =\r
+ EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS |\r
+ EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS;\r
+\r
+ Status = gRT->SetVariable (\r
+ VariableName,\r
+ VendorGuid,\r
+ Attributes,\r
+ DataSize,\r
+ Data\r
+ );\r
+\r
+ if (Status == EFI_SECURITY_VIOLATION && (Attributes & AuthMask) != 0) {\r
+ DEBUG ((DEBUG_WARN, "%a: setting authenticated variable \"%s\" "\r
+ "failed with EFI_SECURITY_VIOLATION, ignoring\n", __FUNCTION__,\r
+ VariableName));\r
+ Status = EFI_SUCCESS;\r
+ }\r
+ return Status;\r
}