aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/mca_drv.c
diff options
context:
space:
mode:
authorHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>2006-02-09 14:42:55 -0800
committerTony Luck <tony.luck@intel.com>2006-02-09 14:42:55 -0800
commita94746461765dae41fb82e4dac027d14af4d80d8 (patch)
treece7fa53c3509c6564fad23e42c7737560b085b2d /arch/ia64/kernel/mca_drv.c
parent[IA64] sys32_signal() forgets to initialize ->sa_mask (diff)
downloadlinux-dev-a94746461765dae41fb82e4dac027d14af4d80d8.tar.xz
linux-dev-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/ia64/kernel/mca_drv.c')
-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);
/*