Merge branch 'linux-2.6'
This commit is contained in:
@@ -1387,12 +1387,14 @@ __secondary_start:
|
||||
#ifdef CONFIG_PPC_ISERIES
|
||||
BEGIN_FW_FTR_SECTION
|
||||
ori r4,r4,MSR_EE
|
||||
li r8,1
|
||||
stb r8,PACAHARDIRQEN(r13)
|
||||
END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES)
|
||||
#endif
|
||||
BEGIN_FW_FTR_SECTION
|
||||
stb r7,PACASOFTIRQEN(r13)
|
||||
stb r7,PACAHARDIRQEN(r13)
|
||||
END_FW_FTR_SECTION_IFCLR(FW_FEATURE_ISERIES)
|
||||
stb r7,PACASOFTIRQEN(r13)
|
||||
|
||||
mtspr SPRN_SRR0,r3
|
||||
mtspr SPRN_SRR1,r4
|
||||
@@ -1520,15 +1522,14 @@ _INIT_GLOBAL(start_here_common)
|
||||
#ifdef CONFIG_PPC_ISERIES
|
||||
BEGIN_FW_FTR_SECTION
|
||||
mfmsr r5
|
||||
ori r5,r5,MSR_EE /* Hard Enabled */
|
||||
ori r5,r5,MSR_EE /* Hard Enabled on iSeries*/
|
||||
mtmsrd r5
|
||||
li r5,1
|
||||
END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES)
|
||||
#endif
|
||||
BEGIN_FW_FTR_SECTION
|
||||
stb r5,PACAHARDIRQEN(r13)
|
||||
END_FW_FTR_SECTION_IFCLR(FW_FEATURE_ISERIES)
|
||||
stb r5,PACAHARDIRQEN(r13) /* Hard Disabled on others */
|
||||
|
||||
bl .start_kernel
|
||||
bl .start_kernel
|
||||
|
||||
/* Not reached */
|
||||
BUG_OPCODE
|
||||
|
@@ -143,7 +143,6 @@ void local_irq_restore(unsigned long en)
|
||||
*/
|
||||
if (local_paca->lppaca_ptr->int_dword.any_int)
|
||||
iseries_handle_interrupts();
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -241,8 +241,12 @@ void discard_lazy_cpu_state(void)
|
||||
}
|
||||
#endif /* CONFIG_SMP */
|
||||
|
||||
static DEFINE_PER_CPU(unsigned long, current_dabr);
|
||||
|
||||
int set_dabr(unsigned long dabr)
|
||||
{
|
||||
__get_cpu_var(current_dabr) = dabr;
|
||||
|
||||
#ifdef CONFIG_PPC_MERGE /* XXX for now */
|
||||
if (ppc_md.set_dabr)
|
||||
return ppc_md.set_dabr(dabr);
|
||||
@@ -259,8 +263,6 @@ int set_dabr(unsigned long dabr)
|
||||
DEFINE_PER_CPU(struct cpu_usage, cpu_usage_array);
|
||||
#endif
|
||||
|
||||
static DEFINE_PER_CPU(unsigned long, current_dabr);
|
||||
|
||||
struct task_struct *__switch_to(struct task_struct *prev,
|
||||
struct task_struct *new)
|
||||
{
|
||||
@@ -325,10 +327,8 @@ struct task_struct *__switch_to(struct task_struct *prev,
|
||||
|
||||
#endif /* CONFIG_SMP */
|
||||
|
||||
if (unlikely(__get_cpu_var(current_dabr) != new->thread.dabr)) {
|
||||
if (unlikely(__get_cpu_var(current_dabr) != new->thread.dabr))
|
||||
set_dabr(new->thread.dabr);
|
||||
__get_cpu_var(current_dabr) = new->thread.dabr;
|
||||
}
|
||||
|
||||
new_thread = &new->thread;
|
||||
old_thread = ¤t->thread;
|
||||
|
@@ -356,7 +356,7 @@ static int rtas_excl_open(struct inode *inode, struct file *file)
|
||||
|
||||
/* Enforce exclusive open with use count of PDE */
|
||||
spin_lock(&flash_file_open_lock);
|
||||
if (atomic_read(&dp->count) > 1) {
|
||||
if (atomic_read(&dp->count) > 2) {
|
||||
spin_unlock(&flash_file_open_lock);
|
||||
return -EBUSY;
|
||||
}
|
||||
|
Reference in New Issue
Block a user