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);