Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c3d4ed4e3e5aa8d9e6b4b795f004a7028ce780e9 Commit: c3d4ed4e3e5aa8d9e6b4b795f004a7028ce780e9 Parent: 3bb457af4fa86dceef57d7c3e959aff162457fdc Author: Kyle McMartin <[EMAIL PROTECTED]> AuthorDate: Mon Jun 4 02:26:52 2007 -0400 Committer: Kyle McMartin <[EMAIL PROTECTED]> CommitDate: Mon Jun 4 02:26:52 2007 -0400
[PARISC] Fix kernel panic in check_ivt check_ivt had some seriously broken code wrt function pointers on parisc64. Instead of referencing the hpmc code via a function pointer, export symbols and reference it as a const array. Thanks to jda for pointing out the broken 64-bit func ptr handling. Signed-off-by: Kyle McMartin <[EMAIL PROTECTED]> --- arch/parisc/kernel/hpmc.S | 5 +---- arch/parisc/kernel/traps.c | 7 ++++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/arch/parisc/kernel/hpmc.S b/arch/parisc/kernel/hpmc.S index d8baa15..43b41df 100644 --- a/arch/parisc/kernel/hpmc.S +++ b/arch/parisc/kernel/hpmc.S @@ -295,8 +295,5 @@ os_hpmc_6: b . nop ENDPROC(os_hpmc) - - /* this label used to compute os_hpmc checksum */ -ENTRY(os_hpmc_end) - +ENTRY(os_hpmc_end) /* this label used to compute os_hpmc checksum */ nop diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c index 0ba1d3d..c3ec9f1 100644 --- a/arch/parisc/kernel/traps.c +++ b/arch/parisc/kernel/traps.c @@ -802,13 +802,14 @@ void handle_interruption(int code, struct pt_regs *regs) int __init check_ivt(void *iva) { + extern const u32 os_hpmc[]; + extern const u32 os_hpmc_end[]; + int i; u32 check = 0; u32 *ivap; u32 *hpmcp; u32 length; - extern void os_hpmc(void); - extern void os_hpmc_end(void); if (strcmp((char *)iva, "cows can fly")) return -1; @@ -820,7 +821,7 @@ int __init check_ivt(void *iva) /* Compute Checksum for HPMC handler */ - length = (u32)((unsigned long)os_hpmc_end - (unsigned long)os_hpmc); + length = os_hpmc_end - os_hpmc; ivap[7] = length; hpmcp = (u32 *)os_hpmc; - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html