Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: [S390] css: fix rsid evaluation for 2nd crw [S390] nohz/s390: fix arch_needs_cpu() return value on offline cpus
This commit is contained in:
Коммит
c2048b0a0a
|
@ -19,6 +19,7 @@
|
|||
#include <linux/kernel_stat.h>
|
||||
#include <linux/rcupdate.h>
|
||||
#include <linux/posix-timers.h>
|
||||
#include <linux/cpu.h>
|
||||
|
||||
#include <asm/s390_ext.h>
|
||||
#include <asm/timer.h>
|
||||
|
@ -566,6 +567,23 @@ void init_cpu_vtimer(void)
|
|||
__ctl_set_bit(0,10);
|
||||
}
|
||||
|
||||
static int __cpuinit s390_nohz_notify(struct notifier_block *self,
|
||||
unsigned long action, void *hcpu)
|
||||
{
|
||||
struct s390_idle_data *idle;
|
||||
long cpu = (long) hcpu;
|
||||
|
||||
idle = &per_cpu(s390_idle, cpu);
|
||||
switch (action) {
|
||||
case CPU_DYING:
|
||||
case CPU_DYING_FROZEN:
|
||||
idle->nohz_delay = 0;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
||||
void __init vtime_init(void)
|
||||
{
|
||||
/* request the cpu timer external interrupt */
|
||||
|
@ -574,5 +592,6 @@ void __init vtime_init(void)
|
|||
|
||||
/* Enable cpu timer interrupts on the boot cpu. */
|
||||
init_cpu_vtimer();
|
||||
cpu_notifier(s390_nohz_notify, 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -635,7 +635,7 @@ static void css_process_crw(struct crw *crw0, struct crw *crw1, int overflow)
|
|||
init_subchannel_id(&mchk_schid);
|
||||
mchk_schid.sch_no = crw0->rsid;
|
||||
if (crw1)
|
||||
mchk_schid.ssid = (crw1->rsid >> 8) & 3;
|
||||
mchk_schid.ssid = (crw1->rsid >> 4) & 3;
|
||||
|
||||
/*
|
||||
* Since we are always presented with IPI in the CRW, we have to
|
||||
|
|
Загрузка…
Ссылка в новой задаче