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 681EDC4345F for ; Thu, 18 Apr 2024 10:21:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DD3E36B0087; Thu, 18 Apr 2024 06:21:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D839B6B0088; Thu, 18 Apr 2024 06:21:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C4ACB6B0089; Thu, 18 Apr 2024 06:21:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id A90846B0087 for ; Thu, 18 Apr 2024 06:21:37 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 3A5A2811F9 for ; Thu, 18 Apr 2024 10:21:37 +0000 (UTC) X-FDA: 82022261034.26.491B351 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf05.hostedemail.com (Postfix) with ESMTP id B85F7100006 for ; Thu, 18 Apr 2024 10:21:35 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=SELAoNeX; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf05.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1713435695; 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:dkim-signature; bh=Yrxw2v75Z+TZKXmyCGe4anySq6+8O+YA0ImUt5EDUTk=; b=HdgewjGHlBThb//+oSo6UJUmfuXo7A8eD2Q1wX3qsGS5Zpp/rOhy8VGodJJl49B6IMu4hY FNCQfrai5Ff6rxwWeZi+7U9R5bU21mdxNMqYT2zDVwWkXR48J2AfkHSROfbxLSJ3AOWxX+ JSeN3QkxV/lR75XAGoFnmxy87HktyuY= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=SELAoNeX; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf05.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713435695; a=rsa-sha256; cv=none; b=UVP/QggwpVNrZjdh2A48yWe5sLAKzw2KUuTDD2vQUGYK7MYX2K6aRP2yJjPR+G9RLrrS1y fqOw28vshfDDEFigaUp/prhylNk6XtKIlBPG8qyNNiiw/NUnOy97qCAW/mHB8jWwvG8T9S JkToqFNhuOCMHTVWDLytUeZfJdo1RuM= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 7E10D617AF; Thu, 18 Apr 2024 10:21:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CDE78C113CC; Thu, 18 Apr 2024 10:21:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1713435694; bh=GIF39x+DoxCddvDNRomXCworfiQAca8ygUjDy3+kOkw=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=SELAoNeXc3Beu0HbaRnXjo5QYZwKVoBtQiv3DGWKIGD1ByoQxYtKIRMmvzmqWXRIs l28WXlrgf45drPhQ9fcY+C862qqlcZ84I3lISaD2oLaKCzcGbAykPBulJ9k6bwvlRz LV8NaKjnWubu4ei2CwJbivkB4YEQEKSRsSyVzaW8Mxs5W6YReOjEi+EuEAD86bBnwS qFPhIxsVlHHsOebyI08OR68Lghu75Srbh8a5UrbpGFwRlRYkMIVyzmMjHu+Dqlrqq9 fLqc6ctyg9Ep6vn3VgTN09QBUzcZ5AVisQI/jdvTkZRhUWxPwNNaW0QWW5GqKdhOFZ JlWziN6p3qThQ== Date: Thu, 18 Apr 2024 13:20:17 +0300 From: Mike Rapoport To: Nadav Amit Cc: Linux Kernel Mailing List , Andrew Morton , Andy Lutomirski , Arnd Bergmann , Catalin Marinas , Christoph Hellwig , Helge Deller , Lorenzo Stoakes , Luis Chamberlain , Mark Rutland , Masami Hiramatsu , Mathieu Desnoyers , Michael Ellerman , Palmer Dabbelt , Peter Zijlstra , Russell King , Song Liu , Steven Rostedt , Thomas Gleixner , Uladzislau Rezki , Will Deacon , bpf@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, "open list:MEMORY MANAGEMENT" , linux-modules@vger.kernel.org, linux-parisc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-trace-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, the arch/x86 maintainers Subject: Re: [RFC PATCH 3/7] module: prepare to handle ROX allocations for text Message-ID: References: <20240411160526.2093408-1-rppt@kernel.org> <20240411160526.2093408-4-rppt@kernel.org> <0C4B9C1A-97DE-4798-8256-158369AF42A4@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <0C4B9C1A-97DE-4798-8256-158369AF42A4@gmail.com> X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: B85F7100006 X-Stat-Signature: 8dth6zrqdauk5znca9ge5b49mreoxkor X-HE-Tag: 1713435695-545685 X-HE-Meta: U2FsdGVkX185LC9RTUBLOGywdBEYFbHrupTaywOs/c5vWWTql/LVFSp6q2vhmwZkM9XPHBFFRTPDcZ4D7LQbejrVU5FGv+VLc1XJWkJB0WsDuLZidHAVggk1WmFrj+ImLaZyCI0IzZV0b71+z65WGv4Kqkwa6iCOCBzfnbR4BsCV2PclDL9ue4ZnVHrOr1VXjEizV/ZJeb3A3cIbyReY93fP7MPSTq4cR3s9hDlSlXJ3pmeDDKjIMgvXfiRaa6Hwy1V375C6gVLQo963Qsj/BrcZx54X9ItXIzy4uA6z4EmAn+iP1cMiEheQYwBjd7bdJPNCrm3ln9GOL+jGyyjjxfNTfCiTBVJmhxZ6bgu1BW7J8SKwJ3FuMZgvET5Seqm4PKtf7HzuEtwb7R3G+KhKGn41udxNC6aSumqOWuHoeqL6oVQmWCG2USiBfaz/gYcuP+f5rStZeGnTEcgZTSZF4HCR7w8+Bqp4y8O1YpfVGVrhsV5KzLQ4g4RUN3u0x893KzyajuDoZmL8W6SZdqFXldOpYo3KhWgpmC/QLJdlZI7zyzvkPEol1gcKVTfHC1YFpl57PKYrZIXMrGk/wQDO2tYC8Oa7gOwZCAqchJ0fKGPyOmdM8p04YAPo5tKVf3+GOItMDz5xSO3eki3UoH4DoJ7BthYjatmQG/s2OruVmsfnDhTJ5Nu9RR47FkCZb9UeY7rSzZCNicsrLqkp3YjMcdIh75L7WitTYIdWOTYe6q8YpZDXCUkFBOPkP4dn8zti+kCqBB89TJtfL0hHldVIVXK2HbjE2AkqRwkYVdHqm4ZKL5E/e6bSjbQ4h69+JZQlMu2rWk7B8UvLCqLf1OzccL/LlnSxmmno4HibneA+FZGUnwWFfVd0qecRPIWpapiNkq+8XBiJjBv8EuwxVZv8uLJsPyWIdrk1dY6rWLGd7VH4n2hqS/MRgJVMZpn3QIf/Ap91t63cBhpb2yhdUyB R5g== 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 Tue, Apr 16, 2024 at 12:36:08PM +0300, Nadav Amit wrote: > > > > On 11 Apr 2024, at 19:05, Mike Rapoport wrote: > > > > @@ -2440,7 +2479,24 @@ static int post_relocation(struct module *mod, const struct load_info *info) > > add_kallsyms(mod, info); > > > > /* Arch-specific module finalizing. */ > > - return module_finalize(info->hdr, info->sechdrs, mod); > > + ret = module_finalize(info->hdr, info->sechdrs, mod); > > + if (ret) > > + return ret; > > + > > + for_each_mod_mem_type(type) { > > + struct module_memory *mem = &mod->mem[type]; > > + > > + if (mem->is_rox) { > > + if (!execmem_update_copy(mem->base, mem->rw_copy, > > + mem->size)) > > + return -ENOMEM; > > + > > + vfree(mem->rw_copy); > > + mem->rw_copy = NULL; > > + } > > + } > > + > > + return 0; > > } > > I might be missing something, but it seems a bit racy. > > IIUC, module_finalize() calls alternatives_smp_module_add(). At this > point, since you don’t hold the text_mutex, some might do text_poke(), > e.g., by enabling/disabling static-key, and the update would be > overwritten. No? Right :( Even worse, for UP case alternatives_smp_unlock() will "patch" still empty area. So I'm thinking about calling alternatives_smp_module_add() from an additional callback after the execmem_update_copy(). Does it make sense to you? -- Sincerely yours, Mike.