smp.c (8b3f6af86378d0a10ca2f1ded1da124aef13b62c) smp.c (e616c591405c168f6dc3dfd1221e105adfe49b8d)
1/*
2 * linux/arch/arm/kernel/smp.c
3 *
4 * Copyright (C) 2002 ARM Limited, All Rights Reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.

--- 22 unchanged lines hidden (view full) ---

31#include <asm/cputype.h>
32#include <asm/mmu_context.h>
33#include <asm/pgtable.h>
34#include <asm/pgalloc.h>
35#include <asm/processor.h>
36#include <asm/tlbflush.h>
37#include <asm/ptrace.h>
38#include <asm/localtimer.h>
1/*
2 * linux/arch/arm/kernel/smp.c
3 *
4 * Copyright (C) 2002 ARM Limited, All Rights Reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.

--- 22 unchanged lines hidden (view full) ---

31#include <asm/cputype.h>
32#include <asm/mmu_context.h>
33#include <asm/pgtable.h>
34#include <asm/pgalloc.h>
35#include <asm/processor.h>
36#include <asm/tlbflush.h>
37#include <asm/ptrace.h>
38#include <asm/localtimer.h>
39#include <asm/smp_plat.h>
39
40/*
41 * as from 2.5, kernels no longer have an init_tasks structure
42 * so we need some other way of telling a new secondary core
43 * where to place its SVC stack
44 */
45struct secondary_data secondary_data;
46

--- 534 unchanged lines hidden (view full) ---

581 * TLB operations
582 */
583struct tlb_args {
584 struct vm_area_struct *ta_vma;
585 unsigned long ta_start;
586 unsigned long ta_end;
587};
588
40
41/*
42 * as from 2.5, kernels no longer have an init_tasks structure
43 * so we need some other way of telling a new secondary core
44 * where to place its SVC stack
45 */
46struct secondary_data secondary_data;
47

--- 534 unchanged lines hidden (view full) ---

582 * TLB operations
583 */
584struct tlb_args {
585 struct vm_area_struct *ta_vma;
586 unsigned long ta_start;
587 unsigned long ta_end;
588};
589
589/* all SMP configurations have the extended CPUID registers */
590static inline int tlb_ops_need_broadcast(void)
591{
592 return ((read_cpuid_ext(CPUID_EXT_MMFR3) >> 12) & 0xf) < 2;
593}
594
595static inline void ipi_flush_tlb_all(void *ignored)
596{
597 local_flush_tlb_all();
598}
599
600static inline void ipi_flush_tlb_mm(void *arg)
601{
602 struct mm_struct *mm = (struct mm_struct *)arg;

--- 92 unchanged lines hidden ---
590static inline void ipi_flush_tlb_all(void *ignored)
591{
592 local_flush_tlb_all();
593}
594
595static inline void ipi_flush_tlb_mm(void *arg)
596{
597 struct mm_struct *mm = (struct mm_struct *)arg;

--- 92 unchanged lines hidden ---