Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp2670314imm; Mon, 24 Sep 2018 08:08:03 -0700 (PDT) X-Google-Smtp-Source: ACcGV60Z8Pctb5kurWRg+oIbwo5xq8qrav6RTmivzBYMVtUUy9FLNFgcNg9qHV0NqTwKlF+XBQqG X-Received: by 2002:a17:902:ba8b:: with SMTP id k11-v6mr11269940pls.12.1537801683072; Mon, 24 Sep 2018 08:08:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537801683; cv=none; d=google.com; s=arc-20160816; b=Nh4D5uRCw90NZHUiHqFPH0s5IXsVcWQz/VPhwcOHyo9xeb04BOyWiV4U0nzPMFUGNv KqVCjgtPlSc5FGaGfzjAbWosdVrGgu3/ubPkz4OyfCZQnSXKv7Fa4nE8yyiZV7Y26WD5 rp54DkYshEaH4MwVCJgQ0g8IivWWZGzRepMbH+FmDJplBAE8jNqsDN9bztT/FJ6IeahA s15MSvcFrjxoxVIjlnmtoFPYOkKo6Sz4WEucmZNAPneDeGjmZIl8WnbAF3bBlZSkGXNM UiRDqpQnsyo7rgA+Sn3CTNxPLKb8ROp8KpFwQPoaVtCpx/gLe8690dCgAlqrK909tofu slmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:subject:references:in-reply-to:message-id :date:cc:to:from; bh=ladJwUXeBvW2Z9cT+G93NaPTUuTgJ0QmOdZdcjuVGuo=; b=okZtd4aZKpZuaC1PfIh5mQy5Vy4hcIeHWEKBlqkzo2Y2G/VqEDj06BMXHNYMl9Zuh/ bNGG5XaCXxn7S/pQYynAI9yEuSpejxoZh7ITpMbyvpaLrb/P/HpI8unmqoPP4++V0D0P VuCLwPC9vgorPjW3Aj/XlY/tQf0/glQYf0ncRzmaFFHcrONhkHs2T6E4JqnvTwy5IMjs LWohHHD6rpyGh/SmOlbOifB2kOCvSAfzTBexVZCJLLqeBzWz7j1rwyW190Zn7kO2vWs3 Z4Dj1VHbNhaWZbl6nBBICXyAhEGd58sBKj3PFqd2LIStywyIW/bNl/LJhkajWu08PPxi XO4A== 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 z13-v6si30462379pgk.127.2018.09.24.08.07.47; Mon, 24 Sep 2018 08:08:03 -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 S1730053AbeIXUwK (ORCPT + 99 others); Mon, 24 Sep 2018 16:52:10 -0400 Received: from out01.mta.xmission.com ([166.70.13.231]:38152 "EHLO out01.mta.xmission.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730163AbeIXUwI (ORCPT ); Mon, 24 Sep 2018 16:52:08 -0400 Received: from in02.mta.xmission.com ([166.70.13.52]) by out01.mta.xmission.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.87) (envelope-from ) id 1g4SB7-0001dH-PY; Mon, 24 Sep 2018 08:49:37 -0600 Received: from [105.184.227.67] (helo=x220.Home) by in02.mta.xmission.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_CBC_SHA256:128) (Exim 4.87) (envelope-from ) id 1g4SB6-0002hz-QP; Mon, 24 Sep 2018 08:49:37 -0600 From: "Eric W. Biederman" To: linux-kernel@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-snps-arc@lists.infradead.org, Vineet Gupta , "Eric W. Biederman" Date: Mon, 24 Sep 2018 16:49:09 +0200 Message-Id: <20180924144910.14902-1-ebiederm@xmission.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <874lef2bqn.fsf@xmission.com> References: <874lef2bqn.fsf@xmission.com> X-XM-SPF: eid=1g4SB6-0002hz-QP;;;mid=<20180924144910.14902-1-ebiederm@xmission.com>;;;hst=in02.mta.xmission.com;;;ip=105.184.227.67;;;frm=ebiederm@xmission.com;;;spf=neutral X-XM-AID: U2FsdGVkX18c/MIjvdxmq+3uGmMuc03pds/y2avbelE= X-SA-Exim-Connect-IP: 105.184.227.67 X-SA-Exim-Mail-From: ebiederm@xmission.com X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa08.xmission.com X-Spam-Level: *** X-Spam-Status: No, score=3.5 required=8.0 tests=ALL_TRUSTED,BAYES_50, DCC_CHECK_NEGATIVE,TR_Symld_Words,T_TooManySym_01,XMNoVowels,XMSubLong autolearn=disabled version=3.4.1 X-Spam-Report: * -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP * 1.5 XMNoVowels Alpha-numberic number with no vowels * 0.7 XMSubLong Long Subject * 1.5 TR_Symld_Words too many words that have symbols inside * 0.8 BAYES_50 BODY: Bayes spam probability is 40 to 60% * [score: 0.4947] * -0.0 DCC_CHECK_NEGATIVE Not listed in DCC * [sa08 1397; Body=1 Fuz1=1 Fuz2=1] * 0.0 T_TooManySym_01 4+ unique symbols in subject X-Spam-DCC: XMission; sa08 1397; Body=1 Fuz1=1 Fuz2=1 X-Spam-Combo: ***;linux-kernel@vger.kernel.org X-Spam-Relay-Country: X-Spam-Timing: total 170 ms - load_scoreonly_sql: 0.03 (0.0%), signal_user_changed: 4.3 (2.5%), b_tie_ro: 3.0 (1.8%), parse: 0.60 (0.4%), extract_message_metadata: 8 (4.7%), get_uri_detail_list: 0.99 (0.6%), tests_pri_-1000: 4.6 (2.7%), tests_pri_-950: 1.13 (0.7%), tests_pri_-900: 0.92 (0.5%), tests_pri_-400: 17 (10.2%), check_bayes: 16 (9.6%), b_tokenize: 4.6 (2.7%), b_tok_get_all: 5 (3.1%), b_comp_prob: 1.34 (0.8%), b_tok_touch_all: 2.8 (1.6%), b_finish: 0.68 (0.4%), tests_pri_0: 125 (73.6%), check_dkim_signature: 0.42 (0.2%), check_dkim_adsp: 2.7 (1.6%), tests_pri_500: 6 (3.4%), rewrite_mail: 0.00 (0.0%) Subject: [REVIEW][PATCH 1/2] signal/arc: Push siginfo generation into unhandled_exception 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 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Pass signr, sicode, and address into unhandled_exception as explicit parameters instead of members of struct siginfo. Then in unhandled exception generate and send the siginfo using force_sig_fault. This keeps the code simpler and less error prone. Signed-off-by: "Eric W. Biederman" --- arch/arc/kernel/traps.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c index b123558bf0bb..a7fcbc0d3943 100644 --- a/arch/arc/kernel/traps.c +++ b/arch/arc/kernel/traps.c @@ -42,21 +42,22 @@ void die(const char *str, struct pt_regs *regs, unsigned long address) * -for kernel, chk if due to copy_(to|from)_user, otherwise die() */ static noinline int -unhandled_exception(const char *str, struct pt_regs *regs, siginfo_t *info) +unhandled_exception(const char *str, struct pt_regs *regs, + int signo, int si_code, void __user *addr) { if (user_mode(regs)) { struct task_struct *tsk = current; - tsk->thread.fault_address = (__force unsigned int)info->si_addr; + tsk->thread.fault_address = (__force unsigned int)addr; - force_sig_info(info->si_signo, info, tsk); + force_sig_fault(signo, si_code, addr, tsk); } else { /* If not due to copy_(to|from)_user, we are doomed */ if (fixup_exception(regs)) return 0; - die(str, regs, (unsigned long)info->si_addr); + die(str, regs, (unsigned long)addr); } return 1; @@ -64,16 +65,9 @@ unhandled_exception(const char *str, struct pt_regs *regs, siginfo_t *info) #define DO_ERROR_INFO(signr, str, name, sicode) \ int name(unsigned long address, struct pt_regs *regs) \ -{ \ - siginfo_t info; \ - \ - clear_siginfo(&info); \ - info.si_signo = signr; \ - info.si_errno = 0; \ - info.si_code = sicode; \ - info.si_addr = (void __user *)address; \ - \ - return unhandled_exception(str, regs, &info);\ +{ \ + return unhandled_exception(str, regs, signr, sicode, \ + (void __user *)address); \ } /* -- 2.17.1