Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp2024847ybh; Fri, 24 Jul 2020 02:28:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyZQ0twWzfOzyvoxRZZNmM30FyDSsM9dxn7Ini8zMwJ6spt+FzRGxI8mPeXWJReO7B1iAYG X-Received: by 2002:a05:6402:2350:: with SMTP id r16mr7748948eda.62.1595582882827; Fri, 24 Jul 2020 02:28:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595582882; cv=none; d=google.com; s=arc-20160816; b=p57j8iRd1sFKPGPsFQ8okIdL/wB1n0laFx1cO28Yiz953OhLQnmGvJI7amuxPepZM0 h6k7EmcRASkGTrlAQ2rHE14IgNpCgiAc/CM7BxqTqgVFrA4cDNphglV4Euqroe/FW/ER UFLY46Fz4lMzkTX0HQdtb9p0DZbg4mV8/LwH02P0/VKHZAFrHw/+GENMIPI4QR8zxcUC yK7Cko3us9/SzvZx4dHVA/b58GFcmCi8Wc/ouETpv37sKRiqp/vx9WrY2YqzYWvtgslZ rTVWVVF6ODMiNqvs8sVnx4Ygz0STvzh6ScZvtQyD5lDK7j0L7ROc9z+WWm9kttQNaHpT OJlw== 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=C+Gnn7CfB73lzwruXc44Tgbm6gIy+KwyuVR/gz2NkDg=; b=E0jedXqgaKjGEal+zQX9BGiXUqfZc9fIcIbtzZsVKLIJ5HCwSmMB98rOsSkrDyR/nh if4EXXIP3nWYoNmNRPVrKG3MhLibl/vB/pRR9UdiNAq/H3eqmpRe22BIQgokrxOs8Kl/ q9dHPyJqXX7zilcDOZgQwaDXOavwejNScj+xC1UU60nCogUPimNUDYmfOf0w83/SEKFo mdv3GUEgUiv94at9N1Ntf9OPlHcnnkUwBQ0qV01r+WICgVwvICzW2fx7Qd7CeWhpUOyt 6HYvbVZMx8+cXPwUFAst3NVexK8ahyDbhfrR7lBRJwH+plHMZ+sqUg4fcVYth7UrwK8p LvpA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ellerman.id.au header.s=201909 header.b=U0DhRYX0; 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 p25si251246ejc.429.2020.07.24.02.27.40; Fri, 24 Jul 2020 02:28:02 -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=@ellerman.id.au header.s=201909 header.b=U0DhRYX0; 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 S1728158AbgGXJZk (ORCPT + 99 others); Fri, 24 Jul 2020 05:25:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55998 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728103AbgGXJZh (ORCPT ); Fri, 24 Jul 2020 05:25:37 -0400 Received: from ozlabs.org (ozlabs.org [IPv6:2401:3900:2:1::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E9A28C0619D3 for ; Fri, 24 Jul 2020 02:25:36 -0700 (PDT) Received: by ozlabs.org (Postfix, from userid 1034) id 4BCkML709Xz9sTR; Fri, 24 Jul 2020 19:25:34 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ellerman.id.au; s=201909; t=1595582734; bh=vCGU+gOWB/YZEqlPlPGoQ5FWWYVeper93AigHoMP2yM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=U0DhRYX0HLkwPBRdyhMqonCmKugrnjrLH0ZOKIKlQ2p92nxkjjMmcQ6XwOLiu/3QF xcT4vD1jzRH39+bbHwEIizY7xunSPbFSnsSjA1UsoPB4NFhUlSAg5lhEKwoxAhZSoq 9z37DpTQ8iCUdOdTeTYXSCM+Sw34hpu3xvzK7PeV4Ac+JO7Kh3TQ72WcCVkTKZyYST jDtAHbBy97KRtx+ENsbMhYEc00Fviz8d0eiEq0Akpg6sFxoHW1JsB5gS43iZ5Xu0Fc txeT4Z3a5h4Zx3C+QccnSBEoTmby4vq3Q+ZqZ/271CHyaTsX+ATOy+cZjt0SQToO/M NxAjQBTYpOZsw== From: Michael Ellerman To: linuxppc-dev@ozlabs.org Cc: dja@axtens.net, linux-kernel@vger.kernel.org Subject: [PATCH v2 5/5] selftests/powerpc: Remove powerpc special cases from stack expansion test Date: Fri, 24 Jul 2020 19:25:28 +1000 Message-Id: <20200724092528.1578671-5-mpe@ellerman.id.au> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200724092528.1578671-1-mpe@ellerman.id.au> References: <20200724092528.1578671-1-mpe@ellerman.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Now that the powerpc code behaves the same as other architectures we can drop the special cases we had. Signed-off-by: Michael Ellerman --- .../powerpc/mm/stack_expansion_ldst.c | 41 +++---------------- 1 file changed, 5 insertions(+), 36 deletions(-) v2: no change just rebased. diff --git a/tools/testing/selftests/powerpc/mm/stack_expansion_ldst.c b/tools/testing/selftests/powerpc/mm/stack_expansion_ldst.c index 8dbfb51acf0f..ed9143990888 100644 --- a/tools/testing/selftests/powerpc/mm/stack_expansion_ldst.c +++ b/tools/testing/selftests/powerpc/mm/stack_expansion_ldst.c @@ -56,13 +56,7 @@ int consume_stack(unsigned long target_sp, unsigned long stack_high, int delta, #else asm volatile ("mov %%rsp, %[sp]" : [sp] "=r" (stack_top_sp)); #endif - - // Kludge, delta < 0 indicates relative to SP - if (delta < 0) - target = stack_top_sp + delta; - else - target = stack_high - delta + 1; - + target = stack_high - delta + 1; volatile char *p = (char *)target; if (type == STORE) @@ -162,41 +156,16 @@ static int test_one(unsigned int stack_used, int delta, enum access_type type) static void test_one_type(enum access_type type, unsigned long page_size, unsigned long rlim_cur) { - assert(test_one(DEFAULT_SIZE, 512 * _KB, type) == 0); + unsigned long delta; - // powerpc has a special case to allow up to 1MB - assert(test_one(DEFAULT_SIZE, 1 * _MB, type) == 0); - -#ifdef __powerpc__ - // This fails on powerpc because it's > 1MB and is not a stdu & - // not close to r1 - assert(test_one(DEFAULT_SIZE, 1 * _MB + 8, type) != 0); -#else - assert(test_one(DEFAULT_SIZE, 1 * _MB + 8, type) == 0); -#endif - -#ifdef __powerpc__ - // Accessing way past the stack pointer is not allowed on powerpc - assert(test_one(DEFAULT_SIZE, rlim_cur, type) != 0); -#else // We should be able to access anywhere within the rlimit + for (delta = page_size; delta <= rlim_cur; delta += page_size) + assert(test_one(DEFAULT_SIZE, delta, type) == 0); + assert(test_one(DEFAULT_SIZE, rlim_cur, type) == 0); -#endif // But if we go past the rlimit it should fail assert(test_one(DEFAULT_SIZE, rlim_cur + 1, type) != 0); - - // Above 1MB powerpc only allows accesses within 4224 bytes of - // r1 for accesses that aren't stdu - assert(test_one(1 * _MB + page_size - 128, -4224, type) == 0); -#ifdef __powerpc__ - assert(test_one(1 * _MB + page_size - 128, -4225, type) != 0); -#else - assert(test_one(1 * _MB + page_size - 128, -4225, type) == 0); -#endif - - // By consuming 2MB of stack we test the stdu case - assert(test_one(2 * _MB + page_size - 128, -4224, type) == 0); } static int test(void) -- 2.25.1