diff options
author | Kyle McMartin <kyle@mcmartin.ca> | 2009-01-03 07:35:40 +0100 |
---|---|---|
committer | Kyle McMartin <kyle@mcmartin.ca> | 2009-01-05 20:18:27 +0100 |
commit | ae16489eb1175066c8f3008fc3c0396c525e1906 (patch) | |
tree | 575fe8aeaeea8f2bf246cbc603dbb2d510e88bd6 /arch/parisc | |
parent | parisc: fix kernel crash (protection id trap) when compiling ruby1.9 (diff) | |
download | linux-ae16489eb1175066c8f3008fc3c0396c525e1906.tar.xz linux-ae16489eb1175066c8f3008fc3c0396c525e1906.zip |
parisc: export length of os_hpmc vector
and use this instead of dealing with exporting start/end and
toying with function descriptors.
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
Diffstat (limited to 'arch/parisc')
-rw-r--r-- | arch/parisc/kernel/hpmc.S | 8 | ||||
-rw-r--r-- | arch/parisc/kernel/traps.c | 5 |
2 files changed, 9 insertions, 4 deletions
diff --git a/arch/parisc/kernel/hpmc.S b/arch/parisc/kernel/hpmc.S index 2cbf13b3ef11..5595a2f31181 100644 --- a/arch/parisc/kernel/hpmc.S +++ b/arch/parisc/kernel/hpmc.S @@ -80,6 +80,7 @@ END(hpmc_pim_data) .import intr_save, code ENTRY(os_hpmc) +.os_hpmc: /* * registers modified: @@ -295,5 +296,10 @@ os_hpmc_6: b . nop ENDPROC(os_hpmc) -ENTRY(os_hpmc_end) /* this label used to compute os_hpmc checksum */ +.os_hpmc_end: nop +.data +.align 4 + .export os_hpmc_size +os_hpmc_size: + .word .os_hpmc_end-.os_hpmc diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c index 548ba0c654d2..ba658d2086f7 100644 --- a/arch/parisc/kernel/traps.c +++ b/arch/parisc/kernel/traps.c @@ -825,8 +825,8 @@ void handle_interruption(int code, struct pt_regs *regs) int __init check_ivt(void *iva) { + extern u32 os_hpmc_size; extern const u32 os_hpmc[]; - extern const u32 os_hpmc_end[]; int i; u32 check = 0; @@ -843,8 +843,7 @@ int __init check_ivt(void *iva) *ivap++ = 0; /* Compute Checksum for HPMC handler */ - - length = os_hpmc_end - os_hpmc; + length = os_hpmc_size; ivap[7] = length; hpmcp = (u32 *)os_hpmc; |