You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[IA64] Optional method to purge the TLB on SN systems
This patch adds an optional method for purging the TLB on SN IA64 systems. The change should not affect any non-SN system. Signed-off-by: Jack Steiner <steiner@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
@@ -66,6 +66,7 @@ extern int ia64_last_device_vector;
|
||||
#define IA64_PERFMON_VECTOR 0xee /* performanc monitor interrupt vector */
|
||||
#define IA64_TIMER_VECTOR 0xef /* use highest-prio group 15 interrupt for timer */
|
||||
#define IA64_MCA_WAKEUP_VECTOR 0xf0 /* MCA wakeup (must be >MCA_RENDEZ_VECTOR) */
|
||||
#define IA64_IPI_LOCAL_TLB_FLUSH 0xfc /* SMP flush local TLB */
|
||||
#define IA64_IPI_RESCHEDULE 0xfd /* SMP reschedule */
|
||||
#define IA64_IPI_VECTOR 0xfe /* inter-processor interrupt vector */
|
||||
|
||||
|
||||
@@ -27,9 +27,11 @@ extern void local_flush_tlb_all (void);
|
||||
#ifdef CONFIG_SMP
|
||||
extern void smp_flush_tlb_all (void);
|
||||
extern void smp_flush_tlb_mm (struct mm_struct *mm);
|
||||
extern void smp_flush_tlb_cpumask (cpumask_t xcpumask);
|
||||
# define flush_tlb_all() smp_flush_tlb_all()
|
||||
#else
|
||||
# define flush_tlb_all() local_flush_tlb_all()
|
||||
# define smp_flush_tlb_cpumask(m) local_flush_tlb_all()
|
||||
#endif
|
||||
|
||||
static inline void
|
||||
@@ -94,6 +96,15 @@ flush_tlb_pgtables (struct mm_struct *mm, unsigned long start, unsigned long end
|
||||
*/
|
||||
}
|
||||
|
||||
/*
|
||||
* Flush the local TLB. Invoked from another cpu using an IPI.
|
||||
*/
|
||||
#ifdef CONFIG_SMP
|
||||
void smp_local_flush_tlb(void);
|
||||
#else
|
||||
#define smp_local_flush_tlb()
|
||||
#endif
|
||||
|
||||
#define flush_tlb_kernel_range(start, end) flush_tlb_all() /* XXX fix me */
|
||||
|
||||
#endif /* _ASM_IA64_TLBFLUSH_H */
|
||||
|
||||
Reference in New Issue
Block a user