Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1706780

Re: linux-next: manual merge of the userns tree with the mips tree

From ebiederm@xmission.com (Eric W. Biederman)
Newsgroups linux.kernel
Subject Re: linux-next: manual merge of the userns tree with the mips tree
Date 2017-08-08 19:50 +0200
Message-ID <ucgNH-3eK-7@gated-at.bofh.it> (permalink)
References <uc55T-3cU-1@gated-at.bofh.it> <uc5IB-3tO-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Ralf Baechle <ralf@linux-mips.org> writes:

> On Tue, Aug 08, 2017 at 03:10:04PM +1000, Stephen Rothwell wrote:
>
> (Maciej added to cc.)
>
>> Hi Eric,
>> 
>> Today's linux-next merge of the userns tree got a conflict in:
>> 
>>   arch/mips/kernel/traps.c
>> 
>> between commit:
>> 
>>   260a789828aa ("MIPS: signal: Remove unreachable code from force_fcr31_sig().")
>> 
>> from the mips tree and commit:
>> 
>>   ea1b75cf9138 ("signal/mips: Document a conflict with SI_USER with SIGFPE")
>> 
>> from the userns tree.
>> 
>> I fixed it up (the former removed the code updated by the latter) and
>> can carry the fix as necessary. This is now fixed as far as linux-next
>> is concerned, but any non trivial conflicts should be mentioned to your
>> upstream maintainer when your tree is submitted for merging.  You may
>> also want to consider cooperating with the maintainer of the conflicting
>> tree to minimise any particularly complex conflicts.
>
> Eric,
>
> after yesterday's emails on the topic I think commit ea1b75cf9138 ("signal/
> mips: Document a conflict with SI_USER with SIGFPE") should be
> dropped.


I have a follow on change I am about to post and would like to carry
that replaces force_sig_info with force_sig_fault.  So force_fcr31_sig
winds up looking like:

void force_fcr31_sig(unsigned long fcr31, void __user *fault_addr,
		     struct task_struct *tsk)
{
	int si_code;

	if (fcr31 & FPU_CSR_INV_X)
		si_code = FPE_FLTINV;
	else if (fcr31 & FPU_CSR_DIV_X)
		si_code = FPE_FLTDIV;
	else if (fcr31 & FPU_CSR_OVF_X)
		si_code = FPE_FLTOVF;
	else if (fcr31 & FPU_CSR_UDF_X)
		si_code = FPE_FLTUND;
	else if (fcr31 & FPU_CSR_INE_X)
		si_code = FPE_FLTRES;
	else
		si_code = FPE_FIXME;
	force_sig_fault(SIGFPE, si_code, fault_addr, tsk);
}

Which causes gcc to complain if the last else clause is dropped.

Would you be happy if the function wound up looking like:

void force_fcr31_sig(unsigned long fcr31, void __user *fault_addr,
		     struct task_struct *tsk)
{
	int si_code;

	if (fcr31 & FPU_CSR_INV_X)
		si_code = FPE_FLTINV;
	else if (fcr31 & FPU_CSR_DIV_X)
		si_code = FPE_FLTDIV;
	else if (fcr31 & FPU_CSR_OVF_X)
		si_code = FPE_FLTOVF;
	else if (fcr31 & FPU_CSR_UDF_X)
		si_code = FPE_FLTUND;
	else if (fcr31 & FPU_CSR_INE_X)
		si_code = FPE_FLTRES;
	else
		return; /* Broken hardware? */

	force_sig_fault(SIGFPE, si_code, fault_addr, tsk);
}

As it is now clear that code path should never happen I will be happy to
queue change that effectively reverts of ea1b75cf9138 ("signal/mips:
Document a conflict with SI_USER with SIGFPE") and just returns from
force_fcr32_sig in that case.

Eric

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

linux-next: manual merge of the userns tree with the mips tree Stephen Rothwell <sfr@canb.auug.org.au> - 2017-08-08 07:20 +0200
  Re: linux-next: manual merge of the userns tree with the mips tree Ralf Baechle <ralf@linux-mips.org> - 2017-08-08 08:00 +0200
    Re: linux-next: manual merge of the userns tree with the mips tree ebiederm@xmission.com (Eric W. Biederman) - 2017-08-08 19:50 +0200
      [PATCH] mips/signal: In force_fcr31_sig return in the impossible case ebiederm@xmission.com (Eric W. Biederman) - 2017-08-08 21:20 +0200

csiph-web