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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id CFCB7C27C75 for ; Fri, 14 Jun 2024 10:57:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 144516B0126; Fri, 14 Jun 2024 06:57:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0F40B6B0153; Fri, 14 Jun 2024 06:57:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EFD116B0154; Fri, 14 Jun 2024 06:57:29 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id D3ECB6B0126 for ; Fri, 14 Jun 2024 06:57:29 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 7ECC41A0664 for ; Fri, 14 Jun 2024 10:57:29 +0000 (UTC) X-FDA: 82229193018.18.A29C22E Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf08.hostedemail.com (Postfix) with ESMTP id C45B0160016 for ; Fri, 14 Jun 2024 10:57:27 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf08.hostedemail.com: domain of cmarinas@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718362645; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XfG3uvRpNnqLNW2W5Z5OVIik1O0HMguZErX26FEOVCs=; b=Hy+KQQvYTuno5ijb4jg5O6DZ+p5d4isDMauJUeqDyVHMqqwzZUi9yMPZBkpf93p6jcAkhq bxeuG2+la/xFACoz+pJ04NpHIJ5YdDhzffZz3Fqbn1DznKux51ftKzx5esMTmCOnwnRy0b flp8xEVOWSX/88EU9w7GnBERhd3EtGA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718362645; a=rsa-sha256; cv=none; b=ugdztOyPuYwpM9RFfG/ecoNcHN2kIGOtFqDqsNNCs50Haasy0lK5iaNxVyyxw4nJUeSkJy iTgbpGCA1S1LBVbRc2Vy+NvHTw7pmy/sCBj4tG63/f0W2J4pYD+yOie1ueJb6GVJUyRaDl jEInos/+SQ1BdzVDOhvFG/OhsBDnMfw= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf08.hostedemail.com: domain of cmarinas@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cmarinas@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 9E3A761D4B; Fri, 14 Jun 2024 10:57:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 85C86C2BD10; Fri, 14 Jun 2024 10:57:23 +0000 (UTC) Date: Fri, 14 Jun 2024 11:57:21 +0100 From: Catalin Marinas To: Yafang Shao Cc: torvalds@linux-foundation.org, ebiederm@xmission.com, alexei.starovoitov@gmail.com, rostedt@goodmis.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, audit@vger.kernel.org, linux-security-module@vger.kernel.org, selinux@vger.kernel.org, bpf@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Andrew Morton Subject: Re: [PATCH v2 06/10] mm/kmemleak: Replace strncpy() with __get_task_comm() Message-ID: References: <20240613023044.45873-1-laoar.shao@gmail.com> <20240613023044.45873-7-laoar.shao@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: C45B0160016 X-Stat-Signature: ewnn7bbu5airbtjmszbpkh8bpjusp9qq X-Rspam-User: X-HE-Tag: 1718362647-542392 X-HE-Meta: U2FsdGVkX19SNVvO4eLHS7Tn3RRAe6BZ1iXyM92FS/AvhnYFUQ2PLWXmYfb4rDpGg8piJWqFt+frqvTBIub1JhEddgZh86ruE2v3sUAQ70O9NBBfIMTDxvYq/FC2CH9t4daaoPlYEQKCVSxQOcQOuEDu/0EEqjU3av1tExlpeJHlPYB1FWDxjWIbPig1YJqXcewe/YGjzvgm3WZbjaZomvbP7FtQL21FtS4nmzsN4ipjoygk2K4IEE4kZ5M/VLJBmZwj9Z7dleN+4jPrEb/j1lbLqySNhv27FtCOMxT9XJCWH0bj6B8StyZsWsPNrKc+X724WAN4raWY0tAW1Qrhj7oFJtRRNW75d+OHRvBda1s7ZUXLfVod8BmccJdzDO8PJHdfTLgTC3qOzlWxfRJpr1QFJAKQ50Hz8reHNsiENF+ODHEjJDtSKDJe1paAJw9UShf86VnnvcPHyMEYshVjPpmiZJMpbzVw2oqWLy5iJ9GL1Xp9cI2oSpEuuimr/vP58ZT7rCEVXWLh5Tt5XAVyGmzLpJ2gmEg2dn7CDb58apOh1jAXSnzIhVWZ+2XbqgOX8J2jwMTwPa65wO6ma3cXbksaJHit5eA2gglXL2lIcR2roQDhf+S+luxjdfBG8eLpBVdQrE/Y3jglGQVmpdU5nOeofLNoaMUwff604I6pmG+MMez6jPc197z33jbL18ceM+v+r9PTQkfomxLHGTDRSOMVPaIPwOhRWLB0Eg+KFHmIdz4cODpKHeAwIGwr45hR9hJShgnZ1nW0gB3324TqEK7YgKcPovo6z7YGfW2EN7eB4Cf800307RIsmuL9LIBQ4a2kGoUfvmtp3lRhIhWTXzBq8x1om3nm5ev98L8bK/LCmpOgb6ExFfPDRUNwH8tQ9dDX2VSB2AOElAc7cIQ1SElrYQI7CW/HgezeGmem95sNQwUumF6NocA716NDDy0ixRb7Ffjm8GqllWWti4D mWAcK/gs QG+PMtDGD1wXK7brmKqOAkqtVVZ741bL1NRcUpwDQC2YRnVYIiXCNXHAAG3wLSlWoTw1Oav2+Yo5zxBlqy7Isi6P7FY0F9TdJmfH2VMiOeC4XsfIalmiHT1cduc1qY50po5yaTp7zqUdGLBoNIv7SAunj9jPLuPAeYlbZnF+9XsS79MusTdnipE504/Ddlbo0uX8CQwUvpbhNpXohizAQMpsmxP0oVz2x/fn9DRHdkx6Xa0wBeXk4kt/fT/FCxuulkFxXuFr6Q3d3QXQOnwg30MMn2AKM+Z12749HWQplTDsP2tYY3ZHU6GGGh1lfT09sTDG9SKt1oXLuDr0gxBfOlJyxhRkATKGbUvgd9AA62RLLkxxFuOgCmIvdXKO5PiPw7BhjFUUVimJ0HjSLkFBekD0RKx9PO2YU+0wodf6KLXnvPUpmZnuwzaS3smFUm58zV/XZlxxWUET2O+QVxncrlWQPoFU9cu8mJM31DTK5S+QwZIA+TotA0FmcWDc33clM+0boHR/eZNJsNjBdVRF6Br4HV+ac2YCFvluIDtWRcMwOfhPdKZRSkesiVSykHzDyNHaUJ/VP9wH2wDwGSpp//kdSn/HjSZeKnVpbb2oE3IMEFk6sKWz/HrDT/c+rhRJDoTiJZHPS6BOD5VwbUqR7QmCTMrMU4Q4pq7/sXSqB/MtJFdn8lYxh6JZnXA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, Jun 13, 2024 at 08:10:17PM +0800, Yafang Shao wrote: > On Thu, Jun 13, 2024 at 4:37 PM Catalin Marinas wrote: > > On Thu, Jun 13, 2024 at 10:30:40AM +0800, Yafang Shao wrote: > > > Using __get_task_comm() to read the task comm ensures that the name is > > > always NUL-terminated, regardless of the source string. This approach also > > > facilitates future extensions to the task comm. > > > > > > Signed-off-by: Yafang Shao > > > Cc: Catalin Marinas > > > Cc: Andrew Morton > > > --- > > > mm/kmemleak.c | 8 +------- > > > 1 file changed, 1 insertion(+), 7 deletions(-) > > > > > > diff --git a/mm/kmemleak.c b/mm/kmemleak.c > > > index d5b6fba44fc9..ef29aaab88a0 100644 > > > --- a/mm/kmemleak.c > > > +++ b/mm/kmemleak.c > > > @@ -663,13 +663,7 @@ static struct kmemleak_object *__alloc_object(gfp_t gfp) > > > strncpy(object->comm, "softirq", sizeof(object->comm)); > > > } else { > > > object->pid = current->pid; > > > - /* > > > - * There is a small chance of a race with set_task_comm(), > > > - * however using get_task_comm() here may cause locking > > > - * dependency issues with current->alloc_lock. In the worst > > > - * case, the command line is not correct. > > > - */ > > > - strncpy(object->comm, current->comm, sizeof(object->comm)); > > > + __get_task_comm(object->comm, sizeof(object->comm), current); > > > } > > > > You deleted the comment stating why it does not use get_task_comm() > > without explaining why it would be safe now. I don't recall the details > > but most likely lockdep warned of some potential deadlocks with this > > function being called with the task_lock held. > > > > So, you either show why this is safe or just use strscpy() directly here > > (not sure we'd need strscpy_pad(); I think strscpy() would do, we just > > need the NUL-termination). > > The task_lock was dropped in patch #1 [0]. My apologies for not > including you in the CC for that change. After this modification, it > is now safe to use __get_task_comm(). > > [0] https://lore.kernel.org/all/20240613023044.45873-2-laoar.shao@gmail.com/ Ah, great. For this patch: Acked-by: Catalin Marinas You may want to add a comment in the commit log that since __get_task_comm() no longer takes a long, it's safe to call it from kmemleak. -- Catalin