--- zzzz-none-000/linux-2.6.28.10/arch/mips/kernel/branch.c 2009-05-02 18:54:43.000000000 +0000 +++ fusiv-7390-686/linux-2.6.28.10/arch/mips/kernel/branch.c 2011-06-21 13:04:40.000000000 +0000 @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -28,8 +29,10 @@ union mips_instruction insn; epc = regs->cp0_epc; - if (epc & 3) - goto unaligned; + + if(epc & 1) { + return __compute_return_epc_mips16(regs); + } /* * Read the instruction @@ -209,11 +212,6 @@ return 0; -unaligned: - printk("%s: unaligned epc - sending SIGBUS.\n", current->comm); - force_sig(SIGBUS, current); - return -EFAULT; - sigill: printk("%s: DSP branch but not DSP ASE - sending SIGBUS.\n", current->comm); force_sig(SIGBUS, current);