Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752370AbdHHRmN (ORCPT ); Tue, 8 Aug 2017 13:42:13 -0400 Received: from out02.mta.xmission.com ([166.70.13.232]:32854 "EHLO out02.mta.xmission.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752311AbdHHRmL (ORCPT ); Tue, 8 Aug 2017 13:42:11 -0400 From: ebiederm@xmission.com (Eric W. Biederman) To: Ralf Baechle Cc: Stephen Rothwell , James Hogan , Linux-Next Mailing List , Linux Kernel Mailing List , "Maciej W. Rozycki" References: <20170808151004.071d5a6d@canb.auug.org.au> <20170808055822.GI3509@linux-mips.org> Date: Tue, 08 Aug 2017 12:33:46 -0500 In-Reply-To: <20170808055822.GI3509@linux-mips.org> (Ralf Baechle's message of "Tue, 8 Aug 2017 07:58:22 +0200") Message-ID: <87wp6eezgl.fsf@xmission.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-XM-SPF: eid=1df8W4-0003TZ-DE;;;mid=<87wp6eezgl.fsf@xmission.com>;;;hst=in02.mta.xmission.com;;;ip=67.3.200.44;;;frm=ebiederm@xmission.com;;;spf=neutral X-XM-AID: U2FsdGVkX19BaHnmx2uEc+sFq/WoEBrh8umdkfxi+cw= X-SA-Exim-Connect-IP: 67.3.200.44 X-SA-Exim-Mail-From: ebiederm@xmission.com X-Spam-Report: * -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP * 0.7 XMSubLong Long Subject * 0.0 TVD_RCVD_IP Message was received from an IP address * 0.0 T_TM2_M_HEADER_IN_MSG BODY: No description available. * 0.8 BAYES_50 BODY: Bayes spam probability is 40 to 60% * [score: 0.5000] * -0.0 DCC_CHECK_NEGATIVE Not listed in DCC * [sa06 1397; Body=1 Fuz1=1 Fuz2=1] X-Spam-DCC: XMission; sa06 1397; Body=1 Fuz1=1 Fuz2=1 X-Spam-Combo: ;Ralf Baechle X-Spam-Relay-Country: X-Spam-Timing: total 5541 ms - load_scoreonly_sql: 0.04 (0.0%), signal_user_changed: 5 (0.1%), b_tie_ro: 4.3 (0.1%), parse: 0.80 (0.0%), extract_message_metadata: 11 (0.2%), get_uri_detail_list: 1.59 (0.0%), tests_pri_-1000: 4.8 (0.1%), tests_pri_-950: 1.17 (0.0%), tests_pri_-900: 0.95 (0.0%), tests_pri_-400: 22 (0.4%), check_bayes: 21 (0.4%), b_tokenize: 7 (0.1%), b_tok_get_all: 6 (0.1%), b_comp_prob: 2.1 (0.0%), b_tok_touch_all: 3.5 (0.1%), b_finish: 0.63 (0.0%), tests_pri_0: 329 (5.9%), check_dkim_signature: 0.52 (0.0%), check_dkim_adsp: 2.7 (0.0%), tests_pri_500: 5162 (93.2%), poll_dns_idle: 5157 (93.1%), rewrite_mail: 0.00 (0.0%) Subject: Re: linux-next: manual merge of the userns tree with the mips tree X-Spam-Flag: No X-SA-Exim-Version: 4.2.1 (built Thu, 05 May 2016 13:38:54 -0600) X-SA-Exim-Scanned: Yes (on in02.mta.xmission.com) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2624 Lines: 91 Ralf Baechle 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