summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorHidetoshi Seto2006-02-09 23:42:55 +0100
committerTony Luck2006-02-09 23:42:55 +0100
commita94746461765dae41fb82e4dac027d14af4d80d8 (patch)
treece7fa53c3509c6564fad23e42c7737560b085b2d /arch
parent[IA64] sys32_signal() forgets to initialize ->sa_mask (diff)
downloadkernel-qcow2-linux-a94746461765dae41fb82e4dac027d14af4d80d8.tar.gz
kernel-qcow2-linux-a94746461765dae41fb82e4dac027d14af4d80d8.tar.xz
kernel-qcow2-linux-a94746461765dae41fb82e4dac027d14af4d80d8.zip
[IA64] mca_drv: Add minstate validation
MCA driver can cause panic if kernel gets a state info with no minstate. This patch adds minstate validation before handling it. Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/ia64/kernel/mca_drv.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/ia64/kernel/mca_drv.c b/arch/ia64/kernel/mca_drv.c
index 3492e3211a44..8fd93afa75a7 100644
--- a/arch/ia64/kernel/mca_drv.c
+++ b/arch/ia64/kernel/mca_drv.c
@@ -437,6 +437,9 @@ recover_from_read_error(slidx_table_t *slidx,
* the process not have any locks of kernel.
*/
+ /* Is minstate valid? */
+ if (!peidx_bottom(peidx) || !(peidx_bottom(peidx)->valid.minstate))
+ return 0;
psr1 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_ipsr);
/*