Received: by 2002:a25:2c96:0:0:0:0:0 with SMTP id s144csp1473048ybs; Mon, 25 May 2020 17:34:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyMz0ccpxvFoe2AKmkgqjJNujh8U345RB1ZJSndoYM7NI/V3yPKWQvDUaKrS1PNDBPE2N7i X-Received: by 2002:a17:906:944e:: with SMTP id z14mr20086191ejx.86.1590453243024; Mon, 25 May 2020 17:34:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590453243; cv=none; d=google.com; s=arc-20160816; b=qnUNn3Pn7s+yHSfe7hu3P5CiHs3Py36V9r2aXRK6QCjyHmfkVeReIGo5eP7B5WU57m 4qcy5+MhPc53KplRRuV4YOU/JnN+h9wnxNG8ExhyttqMGDokW1um3VxhVvP09mgQmbA8 fuRa7Fq/v5HbtOYOLWY1afsPsaqxQUapsU3znWlKjVsf5MXcy20qn8bRIVPa2t6l9lHG p+6VuaOp/O5ZHQW+8Sqiulzw4Nyr9vAqLMarv5cM02Z8sjnHuu42+H6WvNGDrrwoKs1x +lA3w0SoZnCIxEWGZNVaZ4SqCN76I6eqL4lBDZyo/xqD9C7UcK/C5Geic/SYDFg4Y15o 19zw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=bbaFW26aHyI1W3kenO+piVcQbffPSdv3tHMdMsAKjU4=; b=O7edJ9K4kmpYpBQkSXtozrABB3unp5Ss7QufQfkxSMAXaIz+KG6u/49D6+TyPZNFTR X5M9G8uwTD9jgTCdwWOXP+NlQCUecnU3Cp7Hq5YbJ2PCmqt/t0UHOHA77tOBVyuZa43Q Wsp5bwylHTL/2mdsqBwInx3C1F4a4ea4SlXZUCs5Vrkxw0W7HeBzuJ8eVkeJjnk3t3jf jnaM/c9dD9/YJbmpiTuldCma+q0WsqDj//GoBAc+yiJgt3DcN85vwuMCW0Nbx2hZLgWv FocaPbEFaPN9uGXn2zA8G6/ifBa5rKtRZCUiaGYd0l1v2YYNT9FMBl6Qvxg/uq6hx0Ve 3qXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=BW5Enqv4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b9si10703136edu.30.2020.05.25.17.33.40; Mon, 25 May 2020 17:34:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=BW5Enqv4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387888AbgEZA37 (ORCPT + 99 others); Mon, 25 May 2020 20:29:59 -0400 Received: from mail.kernel.org ([198.145.29.99]:34626 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726350AbgEZA37 (ORCPT ); Mon, 25 May 2020 20:29:59 -0400 Received: from mail-lj1-f170.google.com (mail-lj1-f170.google.com [209.85.208.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2B58E2078B for ; Tue, 26 May 2020 00:29:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1590452998; bh=jiUY9V1Bkztcy/8t94YHlJD2RQ8+uVmK8V+BpsmrT84=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=BW5Enqv4WR4JyXZJdRRGLYXdZr3N6KfpHYCM4QRjtAOoLAvkGODYbq8m7cSUpYr/p wz3aBLKG5OYqZsQtZL6H+G+OReE+9bkwqnvO2bg72f53fNq45Wc1OryZUwmiPv17DH eOy4QFeACjU4/YCPtfDuuTM3YAJZs89XfudA510U= Received: by mail-lj1-f170.google.com with SMTP id q2so22390864ljm.10 for ; Mon, 25 May 2020 17:29:58 -0700 (PDT) X-Gm-Message-State: AOAM533nAmdVieFKlI2gft8aX2YuGrWR0VoGyPThBYGcpan1SxSSrCdt hXEKc2OqjyCqbTsXFm9vU4vvBhwTT0Xvn7fabwE= X-Received: by 2002:a2e:160e:: with SMTP id w14mr12316006ljd.66.1590452996282; Mon, 25 May 2020 17:29:56 -0700 (PDT) MIME-Version: 1.0 References: <1590416306-66453-1-git-send-email-guoren@kernel.org> <20200525143648.GM2605652@cisco> In-Reply-To: <20200525143648.GM2605652@cisco> From: Guo Ren Date: Tue, 26 May 2020 08:29:45 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] riscv: Remove unnecessary path for syscall_trace To: Tycho Andersen Cc: keescook@chromium.org, palmerdabbelt@google.com, Paul Walmsley , Anup Patel , linux-riscv , Linux Kernel Mailing List , Guo Ren Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Tycho, On Mon, May 25, 2020 at 10:36 PM Tycho Andersen wrote: > > On Mon, May 25, 2020 at 02:18:26PM +0000, guoren@kernel.org wrote: > > From: Guo Ren > > > > Obviously, there is no need to recover a0-a7 in reject path. > > > > Previous modification is from commit af33d243 by Tycho, to > > fixup seccomp reject syscall code path. > > Doesn't this suffer from the same problem, though? a7 is clobbered, so > the -ERESTARTSYS behavior won't work? Look, the patch only affects the path of ret_from_syscall_rejected, and there are two possible paths: 1. ret_from_syscall_rejected->handle_syscall_trace_exit->ret_from_exception 2. ret_from_syscall_rejected->ret_from_exception All the above skip the check_syscall_nr and ignore the current a7, in the C function they use the pt_regs in the stack to get proper reg's value. For the -ERESTARTSYS, we only process it in: ret_from_exception->resume_userspace->work_notifysig->do_notify_resume: do_signal & handle_signal: switch (regs->a0) { case -ERESTARTNOHAND: case -ERESTARTSYS: case -ERESTARTNOINTR: regs->a0 = regs->orig_a0; regs->epc -= 0x4; break; All above are done in pt_regs and when returning to userspace, a7 will be recovered by restore_all in entry.S. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- Best Regards Guo Ren ML: https://lore.kernel.org/linux-csky/