Received: by 2002:a05:7412:f589:b0:e2:908c:2ebd with SMTP id eh9csp137164rdb; Tue, 31 Oct 2023 03:16:04 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEVAP10Ek38/DSK1Rlyfhqdav4LZxQfnPPkIjLINDd+wlp8ksZa3jjLpAcUNU2c79c1yj/v X-Received: by 2002:a17:90b:790:b0:27d:4ab9:fcd9 with SMTP id l16-20020a17090b079000b0027d4ab9fcd9mr8850145pjz.21.1698747364445; Tue, 31 Oct 2023 03:16:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698747364; cv=none; d=google.com; s=arc-20160816; b=AUeeee4AhXcRR6yrGPUHuB4uc1pLDGtLpcmgaRQDfxU46fZHuokIyCVg/roXRocEY3 diT73Q7hC+GIUneRYS7IqlnmL7pVJpyTLHmcZ3Rzx4iIrMBHTuj2uZkE0kTMAUBEUaV/ rTkrxtg1uJgrqkowphlOshbYhaqARuR5r+002WyCSMMUQt1cXEHDwjBXCAOV0GiCU+8q 2wqlERMJhq/y10XwoolldmXk+5lZ4uuFfN1AK0VsRJI0KHiR/bd2yDuD/EI4sm/EU0IO XmNPnaV+NogKUYd1yW1mFwFdTUdArj6uoTmSL/UphU40CrzGlbIwrsRtpdoDmJSv5ISq pwMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:dkim-signature; bh=OJUS+9KjTbdR5em9rRihDJVrcjq7setQKbZNTOU4ovA=; fh=0aOEGKHO7nVLt7on8tqLA0f9/y2Ua7wlnkA+IjKCECc=; b=yRqE8Zjy3yFgOYdkSh6UK2vXV+Iglbju6rFG6Rhti9sMuYHu2ROiTL/ZIbcVo5aKTJ r2XQBo+z2wBYbTimFux8MbQbDydja6uxHWd6yuuTWY/BgI1y5/FKJcc65Y+QhQMksxDn JZoZJd3+HhsiVXY3SIWhCjO508HaOiCEsqWo4v+U2E41jMjY243vVWGISkk+Mb1vJKT+ 4rELPZnImqjKmvheCWa7aUadFyNA/6GQuNLqhX6DC8JhaM0utIEHvRJzQswksQHO8OBA 21l2V38SRvrQt+Lc+COJVo1MhKaZ9F6mmKWWC+bZtPJmCZQyEkdiWgy2mkUJEEOK8mKc a02Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=GSZjLDZg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id p3-20020a17090b010300b002801ac582d0si751719pjz.185.2023.10.31.03.15.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Oct 2023 03:16:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=GSZjLDZg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=ibm.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id D2F6A8083488; Tue, 31 Oct 2023 03:15:41 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236174AbjJaKPc (ORCPT + 99 others); Tue, 31 Oct 2023 06:15:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53580 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236158AbjJaKPa (ORCPT ); Tue, 31 Oct 2023 06:15:30 -0400 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 01366DF for ; Tue, 31 Oct 2023 03:15:27 -0700 (PDT) Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 39VAAu37002468; Tue, 31 Oct 2023 10:15:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : in-reply-to : references : date : message-id : mime-version : content-type; s=pp1; bh=OJUS+9KjTbdR5em9rRihDJVrcjq7setQKbZNTOU4ovA=; b=GSZjLDZgf+JqpIo8P7Q3l59QzXHlc/Rf2tJ0fqIjixkZluDmN50X6uv+nG1KmS3+mF7m Ck72vhiYAHjlksW4im0WwMZai5zXXdeQDbpJ3hy0rzIlZFDJp4tmrpRBNgei37OJmQ+x is0yLUYvLS5K4NKZmowq4lHM3H6Zp9ASG05rRNC7CzkoynUJWtyeN/oIyzq1/ftKZBwK V7gzQ1CrYERIGWjsvJNp1URzG1uniW1x5JlThyP3c3aMK/tsrwGrbmCe42IpveC6oavC XnopMi5rHGjs0hJ4d4P2MQSTOQsIkMQenetb08RWuV6JUht3qJYnzGzaZ1YtITkGqikR /Q== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3u2xtksqwt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 31 Oct 2023 10:15:17 +0000 Received: from m0353729.ppops.net (m0353729.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 39VABtuj007412; Tue, 31 Oct 2023 10:15:17 GMT Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3u2xtksqw1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 31 Oct 2023 10:15:16 +0000 Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 39V8Ireu011544; Tue, 31 Oct 2023 10:15:15 GMT Received: from smtprelay06.dal12v.mail.ibm.com ([172.16.1.8]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3u1e4kqdve-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 31 Oct 2023 10:15:15 +0000 Received: from smtpav03.wdc07v.mail.ibm.com (smtpav03.wdc07v.mail.ibm.com [10.39.53.230]) by smtprelay06.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 39VAFEYw6554338 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 31 Oct 2023 10:15:14 GMT Received: from smtpav03.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8D0C85805A; Tue, 31 Oct 2023 10:15:14 +0000 (GMT) Received: from smtpav03.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4F0345805C; Tue, 31 Oct 2023 10:15:12 +0000 (GMT) Received: from skywalker.linux.ibm.com (unknown [9.109.212.144]) by smtpav03.wdc07v.mail.ibm.com (Postfix) with ESMTP; Tue, 31 Oct 2023 10:15:11 +0000 (GMT) X-Mailer: emacs 29.1 (via feedmail 11-beta-1 I) From: "Aneesh Kumar K.V" To: Christophe Leroy , Michael Ellerman , Nicholas Piggin Cc: Christophe Leroy , linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Subject: Re: [PATCH v2 29/37] powerpc/nohash: Replace pte_user() by pte_read() In-Reply-To: <72cbb5be595e9ef884140def73815ed0b0b37010.1695659959.git.christophe.leroy@csgroup.eu> References: <72cbb5be595e9ef884140def73815ed0b0b37010.1695659959.git.christophe.leroy@csgroup.eu> Date: Tue, 31 Oct 2023 15:45:10 +0530 Message-ID: <877cn39jyp.fsf@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-GCONF: 00 X-Proofpoint-GUID: JCYExBOwiSDD9TKMNTt1BCt2ouAey2KB X-Proofpoint-ORIG-GUID: ZcNCFHo4s6xeuPC-l20x3XEboXBzRwct X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.987,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-10-30_13,2023-10-31_03,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 impostorscore=0 priorityscore=1501 bulkscore=0 mlxscore=0 lowpriorityscore=0 adultscore=0 phishscore=0 clxscore=1011 suspectscore=0 spamscore=0 mlxlogscore=405 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2310240000 definitions=main-2310310080 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Tue, 31 Oct 2023 03:15:42 -0700 (PDT) Christophe Leroy writes: > pte_user() is now only used in pte_access_permitted() to check > access on vmas. User flag is cleared to make a page unreadable. > > So rename it pte_read() and remove pte_user() which isn't used > anymore. > > For the time being it checks _PAGE_USER but in the near futur > all plateforms will be converted to _PAGE_READ so lets support > both for now. > > Signed-off-by: Christophe Leroy > --- > arch/powerpc/include/asm/nohash/32/pte-8xx.h | 7 ------- > arch/powerpc/include/asm/nohash/pgtable.h | 13 +++++++------ > arch/powerpc/mm/ioremap.c | 4 ---- > 3 files changed, 7 insertions(+), 17 deletions(-) > > diff --git a/arch/powerpc/include/asm/nohash/32/pte-8xx.h b/arch/powerpc/include/asm/nohash/32/pte-8xx.h > index 62c965a4511a..1ee38befd29a 100644 > --- a/arch/powerpc/include/asm/nohash/32/pte-8xx.h > +++ b/arch/powerpc/include/asm/nohash/32/pte-8xx.h > @@ -112,13 +112,6 @@ static inline pte_t pte_mkwrite_novma(pte_t pte) > > #define pte_mkwrite_novma pte_mkwrite_novma > > -static inline bool pte_user(pte_t pte) > -{ > - return !(pte_val(pte) & _PAGE_SH); > -} > - > -#define pte_user pte_user > - > static inline pte_t pte_mkhuge(pte_t pte) > { > return __pte(pte_val(pte) | _PAGE_SPS | _PAGE_HUGE); > diff --git a/arch/powerpc/include/asm/nohash/pgtable.h b/arch/powerpc/include/asm/nohash/pgtable.h > index ee677162f9e6..aba56fe3b1c6 100644 > --- a/arch/powerpc/include/asm/nohash/pgtable.h > +++ b/arch/powerpc/include/asm/nohash/pgtable.h > @@ -160,9 +160,6 @@ static inline int pte_write(pte_t pte) > return pte_val(pte) & _PAGE_WRITE; > } > #endif > -#ifndef pte_read > -static inline int pte_read(pte_t pte) { return 1; } > -#endif > static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; } > static inline int pte_special(pte_t pte) { return pte_val(pte) & _PAGE_SPECIAL; } > static inline int pte_none(pte_t pte) { return (pte_val(pte) & ~_PTE_NONE_MASK) == 0; } > @@ -190,10 +187,14 @@ static inline int pte_young(pte_t pte) > * and PTE_64BIT, PAGE_KERNEL_X contains _PAGE_BAP_SR which is also in > * _PAGE_USER. Need to explicitly match _PAGE_BAP_UR bit in that case too. > */ > -#ifndef pte_user > -static inline bool pte_user(pte_t pte) > +#ifndef pte_read > +static inline bool pte_read(pte_t pte) > { > +#ifdef _PAGE_READ > + return (pte_val(pte) & _PAGE_READ) == _PAGE_READ; > +#else > return (pte_val(pte) & _PAGE_USER) == _PAGE_USER; > +#endif > } > #endif > > @@ -208,7 +209,7 @@ static inline bool pte_access_permitted(pte_t pte, bool write) > * A read-only access is controlled by _PAGE_USER bit. > * We have _PAGE_READ set for WRITE and EXECUTE > */ > - if (!pte_present(pte) || !pte_user(pte) || !pte_read(pte)) > + if (!pte_present(pte) || !pte_read(pte)) > return false; > > if (write && !pte_write(pte)) > diff --git a/arch/powerpc/mm/ioremap.c b/arch/powerpc/mm/ioremap.c > index 7823c38f09de..7b0afcabd89f 100644 > --- a/arch/powerpc/mm/ioremap.c > +++ b/arch/powerpc/mm/ioremap.c > @@ -50,10 +50,6 @@ void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long flags) > if (pte_write(pte)) > pte = pte_mkdirty(pte); > > - /* we don't want to let _PAGE_USER leak out */ > - if (WARN_ON(pte_user(pte))) > - return NULL; > This check is still valid right? I understand that we want to remove _PAGE_USER. But then loosing this check is ok? > - > if (iowa_is_active()) > return iowa_ioremap(addr, size, pte_pgprot(pte), caller); > return __ioremap_caller(addr, size, pte_pgprot(pte), caller); > -- > 2.41.0