aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc
diff options
context:
space:
mode:
authorKyle McMartin <kyle@mcmartin.ca>2009-01-03 01:35:40 -0500
committerKyle McMartin <kyle@mcmartin.ca>2009-01-05 14:18:27 -0500
commitae16489eb1175066c8f3008fc3c0396c525e1906 (patch)
tree575fe8aeaeea8f2bf246cbc603dbb2d510e88bd6 /arch/parisc
parentc61c25eb02757ecf697015ef4ae3675c5e114e2e (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')
-rw-r--r--arch/parisc/kernel/hpmc.S8
-rw-r--r--arch/parisc/kernel/traps.c5
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
82ENTRY(os_hpmc) 82ENTRY(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
297ENDPROC(os_hpmc) 298ENDPROC(os_hpmc)
298ENTRY(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
304os_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
826int __init check_ivt(void *iva) 826int __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;