linux/arch
Jan Kiszka 0924ab2cfa KVM: x86: Prevent starting PIT timers in the absence of irqchip support
User space may create the PIT and forgets about setting up the irqchips.
In that case, firing PIT IRQs will crash the host:

BUG: unable to handle kernel NULL pointer dereference at 0000000000000128
IP: [<ffffffffa10f6280>] kvm_set_irq+0x30/0x170 [kvm]
...
Call Trace:
 [<ffffffffa11228c1>] pit_do_work+0x51/0xd0 [kvm]
 [<ffffffff81071431>] process_one_work+0x111/0x4d0
 [<ffffffff81071bb2>] worker_thread+0x152/0x340
 [<ffffffff81075c8e>] kthread+0x7e/0x90
 [<ffffffff815a4474>] kernel_thread_helper+0x4/0x10

Prevent this by checking the irqchip mode before starting a timer. We
can't deny creating the PIT if the irqchips aren't set up yet as
current user land expects this order to work.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
2011-12-25 17:13:18 +02:00
..
alpha Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
arm Merge branch 'rmobile-fixes-for-linus' of git://github.com/pmundt/linux-sh 2011-12-20 11:32:18 -08:00
avr32 Merge git://git.infradead.org/mtd-2.6 2011-11-07 09:11:16 -08:00
blackfin blackfin: Fixup export.h includes 2011-11-14 17:15:23 +08:00
cris net: Fix references to deleted NET_ETHERNET Kconfig setting. 2011-11-09 19:26:53 -05:00
frv
h8300
hexagon
ia64 Merge branch 'upstream/xen-settime' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen 2011-11-06 20:15:05 -08:00
m32r Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2011-11-06 18:54:53 -08:00
m68k m68k: Wire up process_vm_{read,write}v 2011-12-06 20:37:58 +01:00
microblaze microblaze: bury asm/namei.h 2011-11-21 16:48:28 -05:00
mips Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2011-12-05 16:54:00 -08:00
mn10300
openrisc Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2011-11-06 18:54:53 -08:00
parisc
powerpc powerpc/44x: Add mtd ndfc to the ppx44x defconfig 2011-11-25 10:06:00 +11:00
s390 oprofile: Fix uninitialized memory access when writing to writing to oprofilefs 2011-12-19 17:18:43 +01:00
score
sh sh: fix build warning in board-sh7757lcr 2011-11-18 16:45:50 +09:00
sparc sparc64: Fix MSIQ HV call ordering in pci_sun4v_msiq_build_irq(). 2011-12-22 13:46:53 -08:00
tile arch/tile: use new generic {enable,disable}_percpu_irq() routines 2011-12-03 15:31:49 -05:00
um Merge branch 'for-linus' of git://github.com/richardweinberger/linux 2011-11-02 09:45:39 -07:00
unicore32 unicore32, exec: remove redundant set_fs(USER_DS) 2011-11-16 10:50:09 +08:00
x86 KVM: x86: Prevent starting PIT timers in the absence of irqchip support 2011-12-25 17:13:18 +02:00
xtensa
.gitignore
Kconfig