Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp3787630pxb; Sun, 7 Feb 2021 23:21:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJwwjogRcDOAEJaxaiZjBf+VSlVK6Ja5LAwgtEqjJk8iz6h+PBah8KSXdP5ljdg7KK0NHLaH X-Received: by 2002:a17:906:442:: with SMTP id e2mr15872108eja.9.1612768873265; Sun, 07 Feb 2021 23:21:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612768873; cv=none; d=google.com; s=arc-20160816; b=KEbIlQDuA8lgHcvvTyEaGuXpFWNRj6za/YHowDBCMujfYVxnlsC3Cw8VG27laZbN9m kFkidZFXL74SOU7uZnLO7GbZkqtbpZUp74mMSRQLolN/PvhA8RgmEu0xcuYDjilPKRDw +4oXDla41c0qsOUGDudc9weQQJ24JvmexKASCy/Vwh4UwdSS1h2k8urdIyV9LnA71xj+ NtOFxjBuWASABbYXX1QU0W9mc6suNRgJTr6sCg7coRKK2Co9Q9oSZfPqXUPbiQWtMS3j v5GorKeTPDOeDRtudKQoqxugsMq8yvRwKASN7wicwknS2r953yUstxVgs4j/kEtc7nri c6LA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:date:cc:to:subject:from:message-id; bh=auZW4XuExhl9y7+Z1x8AGg5WRb8FFv8E68ROMSakWhM=; b=Fq+MMd1bvTk4kdOzUG4h8/v92f69WKAbfB1W/z4TiRCh/Pkmfc188ykD9JF+kSRliU Lahi3Ay3Q+5282tDtiA1K9AkyGTYdKQSRtl0slRbr6X2EGQ07W2CQ+hdSq5ksf7OjW4C F0IuWnupQN69rsp7siaDZdV63TjHkMl4XHVWvdYqLWvud9TctofhvWy0Owkwf804Wo8q MRXhGbfWZjFE/7k8PmM3akaJRjbJrt7Tucjic718okk5t2C+M4/cUnXWfbHXowZeuPwF /C9l0ISAJwpooJWC1y5BRcQxNdTBExTscrk2n05/P4tFCB9mpgdaWFp/lAkgIhUK4Hse kp9Q== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id 33si9987033edq.187.2021.02.07.23.20.49; Sun, 07 Feb 2021 23:21:13 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229751AbhBHHSc (ORCPT + 99 others); Mon, 8 Feb 2021 02:18:32 -0500 Received: from pegase1.c-s.fr ([93.17.236.30]:26970 "EHLO pegase1.c-s.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229608AbhBHHSa (ORCPT ); Mon, 8 Feb 2021 02:18:30 -0500 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 4DYy5s2WXcz9tyb0; Mon, 8 Feb 2021 08:17:37 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at c-s.fr Received: from pegase1.c-s.fr ([192.168.12.234]) by localhost (pegase1.c-s.fr [192.168.12.234]) (amavisd-new, port 10024) with ESMTP id i4YqNbed2Zye; Mon, 8 Feb 2021 08:17:37 +0100 (CET) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase1.c-s.fr (Postfix) with ESMTP id 4DYy5s0zWmz9tyZx; Mon, 8 Feb 2021 08:17:37 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 537738B798; Mon, 8 Feb 2021 08:17:41 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id E4Xlc0eCwMdv; Mon, 8 Feb 2021 08:17:41 +0100 (CET) Received: from po16121vm.idsi0.si.c-s.fr (po15451.idsi0.si.c-s.fr [172.25.230.103]) by messagerie.si.c-s.fr (Postfix) with ESMTP id DE7CB8B75B; Mon, 8 Feb 2021 08:17:40 +0100 (CET) Received: by po16121vm.idsi0.si.c-s.fr (Postfix, from userid 0) id BDF8267312; Mon, 8 Feb 2021 07:17:40 +0000 (UTC) Message-Id: <5ae4d545e3ac58e133d2599e0deb88843cb494fc.1612768623.git.christophe.leroy@csgroup.eu> From: Christophe Leroy Subject: [PATCH] powerpc/32: Preserve cr1 in exception prolog stack check to fix build error To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Date: Mon, 8 Feb 2021 07:17:40 +0000 (UTC) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org THREAD_ALIGN_SHIFT = THREAD_SHIFT + 1 = PAGE_SHIFT + 1 Maximum PAGE_SHIFT is 18 for 256k pages so THREAD_ALIGN_SHIFT is 19 at the maximum. No need to clobber cr1, it can be preserved when moving r1 into CR when we check stack overflow. This reduces the number of instructions in Machine Check Exception prolog and fixes a build failure reported by the kernel test robot on v5.10 stable when building with RTAS + VMAP_STACK + KVM. That build failure is due to too many instructions in the prolog hence not fitting between 0x200 and 0x300. Allthough the problem doesn't show up in mainline, it is still worth the change. Reported-by: kernel test robot Fixes: 98bf2d3f4970 ("powerpc/32s: Fix RTAS machine check with VMAP stack") Cc: stable@vger.kernel.org Signed-off-by: Christophe Leroy --- arch/powerpc/kernel/head_32.h | 2 +- arch/powerpc/kernel/head_book3s_32.S | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/arch/powerpc/kernel/head_32.h b/arch/powerpc/kernel/head_32.h index a2f72c966baf..abc7b603ab65 100644 --- a/arch/powerpc/kernel/head_32.h +++ b/arch/powerpc/kernel/head_32.h @@ -47,7 +47,7 @@ lwz r1,TASK_STACK-THREAD(r1) addi r1, r1, THREAD_SIZE - INT_FRAME_SIZE 1: - mtcrf 0x7f, r1 + mtcrf 0x3f, r1 bt 32 - THREAD_ALIGN_SHIFT, stack_overflow #else subi r11, r1, INT_FRAME_SIZE /* use r1 if kernel */ diff --git a/arch/powerpc/kernel/head_book3s_32.S b/arch/powerpc/kernel/head_book3s_32.S index 54140f4927e5..10e6aa88b1ff 100644 --- a/arch/powerpc/kernel/head_book3s_32.S +++ b/arch/powerpc/kernel/head_book3s_32.S @@ -278,12 +278,6 @@ MachineCheck: 7: EXCEPTION_PROLOG_2 addi r3,r1,STACK_FRAME_OVERHEAD #ifdef CONFIG_PPC_CHRP -#ifdef CONFIG_VMAP_STACK - mfspr r4, SPRN_SPRG_THREAD - tovirt(r4, r4) - lwz r4, RTAS_SP(r4) - cmpwi cr1, r4, 0 -#endif beq cr1, machine_check_tramp twi 31, 0, 0 #else -- 2.25.0