Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2357067imm; Thu, 7 Jun 2018 09:17:07 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLpC5tWjU7Y5UtcWQGKS1oNxkb4VPdSq9xroCrA0C3ttvbzib1fbhx65BhTEmuQPQ+7xfh9 X-Received: by 2002:a63:618e:: with SMTP id v136-v6mr2116548pgb.100.1528388227838; Thu, 07 Jun 2018 09:17:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528388227; cv=none; d=google.com; s=arc-20160816; b=v4Ngampo6xczya6S76MVohX5ibDWUs23CFxfA1dhAldA9LJNuOCXRM37uP0d5m69Sb VkeCzgpyE70wSZ0d2scFbCy44bBc9z9bUkfNrO0v5eBTqL5ae0ieNQiiqvpbEP2zWMI5 325cO4aBUx+HFhyTj7uFB9jTLkmLxrrGXq4vedjRFVx6+KjW2VUW7Fd2YOwTJJEbu4NU dzn/PwOlFfKCogZgrKWdkLJQRUYlg3TulMwVJN8seIKLn9slUkTElr6BhqJ+q9ZrGJRK bR1NJHNBtv3fb9pvaQA5ewLkyDghpewprhFCXGmITg6s6/0SYwEALy8+YjYdNxqnQpK6 RLAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:subject:message-id:date:cc:to :from:mime-version:content-transfer-encoding:content-disposition :arc-authentication-results; bh=k219bEx0IcMyxpDUWuy56kR+B7ZID+AkVNcT+/j/FTg=; b=UhAmU9EE6FDGRzUB5kd1U5gRA9ONQwADHr/GLkxj456OWA0rxqPtvDJnwxYRk00958 0o2INcqe6iyOa5Ldg4fu/AtrjdSYDZIVy0R+TURiFJpjYTsJM7SNyqix1zIiErHkVpRI eOvLDFvBQ2PmJDlhvniBF1H8KLYlv3klpySaFrBnO3BP0fWRbZppwktaQagzGVTE9w2y OgjX8nxuQDO4034SRJQu2gyJsNo65z8Kezf4w4PBTLAyWz+R5QRTwTupmPHHSZHgDcnh QZPywae2fI8sFa3+hi/51dTx4ccfV4kcNjzyzrGy/m8uIRCNMW7SAktorD6idnTEOjYw K2Ww== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id ca5-v6si19807355plb.143.2018.06.07.09.16.52; Thu, 07 Jun 2018 09:17:07 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936123AbeFGQPj (ORCPT + 99 others); Thu, 7 Jun 2018 12:15:39 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:39110 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932886AbeFGOI6 (ORCPT ); Thu, 7 Jun 2018 10:08:58 -0400 Received: from [148.252.241.226] (helo=deadeye) by shadbolt.decadent.org.uk with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1fQvay-0005Zi-FI; Thu, 07 Jun 2018 15:08:56 +0100 Received: from ben by deadeye with local (Exim 4.91) (envelope-from ) id 1fQvaw-0002g7-VA; Thu, 07 Jun 2018 15:08:54 +0100 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org CC: akpm@linux-foundation.org, "Ralf Baechle" , "Maciej W. Rozycki" , linux-mips@linux-mips.org Date: Thu, 07 Jun 2018 15:05:20 +0100 Message-ID: X-Mailer: LinuxStableQueue (scripts by bwh) Subject: [PATCH 3.16 001/410] MIPS: Normalise code flow in the CpU exception handler In-Reply-To: X-SA-Exim-Connect-IP: 148.252.241.226 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.16.57-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: "Maciej W. Rozycki" commit 27e28e8ec47a5ce335ebf25d34ca356c80635908 upstream. Changes applied to `do_cpu' over time reduced the use of the SIGILL issued with `force_sig' at the end to a single CU3 case only in the switch statement there. Move that `force_sig' call over to right where required then and toss out the pile of gotos now not needed to skip over the call, replacing them with regular breaks out of the switch. Signed-off-by: Maciej W. Rozycki Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/9683/ Signed-off-by: Ralf Baechle Signed-off-by: Ben Hutchings --- arch/mips/kernel/traps.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c @@ -1247,7 +1247,7 @@ asmlinkage void do_cpu(struct pt_regs *r status = -1; if (unlikely(compute_return_epc(regs) < 0)) - goto out; + break; if (get_isa16_mode(regs->cp0_epc)) { unsigned short mmop[2] = { 0 }; @@ -1280,7 +1280,7 @@ asmlinkage void do_cpu(struct pt_regs *r force_sig(status, current); } - goto out; + break; case 3: /* @@ -1296,8 +1296,10 @@ asmlinkage void do_cpu(struct pt_regs *r * erroneously too, so they are covered by this choice * as well. */ - if (raw_cpu_has_fpu) + if (raw_cpu_has_fpu) { + force_sig(SIGILL, current); break; + } /* Fall through. */ case 1: @@ -1320,16 +1322,13 @@ asmlinkage void do_cpu(struct pt_regs *r if (!process_fpemu_return(sig, fault_addr, fcr31) && !err) mt_ase_fp_affinity(); - goto out; + break; case 2: raw_notifier_call_chain(&cu2_chain, CU2_EXCEPTION, regs); - goto out; + break; } - force_sig(SIGILL, current); - -out: exception_exit(prev_state); }