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 19895CD4F4A for ; Wed, 4 Sep 2024 22:56:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6C1416B0176; Wed, 4 Sep 2024 18:56:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 64C626B0177; Wed, 4 Sep 2024 18:56:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4EBAA6B0178; Wed, 4 Sep 2024 18:56:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 2DE0A6B0176 for ; Wed, 4 Sep 2024 18:56:13 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 9465A80700 for ; Wed, 4 Sep 2024 22:56:12 +0000 (UTC) X-FDA: 82528565784.21.90E9EC6 Received: from mail-pg1-f172.google.com (mail-pg1-f172.google.com [209.85.215.172]) by imf09.hostedemail.com (Postfix) with ESMTP id 20CBE140002 for ; Wed, 4 Sep 2024 22:56:08 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=osandov-com.20230601.gappssmtp.com header.s=20230601 header.b="LJ+i/68x"; dmarc=none; spf=none (imf09.hostedemail.com: domain of osandov@osandov.com has no SPF policy when checking 209.85.215.172) smtp.mailfrom=osandov@osandov.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725490498; a=rsa-sha256; cv=none; b=L1eakBpCHrsvIu59wCP02jCo6SZIU/dhZzXgGocPJKNWNlRj5e6+Wjci9a06Y8C5a9+dDC QDXiHUqT4jSCtJB9WINe2oY2PZE30FRoCfRbVSD6uZaSVKl4iXcf2RuubnJpVEseliyP7E P4NoLDlMRaM5GrgwKJ2sa4do54HpRZY= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=osandov-com.20230601.gappssmtp.com header.s=20230601 header.b="LJ+i/68x"; dmarc=none; spf=none (imf09.hostedemail.com: domain of osandov@osandov.com has no SPF policy when checking 209.85.215.172) smtp.mailfrom=osandov@osandov.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725490498; 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=35/vvYnjYcTahPnX2Ak6JC2o1aEV4aWjtE37kGrVzrs=; b=UoJcgxlvNnbqIugKWHtgVehs3+fDUq3hv7SjYQQCMbpzxfCWcDwhwh6KJELH6jhDAdvBrN NnhwHhY7hJTXrIf2XlUK8FrQlmMq6vu6GdRpt+X4Tpo/NnGHlk5WTv+wGxjsS7a1el8gOb pSTlfFIRJBPjWZY7mEaEvpDTTMMIAjU= Received: by mail-pg1-f172.google.com with SMTP id 41be03b00d2f7-7d50ac2e3f8so22361a12.2 for ; Wed, 04 Sep 2024 15:56:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osandov-com.20230601.gappssmtp.com; s=20230601; t=1725490568; x=1726095368; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=35/vvYnjYcTahPnX2Ak6JC2o1aEV4aWjtE37kGrVzrs=; b=LJ+i/68xSJYESBSwZ2eODwRESmL1AGwfU5d7/2sJhCgodh1VvNZTulVyo5yJQ6yKCz oFyJXViq8SYGY95suWTS4WjwvQuPkROrKuVy7vqt6H1bnP7sDrnEomKeomujS3tcHWl1 9hZZM5HEN+ArVkFo+5fTmLgrMZzmEhGrJTFBRzwMcFqAXrVHPuccKr4HDbsL4bTtbYKI vM5PigRSKpo0DtkCV95Lf98qbPnqtPJ8j1BtHZFDArNtFI/i5Go+qZjvvlg6f81NlO1/ TMikM266LWkOfdoKRftv9RshsggtOkH8KE4oHmHekcmzOCgewE2u9bqG4q8mLrwkLn5N aOew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725490568; x=1726095368; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=35/vvYnjYcTahPnX2Ak6JC2o1aEV4aWjtE37kGrVzrs=; b=Q0u0BuIFl/wxN8W2bet2qJhqhecesJ9KrbiOtFZcNr6pFJNQ+H21AUnzB5Xc+xjn75 3OFM4PdHbmTWds8mu3OIMxKbWFujGZ9cl5hSx1H7+uac++vaXK3Aos/XFlip0mIuHXL2 j9Kz3ay0ZuXOWDuohNHdT0IEEOrzUUbe1l4QbSuJHWYXEhNu3L/FWCvQLq3OfqeoNsuC AZDwAdXcih0ovuGLsVw2P8LCZWIKcC9GCFySIGntZDz2VcZV4QcDF/PLbYcdP9pN136h 9xnBkGi4NniN4xXpGPz71swjjo9P0c4Sa0GK1QHmGyGO/xTTlzrOK2eXtLsOkSiLYFlZ CnrQ== X-Gm-Message-State: AOJu0Yyr30yAKI1tRFDkUeEEFS+i8rl2AZGQWHf72ixVnDpALSbIpErK TTwrpgW9r53Dsdv6T1vIRZYlswoWpn9HRXXl7llEbYoeW43DdThxcuYSDGM1byk= X-Google-Smtp-Source: AGHT+IGJMJTzWYcjGTZbRrQ6IDaoYzbHR/wGLI0wH+MKCl8eX8iKTnn29gVdjQTwsOFAi2AC/JBGeg== X-Received: by 2002:a17:902:f545:b0:206:b618:1d8f with SMTP id d9443c01a7336-206b6182580mr23287495ad.11.1725490567622; Wed, 04 Sep 2024 15:56:07 -0700 (PDT) Received: from telecaster.dhcp.thefacebook.com ([2620:10d:c090:500::4:761e]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-206ae9525cbsm18305395ad.99.2024.09.04.15.56.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Sep 2024 15:56:07 -0700 (PDT) Date: Wed, 4 Sep 2024 15:56:04 -0700 From: Omar Sandoval To: Christophe Leroy Cc: linux-mm@kvack.org, Andrew Morton , Benjamin Gray , "Christopher M. Riedl" , Christoph Hellwig , x86@kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-um@lists.infradead.org, kernel-team@fb.com Subject: Re: [PATCH 2/2] mm: make copy_to_kernel_nofault() not fault on user addresses Message-ID: References: <64e74f4d-948d-442e-9810-69907915401c@csgroup.eu> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <64e74f4d-948d-442e-9810-69907915401c@csgroup.eu> X-Rspamd-Queue-Id: 20CBE140002 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: ee3g18rkx9xh6cdm5gsw4tzg656rbxc6 X-HE-Tag: 1725490568-918519 X-HE-Meta: U2FsdGVkX1+9KjLIstqwOZGBLF1D+spCTa94zR7iARkArJJNfH6PKvG7fg45N/RDM6AmnnPDx1Gnm1xkj0m2m2wbZNKBwMcbsQEwMtAN2Gw65ZWjMJShGIBn0J0IeDhSPATnG65Ev8YueECYfaB/87CKvsOHQPZnRBcpJAwYeYRT6fL3T1OCs3arKVw4axcmTbdwrMSqcAU6noOSECiIWlkXET+swmiIlDA70rMU7WJQpuJ59ZiaWnASXOjyxHKOORmrVXiHGthW4/2gRsltn9fq2/wcvTfXApQ/ickRKxsgvX/O4c/dJ8JmV559YJL8ayIk6VGr4iwCCrEw/dXyRApuGUdSmIAjN+aH6q7KdElnBFkTHMVVA2OQZSMYLqT7RYyxWW0n9txH+0tJreMsZuDfpVhA5oiMqE61FrS6iFGkaUwTKe7fCyXSkg8epHqIBN3NvrotQVr1dDDAgWe4yk/vcPqfZTiMBeXR7/sppbtY6+5gmaXVfzD52InXmNCtT7gvOQ7Zr/ofRYeMx0u4I3DWaL3h445yGzHbKLMpQ4M1BShXq0FCgzNgsEGIcI8muiH++ircwtPdiGmAu9uX4BrMXJ+0lsJDZ4SL2JCOpsIsIOLbJ8iXTdzGXAdFUnZuJz7wuazFfXx5yCvYrq4d02mKtBKHuW7/+KXDIbfwFUXli/b7xDWLnkRBfDf8IsEtRsLvhxJNfomG58/FjxHRRb1FN9L+mNDcnEYWTklo2cs6DsPf8RMVp9DoZkFVcRtDDqxj6udL+7Wd27IwGD6iJ6GxZE+wLZaHl6HNtehzw0SlToHH6p1UjuLFkqTEwYKVdRFxdFvZXyE0iDeeUcvWjritBzKmhWgVLO0iQyZQV/E77rvn20uQzKbxKA1c1FkIEyn2MjOAPfWBQQ5DgnwVOlfSQNaSIq/YAbPXDR1g6srR+ltP0w25x3vabo1CHdzY/DCRn5VUnLwaGGLcF0h HzZ7C3Js rKJ+OzKSAjUCSAkzNUQf1rLZLvc80FvGa1UPFrbK974IbbZ2dhyKUyhUSPK3mbxwuBXU+21Q3P+DqMEB4V84vscSegJ5yyv/V9s2KlK26Iy+RfvknVDTHaQHst6a76L6Swe9lfWFiky9Wi9RER+rbtgyu/PkM0yfY/RJovB9E+D4rtWUje78dStBKnrNfGmm2Hc0v+CUsKiZ9v1hTm8Q8pviFSE0Y4w81i52rCo36n1wj8YJCcdODlAM7CJnp60DfwaYO5xZ0KuG2GAqDff7bMrvgVHveintBHRQoIR2tXrAxN9KLq69FACTUXQM+U++TZ9evn/DrQlJJFjEUTHqolgHjBZFP2GugFaCy9BXmSqNnV73nhhV6huC4JiLBPzmRc5S/cyU6u5urfXSH5s4PKddRboPekrAFXjPFJzDfUIiK5ZPO2VYq1UpVWHsdZrMRPW7+iDc3C1ikebK1qsmLa0rMQaTNwZyvb/8BoiCV5oC9V09BaPs2A8tIn9Jap0m/xvZkx36mplwcJVAZQMgtAhfqrre6P+VSU7Kh3Jm5AYlBv/PCt7xDjHbQpg== 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 Wed, Sep 04, 2024 at 09:50:56AM +0200, Christophe Leroy wrote: > Hi, > > Le 02/09/2024 à 07:31, Omar Sandoval a écrit : > > [Vous ne recevez pas souvent de courriers de osandov@osandov.com. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ] > > > > From: Omar Sandoval > > > > I found that on x86, copy_to_kernel_nofault() still faults on addresses > > outside of the kernel address range (including NULL): > > > > # echo ttyS0 > /sys/module/kgdboc/parameters/kgdboc > > # echo g > /proc/sysrq-trigger > > ... > > [15]kdb> mm 0 1234 > > [ 94.652476] BUG: kernel NULL pointer dereference, address: 0000000000000000 > ... > > > > Note that copy_to_kernel_nofault() uses pagefault_disable(), but it > > still faults. This is because with Supervisor Mode Access Prevention > > (SMAP) enabled, do_user_addr_fault() Oopses on a fault for a user > > address from kernel space _before_ checking faulthandler_disabled(). > > > > copy_from_kernel_nofault() avoids this by checking that the address is > > in the kernel before doing the actual memory access. Do the same in > > copy_to_kernel_nofault() so that we get an error as expected: > > > > # echo ttyS0 > /sys/module/kgdboc/parameters/kgdboc > > # echo g > /proc/sysrq-trigger > > ... > > [17]kdb> mm 0 1234 > > kdb_putarea_size: Bad address 0x0 > > diag: -21: Invalid address > > > > Signed-off-by: Omar Sandoval > > --- > > mm/maccess.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/mm/maccess.c b/mm/maccess.c > > index 72e9c03ea37f..d67dee51a1cc 100644 > > --- a/mm/maccess.c > > +++ b/mm/maccess.c > > @@ -61,6 +61,9 @@ long copy_to_kernel_nofault(void *dst, const void *src, size_t size) > > if (!IS_ENABLED(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)) > > align = (unsigned long)dst | (unsigned long)src; > > > > + if (!copy_kernel_nofault_allowed(dst, size)) > > + return -ERANGE; > > + > > pagefault_disable(); > > if (!(align & 7)) > > copy_to_kernel_nofault_loop(dst, src, size, u64, Efault); > > -- > > 2.46.0 > > > > This patch leads to the following errors on ppc64le_defconfig: > > [ 2.423930][ T1] Running code patching self-tests ... > [ 2.428912][ T1] code-patching: test failed at line 395 > [ 2.429085][ T1] code-patching: test failed at line 398 > [ 2.429561][ T1] code-patching: test failed at line 432 > [ 2.429679][ T1] code-patching: test failed at line 435 > > This seems to be linked to commit c28c15b6d28a ("powerpc/code-patching: Use > temporary mm for Radix MMU"), copy_from_kernel_nofault_allowed() returns > false for the patching area. Thanks for testing. This patch isn't worth the trouble, so we can drop it. Thanks, Omar