/[pkg-src]/trunk/kernel26-magellan/patches-2.6.16-r12/0124-2.6.16.12-mips-floating-point-exceptions.patch |
Contents of /trunk/kernel26-magellan/patches-2.6.16-r12/0124-2.6.16.12-mips-floating-point-exceptions.patch
Parent Directory | Revision Log
Revision 72 -
(show annotations)
(download)
Mon Jun 5 09:25:38 2006 UTC (18 years, 3 months ago) by niro
File size: 1206 byte(s)
Mon Jun 5 09:25:38 2006 UTC (18 years, 3 months ago) by niro
File size: 1206 byte(s)
ver bump to 2.6.16-r12: - updated to linux-2.6.16.19 - updated to ck11
1 | From: Win Treese <treese@acm.org> |
2 | Date: Wed, 26 Apr 2006 23:00:04 +0000 (+0100) |
3 | Subject: [PATCH] MIPS: Fix branch emulation for floating-point exceptions. |
4 | X-Git-Url: http://www.kernel.org/git/?p=linux/kernel/git/stable/linux-2.6.16.y.git;a=commitdiff;h=a5ddce5373218e73fbd58c20a96edd730048529d |
5 | |
6 | [PATCH] MIPS: Fix branch emulation for floating-point exceptions. |
7 | |
8 | In the branch emulation for floating-point exceptions, __compute_return_epc |
9 | must determine for bc1f et al which condition code bit to test. This is |
10 | based on bits <4:2> of the rt field. The switch statement to distinguish |
11 | bc1f et al needs to use only the two low bits of rt, but the old code tests |
12 | on the whole rt field. This patch masks off the proper bits. |
13 | |
14 | Signed-off-by: Win Treese <treese@acm.org> |
15 | Signed-off-by: Ralf Baechle <ralf@linux-mips.org> |
16 | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
17 | --- |
18 | |
19 | --- a/arch/mips/kernel/branch.c |
20 | +++ b/arch/mips/kernel/branch.c |
21 | @@ -184,7 +184,7 @@ int __compute_return_epc(struct pt_regs |
22 | bit = (insn.i_format.rt >> 2); |
23 | bit += (bit != 0); |
24 | bit += 23; |
25 | - switch (insn.i_format.rt) { |
26 | + switch (insn.i_format.rt & 3) { |
27 | case 0: /* bc1f */ |
28 | case 2: /* bc1fl */ |
29 | if (~fcr31 & (1 << bit)) |