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>
This commit is contained in:
Kyle McMartin 2009-01-03 06:35:40 +00:00
parent c61c25eb02
commit ae16489eb1
2 changed files with 9 additions and 4 deletions

View File

@ -80,6 +80,7 @@ END(hpmc_pim_data)
.import intr_save, code .import intr_save, code
ENTRY(os_hpmc) ENTRY(os_hpmc)
.os_hpmc:
/* /*
* registers modified: * registers modified:
@ -295,5 +296,10 @@ os_hpmc_6:
b . b .
nop nop
ENDPROC(os_hpmc) ENDPROC(os_hpmc)
ENTRY(os_hpmc_end) /* this label used to compute os_hpmc checksum */ .os_hpmc_end:
nop nop
.data
.align 4
.export os_hpmc_size
os_hpmc_size:
.word .os_hpmc_end-.os_hpmc

View File

@ -825,8 +825,8 @@ void handle_interruption(int code, struct pt_regs *regs)
int __init check_ivt(void *iva) int __init check_ivt(void *iva)
{ {
extern u32 os_hpmc_size;
extern const u32 os_hpmc[]; extern const u32 os_hpmc[];
extern const u32 os_hpmc_end[];
int i; int i;
u32 check = 0; u32 check = 0;
@ -843,8 +843,7 @@ int __init check_ivt(void *iva)
*ivap++ = 0; *ivap++ = 0;
/* Compute Checksum for HPMC handler */ /* Compute Checksum for HPMC handler */
length = os_hpmc_size;
length = os_hpmc_end - os_hpmc;
ivap[7] = length; ivap[7] = length;
hpmcp = (u32 *)os_hpmc; hpmcp = (u32 *)os_hpmc;