コード例 #1
0
void flush_tlb_all(void)
{
	if (tlb_ops_need_broadcast())
		on_each_cpu(ipi_flush_tlb_all, NULL, 1);
	else
		local_flush_tlb_all();
	broadcast_tlb_a15_erratum();
}
コード例 #2
0
void flush_tlb_kernel_page(unsigned long kaddr)
{
	if (tlb_ops_need_broadcast()) {
		struct tlb_args ta;
		ta.ta_start = kaddr;
		on_each_cpu(ipi_flush_tlb_kernel_page, &ta, 1);
	} else
		local_flush_tlb_kernel_page(kaddr);
	broadcast_tlb_a15_erratum();
}
コード例 #3
0
void flush_tlb_kernel_range(unsigned long start, unsigned long end)
{
	if (tlb_ops_need_broadcast()) {
		struct tlb_args ta;
		ta.ta_start = start;
		ta.ta_end = end;
		on_each_cpu(ipi_flush_tlb_kernel_range, &ta, 1);
	} else
		local_flush_tlb_kernel_range(start, end);
	broadcast_tlb_a15_erratum();
}
コード例 #4
0
ファイル: smp_tlb.c プロジェクト: Ksys-labs/l4linux
void flush_tlb_all(void)
{
	if (IS_ENABLED(CONFIG_L4)) {
		l4x_unmap_sync_all();
		return;
	}

	if (tlb_ops_need_broadcast())
		on_each_cpu(ipi_flush_tlb_all, NULL, 1);
	else
		local_flush_tlb_all();
	broadcast_tlb_a15_erratum();
}
コード例 #5
0
ファイル: smp_tlb.c プロジェクト: Ksys-labs/l4linux
void flush_tlb_kernel_page(unsigned long kaddr)
{
	if (IS_ENABLED(CONFIG_L4)) {
		l4x_unmap_sync_all();
		return;
	}

	if (tlb_ops_need_broadcast()) {
		struct tlb_args ta;
		ta.ta_start = kaddr;
		on_each_cpu(ipi_flush_tlb_kernel_page, &ta, 1);
	} else
		local_flush_tlb_kernel_page(kaddr);
	broadcast_tlb_a15_erratum();
}