/[pkg-src]/trunk/kernel26-magellan/patches-2.6.16-r12/0124-2.6.16.12-mips-floating-point-exceptions.patch |
Annotation 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 -
(hide 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 | niro | 72 | 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)) |