From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: AH8x225O/7ILHGCjX3ffTw+e1JH3seoeffRgW+PLLfYRqsDn3qwGAyjOPK6IuPb4d+2Jtl7gjxSe ARC-Seal: i=1; a=rsa-sha256; t=1516647413; cv=none; d=google.com; s=arc-20160816; b=z4KezZ1KAiKyRU7fQ1SJQ+/eEZ2YaPSK2zhVppmBw7dly0FwauqYexRQfgekROi413 NMy4rerm3JmzDGuHf9vd4xFc1bwkKtpoRT9tctLJOoERAxLvha853h6m620lBFBCmBxS 49KgkNCM6VyVM2hztKtZIm2XtVVNYJNAtG1GFPWJIfhf6m1rJecPtE3TcrbNJOZDbTp1 MexYgEkVJYI24VBLbykgMZNWLw/c7JnFWjovrB300yemHWwZZBqcfkQq1VDSKxKFEmHD MHSCPeASYowRhqs7vupxhUslQMokB2T+7S7Wlagi9Qrz5wxeNNVkYu6pg/yxvzItNprT lveg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=L+uW3dcSpJ+BeaNwMcRuZbX7okJXQ3EZ20ysDvnYSJ0=; b=UgFJUnDWdN5/I3e7WHtJDtqTOv9IPut7wDfLZ932lYxm786c8sxtpCif/sne/l338R +sHzzM6WBUVjAnd6jyBfaFDxQ0jC5GT55GHDn+ZRXcKeskd1khRtgM0crAamftQxjJYE /Qg0rPyZ4AeR/fd80Y9HkuOgcPArewtb/VUGSDwho9TwFo6WTyA3xsVKxD5Hje4rbphp 8VH0LuHuyYGBVGMeQz96yTq5mfuW730sLz/7TfLz9RESZSCzYmaM/JqmqLonH4KoSqmw TwXtgDLCm9EvVxqNkQkNuFHOdiu57jID6075x9u3P6+eaq/gGMzpK9+K9tJWkhfLuciN pmDw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=a+rgxpt7; spf=pass (google.com: best guess record for domain of linux-kselftest-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kselftest-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=a+rgxpt7; spf=pass (google.com: best guess record for domain of linux-kselftest-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kselftest-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751480AbeAVS4g (ORCPT ); Mon, 22 Jan 2018 13:56:36 -0500 Received: from mail-qt0-f196.google.com ([209.85.216.196]:32781 "EHLO mail-qt0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751255AbeAVSxf (ORCPT ); Mon, 22 Jan 2018 13:53:35 -0500 From: Ram Pai To: shuahkh@osg.samsung.com, linux-kselftest@vger.kernel.org Cc: mpe@ellerman.id.au, linuxppc-dev@lists.ozlabs.org, linux-mm@kvack.org, x86@kernel.org, linux-arch@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, mingo@redhat.com, akpm@linux-foundation.org, dave.hansen@intel.com, benh@kernel.crashing.org, paulus@samba.org, khandual@linux.vnet.ibm.com, aneesh.kumar@linux.vnet.ibm.com, bsingharora@gmail.com, hbabu@us.ibm.com, mhocko@kernel.org, bauerman@linux.vnet.ibm.com, ebiederm@xmission.com, linuxram@us.ibm.com, arnd@arndb.de Subject: [PATCH v10 16/24] selftests/vm: fix an assertion in test_pkey_alloc_exhaust() Date: Mon, 22 Jan 2018 10:52:09 -0800 Message-Id: <1516647137-11174-17-git-send-email-linuxram@us.ibm.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1516647137-11174-1-git-send-email-linuxram@us.ibm.com> References: <1516647137-11174-1-git-send-email-linuxram@us.ibm.com> Sender: linux-kselftest-owner@vger.kernel.org X-Mailing-List: linux-kselftest@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1590320078538519335?= X-GMAIL-MSGID: =?utf-8?q?1590320078538519335?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: The maximum number of keys that can be allocated has to take into consideration, that some keys are reserved by the architecture for specific purpose. Hence cannot be allocated. Fix the assertion in test_pkey_alloc_exhaust() Signed-off-by: Ram Pai --- tools/testing/selftests/vm/pkey-helpers.h | 14 ++++++++++++++ tools/testing/selftests/vm/protection_keys.c | 9 ++++----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/vm/pkey-helpers.h b/tools/testing/selftests/vm/pkey-helpers.h index 3559527..9d06b4a 100644 --- a/tools/testing/selftests/vm/pkey-helpers.h +++ b/tools/testing/selftests/vm/pkey-helpers.h @@ -401,4 +401,18 @@ static inline int get_start_key(void) #endif /* arch */ } +static inline int arch_reserved_keys(void) +{ +#if defined(__i386__) || defined(__x86_64__) /* arch */ + return NR_RESERVED_PKEYS; +#elif __powerpc64__ /* arch */ + if (sysconf(_SC_PAGESIZE) == 4096) + return NR_RESERVED_PKEYS_4K; + else + return NR_RESERVED_PKEYS_64K; +#else /* arch */ + NOT SUPPORTED +#endif /* arch */ +} + #endif /* _PKEYS_HELPER_H */ diff --git a/tools/testing/selftests/vm/protection_keys.c b/tools/testing/selftests/vm/protection_keys.c index 65e6dd6..33d5839 100644 --- a/tools/testing/selftests/vm/protection_keys.c +++ b/tools/testing/selftests/vm/protection_keys.c @@ -1167,12 +1167,11 @@ void test_pkey_alloc_exhaust(int *ptr, u16 pkey) pkey_assert(i < NR_PKEYS*2); /* - * There are 16 pkeys supported in hardware. One is taken - * up for the default (0) and another can be taken up by - * an execute-only mapping. Ensure that we can allocate - * at least 14 (16-2). + * There are NR_PKEYS pkeys supported in hardware. arch_reserved_keys() + * are reserved. One can be taken up by an execute-only mapping. + * Ensure that we can allocate at least the remaining. */ - pkey_assert(i >= NR_PKEYS-2); + pkey_assert(i >= (NR_PKEYS-arch_reserved_keys()-1)); for (i = 0; i < nr_allocated_pkeys; i++) { err = sys_pkey_free(allocated_pkeys[i]); -- 1.7.1