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 D753FC3601E for ; Thu, 10 Apr 2025 10:03:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A81B76B01F2; Thu, 10 Apr 2025 06:03:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9E16A6B01F4; Thu, 10 Apr 2025 06:03:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 833176B01F3; Thu, 10 Apr 2025 06:03:49 -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 62DCD6B0314 for ; Thu, 10 Apr 2025 06:03:49 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 369BA58F8D for ; Thu, 10 Apr 2025 10:03:49 +0000 (UTC) X-FDA: 83317697778.25.0404968 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) by imf08.hostedemail.com (Postfix) with ESMTP id 40B37160003 for ; Thu, 10 Apr 2025 10:03:46 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=ventanamicro.com header.s=google header.b=WkRjas8j; dmarc=none; spf=pass (imf08.hostedemail.com: domain of rkrcmar@ventanamicro.com designates 209.85.128.49 as permitted sender) smtp.mailfrom=rkrcmar@ventanamicro.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744279427; 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=yuhlYfO+SCuG1tPDw0icZEsvUHv3NYtA5HOyZj159xM=; b=Hx/rc5koXJk/mDEFnwlOjmj7slqIIy7lmO9SYA4dyRz4wBK9RyoGvnOUyCKvp9QjFfIfot o9GYcL2xWzmXB4AmZkJj6oHnyDnYgwlEEaj2/ns4NM1/XR0YhIefR4xU3DqsigiTv/JygZ 3SLZU/D/XAZs5IBBhOEB30vpEZ8QmS4= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=ventanamicro.com header.s=google header.b=WkRjas8j; dmarc=none; spf=pass (imf08.hostedemail.com: domain of rkrcmar@ventanamicro.com designates 209.85.128.49 as permitted sender) smtp.mailfrom=rkrcmar@ventanamicro.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744279427; a=rsa-sha256; cv=none; b=rg2a4IxNxgJutQUnyz3fpVAPEfhRi46JhHeWuyzKKEAKlyR897ceCEsOEyYPEu6U6/d6oi T5G81mOapW6fP0k//zom1PqsDz21KdW4ZniuHuHhg0nH1GXOioEmexSNuJDlgjfIbi5K77 mYIbenSbJz7gCQifGxD1gs5f7RnoZIs= Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-43cf89f81c5so865215e9.2 for ; Thu, 10 Apr 2025 03:03:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1744279425; x=1744884225; darn=kvack.org; h=in-reply-to:references:from:to:cc:subject:message-id:date :content-transfer-encoding:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=yuhlYfO+SCuG1tPDw0icZEsvUHv3NYtA5HOyZj159xM=; b=WkRjas8jVJi7FyFx0ZlfLDJfBWiozM5IVdwBfw8vDQnPwhpp+t4qrz56gDr5zspQ+q g0jBGiE30YReO7kLTOPSvKYeLs3g0sJQTDSlm+8Q7LuoyFf01UXNDta9g40MromvFcpn +QfFlUY9yiMfuKwDroxNzZ0mS8unkL2r3apZdotuucUxC8GcEPikxVOvXBoPFMLoJGkT iizS6vchijqfQGZxsattjc0EbDyCh4Ir05Y+/c0yEkiKDyZDB7LhyBQrVo/2aplCcRR/ mtJ5HVjqblYDCnm0UYrmUHClWkL/G5idLIgP+uYq1mE21/BPmm59LO6H0OMBGc7cJ089 jGtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744279425; x=1744884225; h=in-reply-to:references:from:to:cc:subject:message-id:date :content-transfer-encoding:mime-version:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=yuhlYfO+SCuG1tPDw0icZEsvUHv3NYtA5HOyZj159xM=; b=qjcKY87MqP4lWQYG5hQUxfAJg53GtvMt7xIPO2iBm09wxz58XykkOHUkUBGzUpztIM w6ZUbbLEWBtqU2W6FCpxng7Doxe0064waSMg/8ipdN2+inXuELC41AkouVebElKMYadU ByHptEb4hByUWOSidJ+SownljFF5fboF9K4D6y5sHWuT2pu8DSYWJJr62fq5sCNCPfeK TwOIMz3YR4sK5OVXzlmAZQsgtaMLSWfOJKSYjoUxJzidqLdK0w9AIE7MxUam+BtWnF0o OULitmwuWy1uaG2BfEA4fNJEvq6biUFZBgItdAJDAWDnPIXrk+JmzMt5z43VZMKiE2bt 3tLA== X-Forwarded-Encrypted: i=1; AJvYcCUcK+xG5rV4Xjx4rTdB99zHfSdRSrIKVVP/yiywhjYd1PAe1TbYcimvBuzD6rQksky7gjlGGeOd3w==@kvack.org X-Gm-Message-State: AOJu0Yz5KO+JvaUgP5XOzXCwhfjNA+PHuo3LA4he0YA0wFHSGa6Jbtej kOAIP2fGRggRToPJbSNp+4mhdu2YwNz6/LGgA61lAi/xQ02OIoVU9FGelzaoHDo= X-Gm-Gg: ASbGnctKV0d4PmeH8seOTQfR3Ij0mM7TuH3jWM01imCna7aG7YSAex99MK4FRW7EfZg +ebvbGhnYUsIMi0HAjiwjdFNQ5EjM4Ij3Vxqz1vllo44fZ7JqMthD/eEAOce3A2Yf7DZav0vCBw DnPGzsHjMrbPsFhCzjcEC7djVMNBfc/pcFRSm8AI4RbM5tLJASttIuY9spIG9aHT3cyZoeh8cmM 5UFQC8tiCKVYZanSKE2q7VhYwI/C4+41lBPpAAZCk2u0dH+7i3z9FYliPNu/FeLPlidKphIaQ+W vhYmxScA5yHUinNFiCdL7QTnrjYFMDEqaHJBtDi7SaxXorlg X-Google-Smtp-Source: AGHT+IFucTZsmmGzPkhUaQ2Z/vAwZtrI/ji5V2QIPWKukl3A8249XbRp5GqSbF4sFE7Q2Qv5hdQlbA== X-Received: by 2002:a05:600c:3d0c:b0:439:a1ce:5669 with SMTP id 5b1f17b1804b1-43f1ed4a7a9mr22097145e9.5.1744279425469; Thu, 10 Apr 2025 03:03:45 -0700 (PDT) Received: from localhost ([2a02:8308:a00c:e200:7d22:13bb:e539:15ee]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39d893773a0sm4273653f8f.25.2025.04.10.03.03.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Apr 2025 03:03:45 -0700 (PDT) Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Thu, 10 Apr 2025 12:03:44 +0200 Message-Id: Subject: Re: [PATCH v12 06/28] riscv/mm : ensure PROT_WRITE leads to VM_READ | VM_WRITE Cc: , , , , , , , , , , , , , , , , , , , , , "Zong Li" , "linux-riscv" To: "Deepak Gupta" , "Thomas Gleixner" , "Ingo Molnar" , "Borislav Petkov" , "Dave Hansen" , , "H. Peter Anvin" , "Andrew Morton" , "Liam R. Howlett" , "Vlastimil Babka" , "Lorenzo Stoakes" , "Paul Walmsley" , "Palmer Dabbelt" , "Albert Ou" , "Conor Dooley" , "Rob Herring" , "Krzysztof Kozlowski" , "Arnd Bergmann" , "Christian Brauner" , "Peter Zijlstra" , "Oleg Nesterov" , "Eric Biederman" , "Kees Cook" , "Jonathan Corbet" , "Shuah Khan" , "Jann Horn" , "Conor Dooley" From: =?utf-8?q?Radim_Kr=C4=8Dm=C3=A1=C5=99?= References: <20250314-v5_user_cfi_series-v12-0-e51202b53138@rivosinc.com> <20250314-v5_user_cfi_series-v12-6-e51202b53138@rivosinc.com> In-Reply-To: <20250314-v5_user_cfi_series-v12-6-e51202b53138@rivosinc.com> X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 40B37160003 X-Stat-Signature: h15xyi6ycpanm9bnspdycqq49a1cggzd X-Rspam-User: X-HE-Tag: 1744279426-768665 X-HE-Meta: U2FsdGVkX1+dL6+hgvl9ej58Hf+sKgHaRY5NpKwGUNdZ0lARNPhMNhJAHZrU+Tors6gGvoEHTkBAbafedEkYqsWrFGLCfDCljVBxD6o6drToNOrVcjEEK6Pz7FIdMAXN5U/stI+RGQ401lXs2MlK5T+kmXFOyMT7DjDgC0hiEIaNk24uG9R6zH+gGAA6wlvVBnEUqIZC+gi1W50pN10mRrxsbRkAJjItTdLLMvPyn+JWS9FsmUgpcXqXtTdQHDGqW1AQOSDHP+CQ6eSNvF4wtDnYj2pTDuwhsFuVsxL8R0Aow+FwBynqWzXM3wWWvfnTLRCvY9QHTT8x81zztWDLTPWh0wBnQz8IP3XNiS46PaEareIhoSTSWwZhESOH4ZuVzpPyTPkF3XSHnDnL1Q1tUsbMOlBv59nZby/GgIACZ+6woMku7mpCTtEmIH/sIXFaKA1fX8oGXZ7X02qkro4ecGiOwP9j0mmrNQyvbTx3EOy9ZbXOAuKhpD4ag4v2TlA9AFDrcPP+ZnNQI1NmnFB+h03MzHVC2FH7ir/fugfG/fF6qbSU2ghoIP/w1oXhKJ9SarZBaKBBFKf02H/pTvP7ntPGzzdMOKMQqyDywYOrktOffkb3WPKIzrqo1kDtMS7HxzF0ykmE2/iACTfu3dGQ4W93n7SjM7E+gNBixywgT9LQ2rgXP8i+L0X90gttG6qiMjC0vxv2VtLvul8ZgzVxtc/xXO8hGCp+sh8G63BvWaKFdV5jIxKvPMb8CTFTU2QomvvExBWp9BU84zl3JT+uKlqlstvqJRHdKolwjQKu4C+pPC4brPo1O14l5AGX6A0l+Rb82vWjERSmHEgWLIt1f0vRSAV2eyVmwpSx8U0BpcVUj5Kwh7lOryRAanksQzjnV6AyICkb5Q0/lyeu65d5+wDdpA0hMYrJydXcWWFwvfOi8X3H7PJcldE+ushj0dAyhsBNAODDewRRPK+m/N+ EAyNA1hJ 0SmM6wiyH+AvWho2g/OKliIz1PpA1W1bmSUjmxveVeTKJFJVNdEC4Ax4IJQiD9gILmrxAtA9xMAJATJYCp7OG5QmXg6CXi5QN7Kzbwk+QHPgZ1xoSvC0XkEKez208KOKUeQTJ7y0c6uC0m6W0wYtt05nreAZvFDtpJsIQDv+VF5Ijn4hXtmeSUEBndBJfieHS+j4YC8FryDNizEv9rmW4aiOiBXyscPQltF3c8t2RDsA3BegY8zmq2n8RfREIXBjHcfLLZiTLXYgN0ialdpY/pet981exHpazCCc8fopowPwKfEUnK9a4g1F12vjXLPc6+tdsH2EbhelqqTyddZo1W7AZ3TRSGxPfof6na69a40rz606q2uyDpL2KeeckPMo7ugahyaMNRx7drvYzYZPoXXCNKcWhZtFy0j6fLIqOKaoeup1x1n/2znX5FL0P+zvxqlY3/+QSv3huyXsUW0uXyldaOIu51aL9XPFpLsKxmqvfuZjRUsxDXK7FqeVl6i2EA/62O4UGcUiffimgL9H9rUUy3xB3AqhQ4nUr+grELPGcqQs2v2wpbRMxgIufEgqm1gBholOmqKpLpn8e6jqv+xL5GYMan9XvTb5c44oMnyPrQyQPC8sxg+axpbNJqWSpS1ovOyVth6UruBx25u1ZQuABR5XnowNIdxsLuTutoMszX7VL5VpU7m9zWkZKIjRFT4V0uXgtaS1FPqE= 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: 2025-03-14T14:39:25-07:00, Deepak Gupta : > diff --git a/arch/riscv/include/asm/mman.h b/arch/riscv/include/asm/mman.= h > +static inline unsigned long arch_calc_vm_prot_bits(unsigned long prot, > + unsigned long pkey __always_unused) > +{ > + unsigned long ret =3D 0; > + > + /* > + * If PROT_WRITE was specified, force it to VM_READ | VM_WRITE. > + * Only VM_WRITE means shadow stack. > + */ This function also changes PROT_WX to VM_RWX, which is effectively not changing anything, but I think it deserves an explicit intent. (At least in the commit message.) > + if (prot & PROT_WRITE) > + ret =3D (VM_READ | VM_WRITE); > + return ret; > +} > diff --git a/arch/riscv/kernel/sys_riscv.c b/arch/riscv/kernel/sys_riscv.= c > @@ -16,6 +17,15 @@ static long riscv_sys_mmap(unsigned long addr, unsigne= d long len, > + /* > + * If PROT_WRITE is specified then extend that to PROT_READ > + * protection_map[VM_WRITE] is now going to select shadow stack encodin= gs. > + * So specifying PROT_WRITE actually should select protection_map [VM_W= RITE | VM_READ] > + * If user wants to create shadow stack then they should use `map_shado= w_stack` syscall. > + */ > + if (unlikely((prot & PROT_WRITE) && !(prot & PROT_READ))) > + prot |=3D PROT_READ; Why isn't the previous hunk be enough? (Or why don't we do just this?) riscv_sys_mmap() eventually calls arch_calc_vm_prot_bits(), so I'd rather fix each code path just once. Thanks.