Fix tracker 202216:linux runtime test issue.
commit57962c663830298cc45e0bea9d84da507900e499
authortian, feng <eric_tian@tianocore.org>
Thu, 19 Mar 2009 08:50:41 +0000 (19 08:50 +0000)
committertian, feng <eric_tian@tianocore.org>
Thu, 19 Mar 2009 08:50:41 +0000 (19 08:50 +0000)
treee2103b23a0e7f15ea4abf32b34898f27fe867223
parentb71cc3db37a1350f035c15ec4c2f88e12f1f0dca
Fix tracker 202216:linux runtime test issue.
[Root Cause]
The root cause is that in FindVariable function, original code logic will traverse all variable stored in variable volatile/non-volatile area. If the non-variable area is full and Linux sets a new variable, the caller of GetNextVariablePtr will get the address of next memory block, but this block doesn't be reserved as RUNTIME attribute. Therefore its corresponding page translation table doesn't exist and causes linux kernel panic.

Note that, Variable Pei driver has not such issue as the flash area is accessed in pre-os environment.All page table entries are filled. The access to next memory block will not cause such issue.
MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c
MdeModulePkg/Universal/Variable/Pei/Variable.c