int cpu_id = smp_processor_id();
int cpu_id;
void smp_flush_tlb_page(struct vm_area_struct *vma, unsigned long va){	struct mm_struct *mm = vma->vm_mm;	int cpu_id = smp_processor_id();	cpumask_t cpu_mask;	unsigned long *mmc = &mm->context[cpu_id];	unsigned long flags;	preempt_disable();	cpu_mask = mm->cpu_vm_mask;	cpu_clear(cpu_id, cpu_mask);#ifdef DEBUG_SMP	if (!mm)		BUG();#endif	if (*mmc != NO_CONTEXT) {		local_irq_save(flags);		va &= PAGE_MASK;		va |= (*mmc & MMU_CONTEXT_ASID_MASK);		__flush_tlb_page(va);		local_irq_restore(flags);	}	if (!cpus_empty(cpu_mask))		flush_tlb_others(cpu_mask, mm, vma, va);	preempt_enable();}