From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-23.2 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5E949C433ED for ; Sat, 1 May 2021 10:34:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3E1E8613CA for ; Sat, 1 May 2021 10:34:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231959AbhEAKfA (ORCPT ); Sat, 1 May 2021 06:35:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54878 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231924AbhEAKe4 (ORCPT ); Sat, 1 May 2021 06:34:56 -0400 Received: from mail-ot1-x32f.google.com (mail-ot1-x32f.google.com [IPv6:2607:f8b0:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6DE0CC06138C for ; Sat, 1 May 2021 03:34:05 -0700 (PDT) Received: by mail-ot1-x32f.google.com with SMTP id z25-20020a9d65d90000b02902a560806ca7so782443oth.11 for ; Sat, 01 May 2021 03:34:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=jCan+6xptMFqGkbIIPn1nwIIm9+SRi9i6mWKGsgGhAU=; b=UWGMH/nVDvcINlx4QrLJbQfDpg7ZCA/4MH41cC10w5jRUrFQhUVXZsLqvqHeGW19qW xhx0Odv3ZQ/ExTt8yWnNe7VP55kAeS3Op0WY5Csu31R7T0Wi2rQpER7XhlT5y6XTFNE3 BVueuV0oPH/OGvQMGG/PrivMOEMBYTzB82jBNK8dbdKF0yLWvik21rliXWNGLTIgNPlL wdY0Aj5OQ55kFq6QLP0RhuBUt/a2T24B/FiC488jTTIBYlkQG1bPn53xCS/SrBB9XixT V1L6RX0f0+bW9q/P55FWVhQFoZZgWW/y45rdLwfzurJe17yAFBAHrBU6vPzkZg7z7awF 5Z5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=jCan+6xptMFqGkbIIPn1nwIIm9+SRi9i6mWKGsgGhAU=; b=Ryy7E8B/oxgW97i2oUu5pApfQv3ABAUSjnCUezhvFNjzR9AV5L065NAYNPOXbONJ4/ c54v1sOP9sOUbWTVEglWK59rZwCDc3uBhVDPp8eUlZ8/upsRXAfrZtitf9YsFJNr7d7D pPRyJSV43o2HtObZGqLYFV2GHp7AhQ3ZdE7CkrZLRJeZtNLv/SwjA4y+JhwVvGN43oYN rmN3eKzlWi0uuCvIFjcBYI7BI8AjvhW9o28OH+aZl5DN3/weP5z4SHUTfneBK4TapkJ6 u2jsX7SLpNTD5NvxIw92okXKXV3VLnMqEsH9GOGdmT57CUheoBobUlpZp4KP8PYuSy5Y iYfg== X-Gm-Message-State: AOAM530BiIC9QrLaJhXIFnD5iBizJhYm+iL3XxxJjFOSvPWdfVwIk212 E0x/5MFTgZf32HQtMaNEXoQPZCHapXvoiiaXEZ1dpQ== X-Google-Smtp-Source: ABdhPJy1MvY2a7/kycfqy83Ks3Lj9IAWBx4Z0v17e+oXLsYz+vYG3fbuw+w7d3/8DHojuQ+i2zmKcGwBxHfgSotrgpg= X-Received: by 2002:a9d:60c8:: with SMTP id b8mr7228167otk.17.1619865244678; Sat, 01 May 2021 03:34:04 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Marco Elver Date: Sat, 1 May 2021 12:33:53 +0200 Message-ID: Subject: Re: [PATCH 3/3] signal: Use dedicated helpers to send signals with si_trapno set To: "Eric W. Biederman" Cc: Arnd Bergmann , Florian Weimer , "David S. Miller" , Peter Zijlstra , Ingo Molnar , Thomas Gleixner , Peter Collingbourne , Dmitry Vyukov , Alexander Potapenko , sparclinux , linux-arch , Linux Kernel Mailing List , Linux API , kasan-dev Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, 1 May 2021 at 00:55, Eric W. Biederman wrote: > > Now that si_trapno is no longer expected to be present for every fault > reported using siginfo on alpha and sparc remove the trapno parameter > from force_sig_fault, force_sig_fault_to_task and send_sig_fault. > > Add two new helpers force_sig_fault_trapno and send_sig_fault_trapno > for those signals where trapno is expected to be set. > > Signed-off-by: "Eric W. Biederman" > --- > arch/alpha/kernel/osf_sys.c | 2 +- > arch/alpha/kernel/signal.c | 4 +-- > arch/alpha/kernel/traps.c | 24 ++++++++--------- > arch/alpha/mm/fault.c | 4 +-- > arch/sparc/kernel/process_64.c | 2 +- > arch/sparc/kernel/sys_sparc_32.c | 2 +- > arch/sparc/kernel/sys_sparc_64.c | 2 +- > arch/sparc/kernel/traps_32.c | 22 ++++++++-------- > arch/sparc/kernel/traps_64.c | 44 ++++++++++++++------------------ > arch/sparc/kernel/unaligned_32.c | 2 +- > arch/sparc/mm/fault_32.c | 2 +- > arch/sparc/mm/fault_64.c | 2 +- > include/linux/sched/signal.h | 12 +++------ > kernel/signal.c | 41 +++++++++++++++++++++-------- > 14 files changed, 88 insertions(+), 77 deletions(-) This still breaks sparc64: > sparc64-linux-gnu-ld: arch/sparc/kernel/traps_64.o: in function `bad_trap': > (.text+0x2a4): undefined reference to `force_sig_fault_trapno' [...] > +#if IS_ENABLED(SPARC) This should be 'IS_ENABLED(CONFIG_SPARC)'. > +int force_sig_fault_trapno(int sig, int code, void __user *addr, int trapno) > +{ > + struct kernel_siginfo info; > + > + clear_siginfo(&info); > + info.si_signo = sig; > + info.si_errno = 0; > + info.si_code = code; > + info.si_addr = addr; > + info.si_trapno = trapno; > + return force_sig_info(&info); > +} > +#endif > + > +#if IS_ENABLED(ALPHA) CONFIG_ALPHA > +int send_sig_fault_trapno(int sig, int code, void __user *addr, int trapno, > + struct task_struct *t) > +{ > + struct kernel_siginfo info; > + > + clear_siginfo(&info); > + info.si_signo = sig; > + info.si_errno = 0; > + info.si_code = code; > + info.si_addr = addr; > + info.si_trapno = trapno; > + return send_sig_info(info.si_signo, &info, t); > +} > +#endif > + > /* For the crazy architectures that include trap information in > * the errno field, instead of an actual errno value. > */ > -- > 2.30.1 >