Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp3588444pxp; Tue, 8 Mar 2022 18:11:43 -0800 (PST) X-Google-Smtp-Source: ABdhPJweWRLfgsT0q8BX1kmdJxdQWT7prTY7ARcrNbKGAWrZKJ/4aGDiUJaOg/e254voRxWg1ein X-Received: by 2002:a17:902:aa49:b0:151:f80e:e999 with SMTP id c9-20020a170902aa4900b00151f80ee999mr9056948plr.63.1646791902996; Tue, 08 Mar 2022 18:11:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646791902; cv=none; d=google.com; s=arc-20160816; b=zqPtOzTipOsjjCmqb9+cWQGtJXlpGniW7QVjv4O7OYwzqev727fMAKjxszmyr8wLcs CK3C7WaNO5JQCSLzh/YKGxtfjymNQdnUcRD0jx9/TjkJ4z5lJyN+YrfSv0Wf2akfErtk CsP7OGzmUN75HGAbYe3sQdAokJ4/gUx0lSW8UuSD5OAUNRegeH3imx6VWEIzetrcJymU 9ini6W9ulsYydC3xzXvuahDQ1MnPgP7G3AR3OJ1GSHRDtHf61HAIdllH8brMjFn7Be1z /QdnL+Fm2HYoBvyR9nCi+b2VFlVqNzo5lSaYz+dYAvxpi2nFZnll5gbGR3NNaf0GuYTO hkzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:mime-version:user-agent:message-id :in-reply-to:date:references:cc:to:from; bh=dhN33FHHhQtMEesBy6OZyw+K2pQQx9xRj/qaDWWKWFU=; b=k/4+7NjK08da74kYn37M9IUlIJdQtd+ISBSjx2kBDTBePiUgECyqmtdarMqQGYae9d J0Daa42uFG84Bng88Tra3esIcxJ2KcGdRlMDsMByALBcWSP5tS5tMLQB5+5HKn/4rLFg vKru07i2F3DvyaB0Yes4J9RYsxEPgKOSI4OYoqs/CqAqTZw2CLEaETQTsstrEagK12Ow YAqpffW/xwwmnFJsLSXA8Cr9QdmP43IItMccQ/TU+AYvYBFR0rQSUKqMgzxvFRRew8ni C4Eyshw1Wxuae01XjXrbhawqGn617ziTuIGnw/yL7RPjkqaMIK+I+EW/e+9BlDueChP4 hIAA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=xmission.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id w8-20020a056a0014c800b004f0f64d8505si587642pfu.177.2022.03.08.18.11.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 18:11:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=xmission.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 9A761CD5D9; Tue, 8 Mar 2022 17:04:07 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229784AbiCIBFC (ORCPT + 99 others); Tue, 8 Mar 2022 20:05:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44300 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229793AbiCIBEm (ORCPT ); Tue, 8 Mar 2022 20:04:42 -0500 Received: from out02.mta.xmission.com (out02.mta.xmission.com [166.70.13.232]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BF57D131F74; Tue, 8 Mar 2022 16:42:16 -0800 (PST) Received: from in01.mta.xmission.com ([166.70.13.51]:34420) by out02.mta.xmission.com with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1nRjy1-00AoKs-FO; Tue, 08 Mar 2022 17:14:13 -0700 Received: from ip68-227-174-4.om.om.cox.net ([68.227.174.4]:34136 helo=email.froward.int.ebiederm.org.xmission.com) by in01.mta.xmission.com with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1nRjy0-00EJ6q-01; Tue, 08 Mar 2022 17:14:13 -0700 From: "Eric W. Biederman" To: Cc: , Linus Torvalds , Alexey Gladkov , Kyle Huey , Oleg Nesterov , Kees Cook , Al Viro , , Jens Axboe References: <87a6ha4zsd.fsf@email.froward.int.ebiederm.org> <87bl1kunjj.fsf@email.froward.int.ebiederm.org> <87r19opkx1.fsf_-_@email.froward.int.ebiederm.org> Date: Tue, 08 Mar 2022 18:13:34 -0600 In-Reply-To: <87r19opkx1.fsf_-_@email.froward.int.ebiederm.org> (Eric W. Biederman's message of "Mon, 03 Jan 2022 15:30:02 -0600") Message-ID: <87o82gdlu9.fsf_-_@email.froward.int.ebiederm.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-XM-SPF: eid=1nRjy0-00EJ6q-01;;;mid=<87o82gdlu9.fsf_-_@email.froward.int.ebiederm.org>;;;hst=in01.mta.xmission.com;;;ip=68.227.174.4;;;frm=ebiederm@xmission.com;;;spf=neutral X-XM-AID: U2FsdGVkX19JrCxd+AEL/F62BtJfkuZkeiMsizbIS8Q= X-SA-Exim-Connect-IP: 68.227.174.4 X-SA-Exim-Mail-From: ebiederm@xmission.com X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-DCC: XMission; sa05 1397; Body=1 Fuz1=1 Fuz2=1 X-Spam-Combo: **; X-Spam-Relay-Country: X-Spam-Timing: total 518 ms - load_scoreonly_sql: 0.03 (0.0%), signal_user_changed: 13 (2.5%), b_tie_ro: 11 (2.2%), parse: 1.73 (0.3%), extract_message_metadata: 7 (1.4%), get_uri_detail_list: 4.2 (0.8%), tests_pri_-1000: 6 (1.2%), tests_pri_-950: 1.82 (0.4%), tests_pri_-900: 1.44 (0.3%), tests_pri_-90: 72 (13.9%), check_bayes: 70 (13.5%), b_tokenize: 17 (3.3%), b_tok_get_all: 11 (2.1%), b_comp_prob: 3.3 (0.6%), b_tok_touch_all: 35 (6.8%), b_finish: 0.95 (0.2%), tests_pri_0: 385 (74.4%), check_dkim_signature: 0.88 (0.2%), check_dkim_adsp: 3.4 (0.7%), poll_dns_idle: 1.31 (0.3%), tests_pri_10: 4.0 (0.8%), tests_pri_500: 12 (2.4%), rewrite_mail: 0.00 (0.0%) Subject: [PATCH 00/13] Removing tracehook.h X-SA-Exim-Version: 4.2.1 (built Sat, 08 Feb 2020 21:53:50 +0000) X-SA-Exim-Scanned: Yes (on in01.mta.xmission.com) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org While working on cleaning up do_exit I have been having to deal with the code in tracehook.h. Unfortunately the code in tracehook.h does not make sense as organized. This set of changes reorganizes things so that tracehook.h no longer exists, and so that it's current contents are organized in a fashion that is a little easier to understand. The biggest change is that I lean into the fact that get_signal always calls task_work_run and removes the logic that tried to be smart and decouple task_work_run and get_signal as it has proven to not be effective. This is a conservative change and I am not changing the how things like signal_pending operate (although it is probably justified). A new header resume_user_mode.h is added to hold resume_user_mode_work which was previously known as tracehook_notify_resume. Eric W. Biederman (13): ptrace: Move ptrace_report_syscall into ptrace.h ptrace/arm: Rename tracehook_report_syscall report_syscall ptrace: Create ptrace_report_syscall_{entry,exit} in ptrace.h ptrace: Remove arch_syscall_{enter,exit}_tracehook ptrace: Remove tracehook_signal_handler task_work: Remove unnecessary include from posix_timers.h task_work: Introduce task_work_pending task_work: Call tracehook_notify_signal from get_signal on all architectures task_work: Decouple TIF_NOTIFY_SIGNAL and task_work signal: Move set_notify_signal and clear_notify_signal into sched/signal.h resume_user_mode: Remove #ifdef TIF_NOTIFY_RESUME in set_notify_resume resume_user_mode: Move to resume_user_mode.h tracehook: Remove tracehook.h MAINTAINERS | 1 - arch/Kconfig | 5 +- arch/alpha/kernel/ptrace.c | 5 +- arch/alpha/kernel/signal.c | 4 +- arch/arc/kernel/ptrace.c | 5 +- arch/arc/kernel/signal.c | 4 +- arch/arm/kernel/ptrace.c | 12 +- arch/arm/kernel/signal.c | 4 +- arch/arm64/kernel/ptrace.c | 14 +-- arch/arm64/kernel/signal.c | 4 +- arch/csky/kernel/ptrace.c | 5 +- arch/csky/kernel/signal.c | 4 +- arch/h8300/kernel/ptrace.c | 5 +- arch/h8300/kernel/signal.c | 4 +- arch/hexagon/kernel/process.c | 4 +- arch/hexagon/kernel/signal.c | 1 - arch/hexagon/kernel/traps.c | 6 +- arch/ia64/kernel/process.c | 4 +- arch/ia64/kernel/ptrace.c | 6 +- arch/ia64/kernel/signal.c | 1 - arch/m68k/kernel/ptrace.c | 6 +- arch/m68k/kernel/signal.c | 4 +- arch/microblaze/kernel/ptrace.c | 5 +- arch/microblaze/kernel/signal.c | 4 +- arch/mips/kernel/ptrace.c | 5 +- arch/mips/kernel/signal.c | 4 +- arch/nds32/include/asm/syscall.h | 2 +- arch/nds32/kernel/ptrace.c | 5 +- arch/nds32/kernel/signal.c | 4 +- arch/nios2/kernel/ptrace.c | 5 +- arch/nios2/kernel/signal.c | 4 +- arch/openrisc/kernel/ptrace.c | 5 +- arch/openrisc/kernel/signal.c | 4 +- arch/parisc/kernel/ptrace.c | 7 +- arch/parisc/kernel/signal.c | 4 +- arch/powerpc/kernel/ptrace/ptrace.c | 8 +- arch/powerpc/kernel/signal.c | 4 +- arch/riscv/kernel/ptrace.c | 5 +- arch/riscv/kernel/signal.c | 4 +- arch/s390/include/asm/entry-common.h | 1 - arch/s390/kernel/ptrace.c | 1 - arch/s390/kernel/signal.c | 5 +- arch/sh/kernel/ptrace_32.c | 5 +- arch/sh/kernel/signal_32.c | 4 +- arch/sparc/kernel/ptrace_32.c | 5 +- arch/sparc/kernel/ptrace_64.c | 5 +- arch/sparc/kernel/signal32.c | 1 - arch/sparc/kernel/signal_32.c | 4 +- arch/sparc/kernel/signal_64.c | 4 +- arch/um/kernel/process.c | 4 +- arch/um/kernel/ptrace.c | 5 +- arch/x86/kernel/ptrace.c | 1 - arch/x86/kernel/signal.c | 5 +- arch/x86/mm/tlb.c | 1 + arch/xtensa/kernel/ptrace.c | 5 +- arch/xtensa/kernel/signal.c | 4 +- block/blk-cgroup.c | 2 +- fs/coredump.c | 1 - fs/exec.c | 1 - fs/io-wq.c | 6 +- fs/io_uring.c | 11 +- fs/proc/array.c | 1 - fs/proc/base.c | 1 - include/asm-generic/syscall.h | 2 +- include/linux/entry-common.h | 47 +------- include/linux/entry-kvm.h | 2 +- include/linux/posix-timers.h | 1 - include/linux/ptrace.h | 78 ++++++++++++ include/linux/resume_user_mode.h | 64 ++++++++++ include/linux/sched/signal.h | 17 +++ include/linux/task_work.h | 5 + include/linux/tracehook.h | 226 ----------------------------------- include/uapi/linux/ptrace.h | 2 +- kernel/entry/common.c | 19 +-- kernel/entry/kvm.c | 9 +- kernel/exit.c | 3 +- kernel/livepatch/transition.c | 1 - kernel/seccomp.c | 1 - kernel/signal.c | 23 ++-- kernel/task_work.c | 4 +- kernel/time/posix-cpu-timers.c | 1 + mm/memcontrol.c | 2 +- security/apparmor/domain.c | 1 - security/selinux/hooks.c | 1 - 84 files changed, 317 insertions(+), 462 deletions(-) Eric