Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp933980ybt; Wed, 17 Jun 2020 18:18:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyuxOkY+1KyymiG8SCt9eDkSuHWyXpGwn9rtxQj+0cBRCNAQBr9JpZep4yIR8YyvlSd+rqX X-Received: by 2002:a17:907:20ed:: with SMTP id rh13mr1856495ejb.135.1592443104626; Wed, 17 Jun 2020 18:18:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592443104; cv=none; d=google.com; s=arc-20160816; b=GPGzCJHprMP6EE8IW4Lq871XsSX63NR0mP1eZUKPCg9NqrahYYFJ1azFN+iCK1jEoq TJC0y2kYTtrI1cpwZeIKw5IDW80IC4bFn64BHKMhIFRdZKywiSLzgfT0G+dSw5PFqC28 vnhmQg1kvT8+eiXugC8goXnHwnUJgdh2+1A0hDHhgeDDScbQXwY8+u68IuOU/ZJlYQez WC26yVodnqZmS9ZzknL2oes4joGKjcOl/bd9iG4/FGWzTMINsfj2IUH6IW36yYL3XTkT h3sL+wGpo4WK9H55Wh4n468wURMNPj7b0m2JoQxrBjUIo9FhjutVRwUMPyYIMxmbYo6K uYog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=HeclpK9LEqIL77LYGxT3CYkdpDyXhA+XG1B4f4qEH5E=; b=K02xbQpdy+l+ZARrsTpDgfmyHsjQZWXurVHt1p3MacxVZiph0KvEMcrOIsf2wSYYyt CdrLpx8uw+gfauMoSd+Ws4FPyWVdXjM/E7Y9kMAFbDOm2zZaplEkuavWj1LiitrlS3C7 kixq4g2G+Hh6qsRDim532QwzJvrXyC6YGCuJcjV5rUz/7AD1w5BZZ48Rvkd9IAoxW+nD 6tSjzapOTxtkQgz1O3V2040TMoC/1sOgsHTFJdq0vK/Xtz7K4801jTJcxgP9K3SNQLqa ylc8iGGG97HT6oajYN9x9Hx8CpT67sFEZSycnjquiHTmg8GFdDT1pFbASC4mOBLUNOyj YySQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=B0mgQUdX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a7si870891ejy.133.2020.06.17.18.18.02; Wed, 17 Jun 2020 18:18:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=B0mgQUdX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729526AbgFRBPz (ORCPT + 99 others); Wed, 17 Jun 2020 21:15:55 -0400 Received: from mail.kernel.org ([198.145.29.99]:43632 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729273AbgFRBOF (ORCPT ); Wed, 17 Jun 2020 21:14:05 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D493E20EDD; Thu, 18 Jun 2020 01:14:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592442844; bh=h0D9f8SfqSG5dRuYkwYsO4LqVWOjWOhzRu88NoAcVDM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=B0mgQUdXH1YhS7ALLNxoMWYoc7vSmwHM7Vrm926wdv4TlqNd4J1orz9cHsLIHrJ00 u/e5voSyP4rjYWsYrs+y1Y7S+Jj+K98nDBpaHz0rQ03MZQ8JHxNIEypybjkiZ20HMA Y0Nr5VXHiuKmmUkdGqpKf40FY0n2YuaEU6OqKxl8= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe Leroy , Michael Ellerman , Sasha Levin , linuxppc-dev@lists.ozlabs.org Subject: [PATCH AUTOSEL 5.7 277/388] powerpc/32s: Don't warn when mapping RO data ROX. Date: Wed, 17 Jun 2020 21:06:14 -0400 Message-Id: <20200618010805.600873-277-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200618010805.600873-1-sashal@kernel.org> References: <20200618010805.600873-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Christophe Leroy [ Upstream commit 4b19f96a81bceaf0bcf44d79c0855c61158065ec ] Mapping RO data as ROX is not an issue since that data cannot be modified to introduce an exploit. PPC64 accepts to have RO data mapped ROX, as a trade off between kernel size and strictness of protection. On PPC32, kernel size is even more critical as amount of memory is usually small. Depending on the number of available IBATs, the last IBATs might overflow the end of text. Only warn if it crosses the end of RO data. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman Link: https://lore.kernel.org/r/6499f8eeb2a36330e5c9fc1cee9a79374875bd54.1589866984.git.christophe.leroy@csgroup.eu Signed-off-by: Sasha Levin --- arch/powerpc/mm/book3s32/mmu.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/mm/book3s32/mmu.c b/arch/powerpc/mm/book3s32/mmu.c index 39ba53ca5bb5..a9b2cbc74797 100644 --- a/arch/powerpc/mm/book3s32/mmu.c +++ b/arch/powerpc/mm/book3s32/mmu.c @@ -187,6 +187,7 @@ void mmu_mark_initmem_nx(void) int i; unsigned long base = (unsigned long)_stext - PAGE_OFFSET; unsigned long top = (unsigned long)_etext - PAGE_OFFSET; + unsigned long border = (unsigned long)__init_begin - PAGE_OFFSET; unsigned long size; if (IS_ENABLED(CONFIG_PPC_BOOK3S_601)) @@ -201,9 +202,10 @@ void mmu_mark_initmem_nx(void) size = block_size(base, top); size = max(size, 128UL << 10); if ((top - base) > size) { - if (strict_kernel_rwx_enabled()) - pr_warn("Kernel _etext not properly aligned\n"); size <<= 1; + if (strict_kernel_rwx_enabled() && base + size > border) + pr_warn("Some RW data is getting mapped X. " + "Adjust CONFIG_DATA_SHIFT to avoid that.\n"); } setibat(i++, PAGE_OFFSET + base, base, size, PAGE_KERNEL_TEXT); base += size; -- 2.25.1