]> git.karo-electronics.de Git - karo-tx-linux.git/commit
x86, MCE, AMD: Adjust initcall sequence for xen
authorLiu, Jinsong <jinsong.liu@intel.com>
Thu, 7 Jun 2012 11:58:50 +0000 (19:58 +0800)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Thu, 7 Jun 2012 14:52:29 +0000 (10:52 -0400)
commite257c96df973df3afcdc21dde0025bfcf54e6907
tree8ccf49b8f9cd47ae8c54cd8ce9ca1e72d238a2e5
parente2a911a328642ce2c4f7ac9f4c4807f569f32769
x86, MCE, AMD: Adjust initcall sequence for xen

there are 3 funcs which need to be _initcalled in a logic sequence:
1. xen_late_init_mcelog
2. mcheck_init_device
3. threshold_init_device

xen_late_init_mcelog must register xen_mce_chrdev_device before
native mce_chrdev_device registration if running under xen platform;

mcheck_init_device should be inited before threshold_init_device to
initialize mce_device, otherwise a a NULL ptr dereference will cause panic.

so we use following _initcalls
1. device_initcall(xen_late_init_mcelog);
2. device_initcall_sync(mcheck_init_device);
3. late_initcall(threshold_init_device);

when running under xen, the initcall order is 1,2,3;
on baremetal, we skip 1 and we do only 2 and 3.

Acked-and-tested-by: Borislav Petkov <bp@amd64.org>
Suggested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
arch/x86/kernel/cpu/mcheck/mce_amd.c