diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2007-07-16 06:49:40 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-07-16 07:05:32 -0400 |
commit | e0204409df29fe1b7d18f81dfc3ae6f9d90e7a63 (patch) | |
tree | 66f670c0f182d02185f2f3ea6bb7bb97c165ff3b /include/asm-sparc64 | |
parent | f3c681c028846bd5d39f563909409832a295ca69 (diff) |
[SPARC64]: dr-cpu unconfigure support.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/asm-sparc64')
-rw-r--r-- | include/asm-sparc64/irq.h | 2 | ||||
-rw-r--r-- | include/asm-sparc64/mmu_context.h | 3 | ||||
-rw-r--r-- | include/asm-sparc64/smp.h | 3 |
3 files changed, 6 insertions, 2 deletions
diff --git a/include/asm-sparc64/irq.h b/include/asm-sparc64/irq.h index 90781e34a95c..e6c436ef9356 100644 --- a/include/asm-sparc64/irq.h +++ b/include/asm-sparc64/irq.h | |||
@@ -53,6 +53,8 @@ extern unsigned int sun4v_build_msi(u32 devhandle, unsigned int *virt_irq_p, | |||
53 | extern void sun4v_destroy_msi(unsigned int virt_irq); | 53 | extern void sun4v_destroy_msi(unsigned int virt_irq); |
54 | extern unsigned int sbus_build_irq(void *sbus, unsigned int ino); | 54 | extern unsigned int sbus_build_irq(void *sbus, unsigned int ino); |
55 | 55 | ||
56 | extern void fixup_irqs(void); | ||
57 | |||
56 | static __inline__ void set_softint(unsigned long bits) | 58 | static __inline__ void set_softint(unsigned long bits) |
57 | { | 59 | { |
58 | __asm__ __volatile__("wr %0, 0x0, %%set_softint" | 60 | __asm__ __volatile__("wr %0, 0x0, %%set_softint" |
diff --git a/include/asm-sparc64/mmu_context.h b/include/asm-sparc64/mmu_context.h index 8d129032013e..9fc225ed5500 100644 --- a/include/asm-sparc64/mmu_context.h +++ b/include/asm-sparc64/mmu_context.h | |||
@@ -76,6 +76,9 @@ static inline void switch_mm(struct mm_struct *old_mm, struct mm_struct *mm, str | |||
76 | unsigned long ctx_valid, flags; | 76 | unsigned long ctx_valid, flags; |
77 | int cpu; | 77 | int cpu; |
78 | 78 | ||
79 | if (unlikely(mm == &init_mm)) | ||
80 | return; | ||
81 | |||
79 | spin_lock_irqsave(&mm->context.lock, flags); | 82 | spin_lock_irqsave(&mm->context.lock, flags); |
80 | ctx_valid = CTX_VALID(mm->context); | 83 | ctx_valid = CTX_VALID(mm->context); |
81 | if (!ctx_valid) | 84 | if (!ctx_valid) |
diff --git a/include/asm-sparc64/smp.h b/include/asm-sparc64/smp.h index c42c5a035c73..e8a96a31761b 100644 --- a/include/asm-sparc64/smp.h +++ b/include/asm-sparc64/smp.h | |||
@@ -41,7 +41,7 @@ extern int hard_smp_processor_id(void); | |||
41 | #define raw_smp_processor_id() (current_thread_info()->cpu) | 41 | #define raw_smp_processor_id() (current_thread_info()->cpu) |
42 | 42 | ||
43 | extern void smp_fill_in_sib_core_maps(void); | 43 | extern void smp_fill_in_sib_core_maps(void); |
44 | extern unsigned char boot_cpu_id; | 44 | extern void cpu_play_dead(void); |
45 | 45 | ||
46 | #ifdef CONFIG_HOTPLUG_CPU | 46 | #ifdef CONFIG_HOTPLUG_CPU |
47 | extern int __cpu_disable(void); | 47 | extern int __cpu_disable(void); |
@@ -54,7 +54,6 @@ extern void __cpu_die(unsigned int cpu); | |||
54 | 54 | ||
55 | #define hard_smp_processor_id() 0 | 55 | #define hard_smp_processor_id() 0 |
56 | #define smp_fill_in_sib_core_maps() do { } while (0) | 56 | #define smp_fill_in_sib_core_maps() do { } while (0) |
57 | #define boot_cpu_id (0) | ||
58 | 57 | ||
59 | #endif /* !(CONFIG_SMP) */ | 58 | #endif /* !(CONFIG_SMP) */ |
60 | 59 | ||