diff -ruP linux-2.6.5.orig/arch/sparc/kernel/Makefile linux-2.6.5/arch/sparc/kernel/Makefile --- linux-2.6.5.orig/arch/sparc/kernel/Makefile Sun Apr 4 05:38:13 2004 +++ linux-2.6.5/arch/sparc/kernel/Makefile Thu Apr 22 21:03:21 2004 @@ -12,7 +12,7 @@ sys_sparc.o sunos_asm.o systbls.o \ time.o windows.o cpu.o devices.o sclow.o \ tadpole.o tick14.o ptrace.o sys_solaris.o \ - unaligned.o muldiv.o semaphore.o + unaligned.o unaligned_panic.o muldiv.o semaphore.o obj-$(CONFIG_PCI) += pcic.o obj-$(CONFIG_SUN4) += sun4setup.o diff -ruP linux-2.6.5.orig/arch/sparc/kernel/unaligned.c linux-2.6.5/arch/sparc/kernel/unaligned.c --- linux-2.6.5.orig/arch/sparc/kernel/unaligned.c Sun Apr 4 05:37:59 2004 +++ linux-2.6.5/arch/sparc/kernel/unaligned.c Thu Apr 22 21:13:38 2004 @@ -170,10 +170,7 @@ } /* This is just to make gcc think panic does return... */ -static void unaligned_panic(char *str) -{ - panic(str); -} +extern void unaligned_panic(char *str); #define do_integer_load(dest_reg, size, saddr, is_signed, errh) ({ \ __asm__ __volatile__ ( \ @@ -529,6 +526,8 @@ unaligned_panic("Impossible user unaligned trap."); __asm__ __volatile__ ("\n" +".globl\tuser_unaligned_trap_fault\n" +"\t.type\tuser_unaligned_trap_fault, @function\n" "user_unaligned_trap_fault:\n\t" "mov %0, %%o0\n\t" "call user_mna_trap_fault\n\t" diff -ruP linux-2.6.5.orig/arch/sparc/kernel/unaligned_panic.c linux-2.6.5/arch/sparc/kernel/unaligned_panic.c --- linux-2.6.5.orig/arch/sparc/kernel/unaligned_panic.c Thu Jan 1 01:00:00 1970 +++ linux-2.6.5/arch/sparc/kernel/unaligned_panic.c Thu Apr 22 21:33:23 2004 @@ -0,0 +1,27 @@ +/* $Id: unaligned.c,v 1.23 2001/12/21 00:54:31 davem Exp $ + * unaligned.c: Unaligned load/store trap handling with special + * cases for the kernel to do them more quickly. + * + * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) + * Copyright (C) 1996 Jakub Jelinek (jj@sunsite.mff.cuni.cz) + */ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +extern void unaligned_panic(char *str); + +/* This is just to make gcc think panic does return... */ +void unaligned_panic(char *str) +{ + panic(str); +}