smp.c (c056718464512da06d7f65a27d5e4f1707b24c80) | smp.c (4ee93d80ad73980826d582c7c37caa9597822001) |
---|---|
1/* 2 * Copyright (C) 2014 Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> 3 * Copyright (C) 2017 Stafford Horne <shorne@gmail.com> 4 * 5 * Based on arm64 and arc implementations 6 * Copyright (C) 2013 ARM Ltd. 7 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 8 * --- 4 unchanged lines hidden (view full) --- 13 14#include <linux/smp.h> 15#include <linux/cpu.h> 16#include <linux/sched.h> 17#include <linux/irq.h> 18#include <asm/cpuinfo.h> 19#include <asm/mmu_context.h> 20#include <asm/tlbflush.h> | 1/* 2 * Copyright (C) 2014 Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> 3 * Copyright (C) 2017 Stafford Horne <shorne@gmail.com> 4 * 5 * Based on arm64 and arc implementations 6 * Copyright (C) 2013 ARM Ltd. 7 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 8 * --- 4 unchanged lines hidden (view full) --- 13 14#include <linux/smp.h> 15#include <linux/cpu.h> 16#include <linux/sched.h> 17#include <linux/irq.h> 18#include <asm/cpuinfo.h> 19#include <asm/mmu_context.h> 20#include <asm/tlbflush.h> |
21#include <asm/cacheflush.h> |
|
21#include <asm/time.h> 22 23static void (*smp_cross_call)(const struct cpumask *, unsigned int); 24 25unsigned long secondary_release = -1; 26struct thread_info *secondary_thread_info; 27 28enum ipi_msg_type { --- 205 unchanged lines hidden (view full) --- 234 on_each_cpu(ipi_flush_tlb_all, NULL, 1); 235} 236 237void flush_tlb_range(struct vm_area_struct *vma, 238 unsigned long start, unsigned long end) 239{ 240 on_each_cpu(ipi_flush_tlb_all, NULL, 1); 241} | 22#include <asm/time.h> 23 24static void (*smp_cross_call)(const struct cpumask *, unsigned int); 25 26unsigned long secondary_release = -1; 27struct thread_info *secondary_thread_info; 28 29enum ipi_msg_type { --- 205 unchanged lines hidden (view full) --- 235 on_each_cpu(ipi_flush_tlb_all, NULL, 1); 236} 237 238void flush_tlb_range(struct vm_area_struct *vma, 239 unsigned long start, unsigned long end) 240{ 241 on_each_cpu(ipi_flush_tlb_all, NULL, 1); 242} |
243 244/* Instruction cache invalidate - performed on each cpu */ 245static void ipi_icache_page_inv(void *arg) 246{ 247 struct page *page = arg; 248 249 local_icache_page_inv(page); 250} 251 252void smp_icache_page_inv(struct page *page) 253{ 254 on_each_cpu(ipi_icache_page_inv, page, 1); 255} 256EXPORT_SYMBOL(smp_icache_page_inv); |
|