mirror of
				https://github.com/acidanthera/audk.git
				synced 2025-10-31 11:13:53 +01:00 
			
		
		
		
	As variable area is not reliable in recovery path, then we should not produce ReadonlyVariable2&ReadonlyVariable ppi at the point. This way causes other Pei module wanted to access to variable will fail
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7185 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
		
							parent
							
								
									0d401d4d9c
								
							
						
					
					
						commit
						f2fa830ef0
					
				| @ -50,8 +50,9 @@ EFI_GUID mEfiVariableIndexTableGuid = EFI_VARIABLE_INDEX_TABLE_GUID; | ||||
|   @param  FileHandle      Handle of the file being invoked. | ||||
|   @param  PeiServices     Describes the list of possible PEI Services. | ||||
| 
 | ||||
|   @return Status -  EFI_SUCCESS if the interface could be successfully | ||||
|           installed | ||||
|   @return EFI_SUCCESS     If the interface could be successfully installed. | ||||
|   @return EFI_UNSUPPORTED If current boot path is in recovery mode, then does not | ||||
|                           install this interface. | ||||
| 
 | ||||
| **/ | ||||
| EFI_STATUS | ||||
| @ -61,9 +62,21 @@ PeimInitializeVariableServices ( | ||||
|   IN CONST EFI_PEI_SERVICES     **PeiServices | ||||
|   ) | ||||
| { | ||||
|   EFI_BOOT_MODE BootMode; | ||||
|   EFI_STATUS    Status; | ||||
| 
 | ||||
|   //
 | ||||
|   // Publish the variable capability to other modules
 | ||||
|   // Check if this is recovery boot path. If no, publish the variable access capability
 | ||||
|   // to other modules. If yes, the content of variable area is not reliable. Therefore,
 | ||||
|   // in this case we should not provide variable service to other pei modules. 
 | ||||
|   // 
 | ||||
|   Status = (*PeiServices)->GetBootMode (PeiServices, &BootMode); | ||||
|   ASSERT_EFI_ERROR (Status); | ||||
|    | ||||
|   if (BootMode == BOOT_IN_RECOVERY_MODE) { | ||||
|     return EFI_UNSUPPORTED; | ||||
|   } | ||||
|    | ||||
|   return (**PeiServices).InstallPpi (PeiServices, &mPpiListVariable[0]); | ||||
| 
 | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user