diff options
author | Kyle McMartin <kyle@mcmartin.ca> | 2009-01-03 01:35:40 -0500 |
---|---|---|
committer | Kyle McMartin <kyle@mcmartin.ca> | 2009-01-05 14:18:27 -0500 |
commit | ae16489eb1175066c8f3008fc3c0396c525e1906 (patch) | |
tree | 575fe8aeaeea8f2bf246cbc603dbb2d510e88bd6 /arch/parisc/kernel | |
parent | c61c25eb02757ecf697015ef4ae3675c5e114e2e (diff) |
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/kernel')
-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) | |||
80 | 80 | ||
81 | .import intr_save, code | 81 | .import intr_save, code |
82 | ENTRY(os_hpmc) | 82 | ENTRY(os_hpmc) |
83 | .os_hpmc: | ||
83 | 84 | ||
84 | /* | 85 | /* |
85 | * registers modified: | 86 | * registers modified: |
@@ -295,5 +296,10 @@ os_hpmc_6: | |||
295 | b . | 296 | b . |
296 | nop | 297 | nop |
297 | ENDPROC(os_hpmc) | 298 | ENDPROC(os_hpmc) |
298 | ENTRY(os_hpmc_end) /* this label used to compute os_hpmc checksum */ | 299 | .os_hpmc_end: |
299 | nop | 300 | nop |
301 | .data | ||
302 | .align 4 | ||
303 | .export os_hpmc_size | ||
304 | os_hpmc_size: | ||
305 | .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) | |||
825 | 825 | ||
826 | int __init check_ivt(void *iva) | 826 | int __init check_ivt(void *iva) |
827 | { | 827 | { |
828 | extern u32 os_hpmc_size; | ||
828 | extern const u32 os_hpmc[]; | 829 | extern const u32 os_hpmc[]; |
829 | extern const u32 os_hpmc_end[]; | ||
830 | 830 | ||
831 | int i; | 831 | int i; |
832 | u32 check = 0; | 832 | u32 check = 0; |
@@ -843,8 +843,7 @@ int __init check_ivt(void *iva) | |||
843 | *ivap++ = 0; | 843 | *ivap++ = 0; |
844 | 844 | ||
845 | /* Compute Checksum for HPMC handler */ | 845 | /* Compute Checksum for HPMC handler */ |
846 | 846 | length = os_hpmc_size; | |
847 | length = os_hpmc_end - os_hpmc; | ||
848 | ivap[7] = length; | 847 | ivap[7] = length; |
849 | 848 | ||
850 | hpmcp = (u32 *)os_hpmc; | 849 | hpmcp = (u32 *)os_hpmc; |