Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cdaead6b authored by Jeremy Fitzhardinge's avatar Jeremy Fitzhardinge
Browse files

xen: split construction of p2m mfn tables from registration



Build the p2m_mfn_list_list early with the rest of the p2m table, but
register it later when the real shared_info structure is in place.

Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
parent e791ca0f
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -184,7 +184,7 @@ static inline unsigned p2m_index(unsigned long pfn)
}
}


/* Build the parallel p2m_top_mfn structures */
/* Build the parallel p2m_top_mfn structures */
void xen_setup_mfn_list_list(void)
static void __init xen_build_mfn_list_list(void)
{
{
	unsigned pfn, idx;
	unsigned pfn, idx;


@@ -198,7 +198,10 @@ void xen_setup_mfn_list_list(void)
		unsigned topidx = idx * P2M_ENTRIES_PER_PAGE;
		unsigned topidx = idx * P2M_ENTRIES_PER_PAGE;
		p2m_top_mfn_list[idx] = virt_to_mfn(&p2m_top_mfn[topidx]);
		p2m_top_mfn_list[idx] = virt_to_mfn(&p2m_top_mfn[topidx]);
	}
	}
}


void xen_setup_mfn_list_list(void)
{
	BUG_ON(HYPERVISOR_shared_info == &xen_dummy_shared_info);
	BUG_ON(HYPERVISOR_shared_info == &xen_dummy_shared_info);


	HYPERVISOR_shared_info->arch.pfn_to_mfn_frame_list_list =
	HYPERVISOR_shared_info->arch.pfn_to_mfn_frame_list_list =
@@ -218,6 +221,8 @@ void __init xen_build_dynamic_phys_to_machine(void)


		p2m_top[topidx] = &mfn_list[pfn];
		p2m_top[topidx] = &mfn_list[pfn];
	}
	}

	xen_build_mfn_list_list();
}
}


unsigned long get_phys_to_machine(unsigned long pfn)
unsigned long get_phys_to_machine(unsigned long pfn)