aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/parisc/kernel/traps.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
index 68e671a11987..71d31274d782 100644
--- a/arch/parisc/kernel/traps.c
+++ b/arch/parisc/kernel/traps.c
@@ -837,6 +837,17 @@ void __init initialize_ivt(const void *iva)
837 if (pdc_instr(&instr) == PDC_OK) 837 if (pdc_instr(&instr) == PDC_OK)
838 ivap[0] = instr; 838 ivap[0] = instr;
839 839
840 /*
841 * Rules for the checksum of the HPMC handler:
842 * 1. The IVA does not point to PDC/PDH space (ie: the OS has installed
843 * its own IVA).
844 * 2. The word at IVA + 32 is nonzero.
845 * 3. If Length (IVA + 60) is not zero, then Length (IVA + 60) and
846 * Address (IVA + 56) are word-aligned.
847 * 4. The checksum of the 8 words starting at IVA + 32 plus the sum of
848 * the Length/4 words starting at Address is zero.
849 */
850
840 /* Compute Checksum for HPMC handler */ 851 /* Compute Checksum for HPMC handler */
841 length = os_hpmc_size; 852 length = os_hpmc_size;
842 ivap[7] = length; 853 ivap[7] = length;