Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp897666iob; Wed, 18 May 2022 15:58:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy2rgZ/tsZlCd/3XPPOtix5HrZ/GGR1GiFVktUJkVGmTR1CK5KOciZHYd8apnRb9Rk9dGAi X-Received: by 2002:a17:90a:9b0d:b0:1dc:e81d:6c18 with SMTP id f13-20020a17090a9b0d00b001dce81d6c18mr1860333pjp.72.1652914732171; Wed, 18 May 2022 15:58:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652914732; cv=none; d=google.com; s=arc-20160816; b=GnaXnxaQKz5r9088KmaxuvHdMSuspV2KGqyWZbqoqbYvsEO3XnWlMbINu5EmvWQIVT WR9YMAdWplk3Y/B7ERVYBpVcDETMBRoRSdiSnywnNxt1LG8B1+IH8ZHTQyLDiRnafyWw dS/hwy4x7S0m5NG2ucRXudZc9nr3XzWcqlV5lVlHef1nuvs+zOKptiKvot6mExpTX1tl XQrdxOOI5b4VcY7WvYQSiCLTE7Gpiy6zy8ALxoeSPcNgZCD42+du1SDVARW1Z5HBZSlF ClHL+5A2NX6nOMP5pXXuhc7uUjLGeNmTsjGWHXVF3QYAfYhCmkhYbhN1tMDrrHPGT/dD FMYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:cc:to:from; bh=gM1D7FZ4TZgrYKBI1GvAilQlGEazePuTkhgGjVS/8Ss=; b=r5JJ9aykpfJD+DtjhjXDZleccAH+MmPnfMqbCn8Be4ck7lX+Q27CuPCtkPJh5Ljh3L aGz3hpr8FJ5U2hHOlQjdCFqBxznnGH3h4/CR3B/+DheWurTXpjB/wfLWHutsfUFR7NOg iDRiMa4zMVhaXO2PQnZXQ71LSfgGyJC+Fx4t+1WUDDGOywBhB87Os6nvQHtJ8eWRlP2j zZfZ2APlwc5CBIgkDnzePTob9DRuRbxTgVX09fArhRJ2bEhnGGDbsSoSZDFyyyIP9cRh jqLQmq+CbR0kYiYg3xI/I9YmJyzYnHqKyXq3tvMIB4mhL01P9fU6baoCdWjk1Wc7p4j+ kY9Q== 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:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x194-20020a6331cb000000b003d8228b5f83si4096099pgx.283.2022.05.18.15.58.41; Wed, 18 May 2022 15:58:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=xmission.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230472AbiERWzM (ORCPT + 99 others); Wed, 18 May 2022 18:55:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38822 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230412AbiERWy7 (ORCPT ); Wed, 18 May 2022 18:54:59 -0400 Received: from out01.mta.xmission.com (out01.mta.xmission.com [166.70.13.231]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EE4CB227067; Wed, 18 May 2022 15:54:51 -0700 (PDT) Received: from in01.mta.xmission.com ([166.70.13.51]:54962) by out01.mta.xmission.com with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1nrSZ9-001T6U-1F; Wed, 18 May 2022 16:54:51 -0600 Received: from ip68-227-174-4.om.om.cox.net ([68.227.174.4]:38724 helo=localhost.localdomain) by in01.mta.xmission.com with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1nrSZ8-002Z0O-20; Wed, 18 May 2022 16:54:50 -0600 From: "Eric W. Biederman" To: linux-kernel@vger.kernel.org Cc: rjw@rjwysocki.net, Oleg Nesterov , mingo@kernel.org, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, mgorman@suse.de, bigeasy@linutronix.de, Will Deacon , tj@kernel.org, linux-pm@vger.kernel.org, Peter Zijlstra , Richard Weinberger , Anton Ivanov , Johannes Berg , linux-um@lists.infradead.org, Chris Zankel , Max Filippov , linux-xtensa@linux-xtensa.org, Kees Cook , Jann Horn , linux-ia64@vger.kernel.org, Robert OCallahan , Kyle Huey , Richard Henderson , Ivan Kokshaysky , Matt Turner , Jason Wessel , Daniel Thompson , Douglas Anderson , Douglas Miller , Michael Ellerman , Benjamin Herrenschmidt , Paul Mackerras , "Eric W. Biederman" Date: Wed, 18 May 2022 17:53:46 -0500 Message-Id: <20220518225355.784371-7-ebiederm@xmission.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <871qwq5ucx.fsf_-_@email.froward.int.ebiederm.org> References: <871qwq5ucx.fsf_-_@email.froward.int.ebiederm.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-XM-SPF: eid=1nrSZ8-002Z0O-20;;;mid=<20220518225355.784371-7-ebiederm@xmission.com>;;;hst=in01.mta.xmission.com;;;ip=68.227.174.4;;;frm=ebiederm@xmission.com;;;spf=softfail X-XM-AID: U2FsdGVkX19piXvSGZGlwtEypRa3+k4c3ag8pD6xkSw= 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=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-DCC: XMission; sa07 1397; Body=1 Fuz1=1 Fuz2=1 X-Spam-Combo: ***;linux-kernel@vger.kernel.org X-Spam-Relay-Country: X-Spam-Timing: total 369 ms - load_scoreonly_sql: 0.05 (0.0%), signal_user_changed: 11 (3.0%), b_tie_ro: 10 (2.6%), parse: 0.97 (0.3%), extract_message_metadata: 11 (3.1%), get_uri_detail_list: 1.11 (0.3%), tests_pri_-1000: 16 (4.2%), tests_pri_-950: 1.20 (0.3%), tests_pri_-900: 1.04 (0.3%), tests_pri_-90: 66 (17.8%), check_bayes: 64 (17.4%), b_tokenize: 10 (2.6%), b_tok_get_all: 8 (2.2%), b_comp_prob: 2.3 (0.6%), b_tok_touch_all: 41 (11.1%), b_finish: 0.81 (0.2%), tests_pri_0: 249 (67.4%), check_dkim_signature: 0.54 (0.1%), check_dkim_adsp: 2.6 (0.7%), poll_dns_idle: 0.83 (0.2%), tests_pri_10: 2.2 (0.6%), tests_pri_500: 9 (2.3%), rewrite_mail: 0.00 (0.0%) Subject: [PATCH 07/16] signal: Wake up the designated parent 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 Today if a process is ptraced only the ptracer will ever be woken up in wait, if the parent is waiting with __WNOTHREAD. Update the code so that the real_parent can also be woken up with __WNOTHREAD even when the code is ptraced. Fixes: 75b95953a569 ("job control: Add @for_ptrace to do_notify_parent_cldstop()") Signed-off-by: "Eric W. Biederman" --- kernel/exit.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/kernel/exit.c b/kernel/exit.c index f072959fcab7..0e26f73c49ac 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -1421,26 +1421,35 @@ static int ptrace_do_wait(struct wait_opts *wo, struct task_struct *tsk) return 0; } +struct child_wait_info { + struct task_struct *p; + struct task_struct *parent; +}; + static int child_wait_callback(wait_queue_entry_t *wait, unsigned mode, int sync, void *key) { struct wait_opts *wo = container_of(wait, struct wait_opts, child_wait); - struct task_struct *p = key; + struct child_wait_info *info = key; - if (!eligible_pid(wo, p)) + if (!eligible_pid(wo, info->p)) return 0; - if ((wo->wo_flags & __WNOTHREAD) && wait->private != p->parent) - return 0; + if ((wo->wo_flags & __WNOTHREAD) && (wait->private != info->parent)) + return 0; return default_wake_function(wait, mode, sync, key); } void __wake_up_parent(struct task_struct *p, struct task_struct *parent) { + struct child_wait_info info = { + .p = p, + .parent = parent, + }; __wake_up_sync_key(&parent->signal->wait_chldexit, - TASK_INTERRUPTIBLE, p); + TASK_INTERRUPTIBLE, &info); } static bool is_effectively_child(struct wait_opts *wo, bool ptrace, -- 2.35.3