* [PATCH] math-emu: fix wrong word index in _FP_FRAC_CLZ_4
@ 2026-09-27 0:56 Imre Kaloz
0 siblings, 0 replies; only message in thread
From: Imre Kaloz @ 2026-09-27 0:56 UTC (permalink / raw)
To: Andreas Larsson, sparclinux; +Cc: David S. Miller, linux-kernel, stable
_FP_FRAC_CLZ_4 picks a word by testing X##_f[3], X##_f[2] and X##_f[1]
in turn and counts the leading zeros of the first non-zero one. The
X##_f[1] branch passes X##_f[2] to __FP_CLZ, a word already known to be
zero, so the result is 3 * _FP_W_TYPE_SIZE - 1 whatever X##_f[1] holds.
Normalizing a quad then shifts by up to a word too much whenever the
leading set bit falls in word 1. sparc traps every quad operation to
do_mathemu(), so hex floats parsed by strtod() and scanf() in ordinary
user code come back wrong.
With this, the affected float-parse tests pass on a SPARCstation 20.
The wrong index has been there since 2.1.97.
Cc: stable@vger.kernel.org
Signed-off-by: Imre Kaloz <kaloz@kernel.org>
---
Notes:
- _FP_FRAC_CLZ_4 is the generic 4-word helper in include/math-emu/op-4.h,
which is why LKML is on Cc.
- The checkpatch error "space required after that ','" is the
surrounding soft-fp idiom: every neighbouring line in op-4.h is
written __FP_CLZ(R,X##_f[N]).
- No Fixes: tag: this has been broken since 2.1.97, before the git
history. checkpatch asks for one to go with the stable@ Cc, but
there is no commit to name.
include/math-emu/op-4.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/math-emu/op-4.h b/include/math-emu/op-4.h
index ba226f8237a6..429c8f5cbf8a 100644
--- a/include/math-emu/op-4.h
+++ b/include/math-emu/op-4.h
@@ -170,7 +170,7 @@
} \
else if (X##_f[1]) \
{ \
- __FP_CLZ(R,X##_f[2]); \
+ __FP_CLZ(R,X##_f[1]); \
R += _FP_W_TYPE_SIZE*2; \
} \
else \
base-commit: 62f4c998b297cf233997a2b4cd6fc2d2df0319c9
--
2.47.3
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-09-27 0:57 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-27 0:56 [PATCH] math-emu: fix wrong word index in _FP_FRAC_CLZ_4 Imre Kaloz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®