Ralf Baechle <ralf@xxxxxxxxxxxxxx> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html