summaryrefslogtreecommitdiffstats
path: root/include/asm-sparc64
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2007-07-16 03:49:40 -0700
committerDavid S. Miller <davem@sunset.davemloft.net>2007-07-16 04:05:32 -0700
commite0204409df29fe1b7d18f81dfc3ae6f9d90e7a63 (patch)
tree66f670c0f182d02185f2f3ea6bb7bb97c165ff3b /include/asm-sparc64
parentf3c681c028846bd5d39f563909409832a295ca69 (diff)
downloadop-kernel-dev-e0204409df29fe1b7d18f81dfc3ae6f9d90e7a63.zip
op-kernel-dev-e0204409df29fe1b7d18f81dfc3ae6f9d90e7a63.tar.gz
[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.h2
-rw-r--r--include/asm-sparc64/mmu_context.h3
-rw-r--r--include/asm-sparc64/smp.h3
3 files changed, 6 insertions, 2 deletions
diff --git a/include/asm-sparc64/irq.h b/include/asm-sparc64/irq.h
index 90781e3..e6c436e 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,
extern void sun4v_destroy_msi(unsigned int virt_irq);
extern unsigned int sbus_build_irq(void *sbus, unsigned int ino);
+extern void fixup_irqs(void);
+
static __inline__ void set_softint(unsigned long bits)
{
__asm__ __volatile__("wr %0, 0x0, %%set_softint"
diff --git a/include/asm-sparc64/mmu_context.h b/include/asm-sparc64/mmu_context.h
index 8d12903..9fc225e 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
unsigned long ctx_valid, flags;
int cpu;
+ if (unlikely(mm == &init_mm))
+ return;
+
spin_lock_irqsave(&mm->context.lock, flags);
ctx_valid = CTX_VALID(mm->context);
if (!ctx_valid)
diff --git a/include/asm-sparc64/smp.h b/include/asm-sparc64/smp.h
index c42c5a0..e8a96a3 100644
--- a/include/asm-sparc64/smp.h
+++ b/include/asm-sparc64/smp.h
@@ -41,7 +41,7 @@ extern int hard_smp_processor_id(void);
#define raw_smp_processor_id() (current_thread_info()->cpu)
extern void smp_fill_in_sib_core_maps(void);
-extern unsigned char boot_cpu_id;
+extern void cpu_play_dead(void);
#ifdef CONFIG_HOTPLUG_CPU
extern int __cpu_disable(void);
@@ -54,7 +54,6 @@ extern void __cpu_die(unsigned int cpu);
#define hard_smp_processor_id() 0
#define smp_fill_in_sib_core_maps() do { } while (0)
-#define boot_cpu_id (0)
#endif /* !(CONFIG_SMP) */
OpenPOWER on IntegriCloud