Re: 4.0-rc1 breakage in FPE?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David Daney <ddaney.cavm@xxxxxxxxx> writes:

> On 02/25/2015 01:31 PM, Måns Rullgård wrote:
>> Paul Martin <paul.martin@xxxxxxxxxxxxxxx> writes:
>>
>>> Some change between 3.19 and 4.0-rc1 has broken the FPE such that some
>>> code running on an Octeon II is subtly not working.
>>>
>
> Can you say where your userspace comes from, so we can try to
> reproduce the issue?
>
>>> eg.
>>>
>>>    $ echo "1 2" | gawk '{ print $1 }'
>>>    1 2
>>>
>>> which should output (and does output on 3.19)
>>>
>>>    $ echo "1 2" | gawk '{ print $1 }'
>>>    1
>>>
>>> I'm going to try bisecting this over the next few days.
>>
>> Are you running a 32-bit userland?  If so, enabling
>> MIPS_O32_FP64_SUPPORT should fix this.
>
> ??
>
> 32-bit userland (Debian for instance) typically shouldn't need special
> "Exprimental" config options enabled.

Indeed, it should not.  Someone made a mistake.

> If we can identify the offending patch, we should revert it.

The offending patch is 46490b57 "MIPS: kernel: elf: Improve the overall
ABI and FPU mode checks"

There is no need for a full revert.  This is enough to make things work:

diff --git a/arch/mips/kernel/elf.c b/arch/mips/kernel/elf.c
index d2c09f6..57f0353 100644
--- a/arch/mips/kernel/elf.c
+++ b/arch/mips/kernel/elf.c
@@ -148,9 +148,6 @@ int arch_check_elf(void *_ehdr, bool has_interpreter,
 	struct mode_req prog_req, interp_req;
 	int fp_abi, interp_fp_abi, abi0, abi1, max_abi;
 
-	if (!config_enabled(CONFIG_MIPS_O32_FP64_SUPPORT))
-		return 0;
-
 	fp_abi = get_fp_abi(state->fp_abi);
 
 	if (has_interpreter) {
@@ -245,9 +242,6 @@ void mips_set_personality_fp(struct arch_elf_state *state)
 	 * not be worried about N32/N64 binaries.
 	 */
 
-	if (!config_enabled(CONFIG_MIPS_O32_FP64_SUPPORT))
-		return;
-
 	switch (state->overall_fp_mode) {
 	case FP_FRE:
 		set_thread_fp_mode(1, 0);

-- 
Måns Rullgård
mans@xxxxxxxxx





[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux