mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
x86/xen: fix set_phys_range_identity() if pfn_e > MAX_P2M_PFN
Allow set_phys_range_identity() to work with a range that overlaps MAX_P2M_PFN by clamping pfn_e to MAX_P2M_PFN. Signed-off-by: David Vrabel <david.vrabel@citrix.com> Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Tested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
parent
fcca2e3119
commit
a9b5bff66b
@ -774,7 +774,7 @@ unsigned long __init set_phys_range_identity(unsigned long pfn_s,
|
||||
{
|
||||
unsigned long pfn;
|
||||
|
||||
if (unlikely(pfn_s >= MAX_P2M_PFN || pfn_e >= MAX_P2M_PFN))
|
||||
if (unlikely(pfn_s >= MAX_P2M_PFN))
|
||||
return 0;
|
||||
|
||||
if (unlikely(xen_feature(XENFEAT_auto_translated_physmap)))
|
||||
@ -783,6 +783,9 @@ unsigned long __init set_phys_range_identity(unsigned long pfn_s,
|
||||
if (pfn_s > pfn_e)
|
||||
return 0;
|
||||
|
||||
if (pfn_e > MAX_P2M_PFN)
|
||||
pfn_e = MAX_P2M_PFN;
|
||||
|
||||
for (pfn = (pfn_s & ~(P2M_MID_PER_PAGE * P2M_PER_PAGE - 1));
|
||||
pfn < ALIGN(pfn_e, (P2M_MID_PER_PAGE * P2M_PER_PAGE));
|
||||
pfn += P2M_MID_PER_PAGE * P2M_PER_PAGE)
|
||||
|
Loading…
x
Reference in New Issue
Block a user