From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E9897C433EF for ; Tue, 8 Feb 2022 01:03:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=vQpmjHVf0eJLjje8vmNZ6dzalfP6uZx5FO7l1UTMWMU=; b=p/kWL9PuGrxuDx6/11+YHvQNfe vihOEkft5LcQq8dhbezoo0EpoakvXmDqq1sIME5PHL8kbaSkPJBUxG4YtipdVlKgjKMSO6eCd+eU4 +JSpGiIGyRTnVv/GhTj+Rw+IXenkoEPNvpewbfW2J/V2x8n5eHZdjSTOL8avaQeFd3WWD9ZvtZa+/ EugrQcxm8GQibQfZqARjzTU9FmnRvYvu2B64nMTcUXg2sPqEPKSAfXGcVxfYq/cScjczCowoYNlSd tN+t6Jk7M0idJYuelbureb2QGGB/oqQ/oTPVHFU+BuNTXvqg42AcxmOmzmSGxxhkJqG1PuhquAUa0 Em0M9/GQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nHEtJ-00C5l8-Nv; Tue, 08 Feb 2022 01:01:57 +0000 Received: from mail-il1-x129.google.com ([2607:f8b0:4864:20::129]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nHEtG-00C5km-FE for linux-arm-kernel@lists.infradead.org; Tue, 08 Feb 2022 01:01:56 +0000 Received: by mail-il1-x129.google.com with SMTP id z7so12633857ilb.6 for ; Mon, 07 Feb 2022 17:01:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=+MSw8f2/WMFrNwenSrqO3coph/spjyCfBlyMTMFY/nk=; b=cPNkEM9iGfcJmQQG5GNFgSuiDqvjU/v/K45O/APMcWW5cUCBQR73fV9H94r8Alz1lK 6oiDGMhJcO5rLXfq5xdzTTQ6QqyrPxTkFIE3KibvM23+VBpiDMb4vD97E12rzj1ovFkJ 5KF3SojlyhGie/6lG4LcfosrR6z+q8sOa/UyU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=+MSw8f2/WMFrNwenSrqO3coph/spjyCfBlyMTMFY/nk=; b=g7FBpilQFY2GCtyQ8w/yaoT/sEscg9A0hXadXrhRJpLX9e9IE88nRbJ7BMBCld1ITj zh31teH1Zt2BYoE0WSbewGy5FA04unXb0QYbLD79h0w+ZkT4zEWJ/RzoJOZKc3N1m7+1 brbiZHvOQpsTbjNsRgHAEReaflpdiRlGC88zIQN/DkzU5zBTLy2hFTFpxOAWV7CZv0zn LKKcolT1desw5tJjsoM2zm6uvyqn+a5M6pWR+oW0zZCX4Y5yTwKwbF0JD/SpPaUp/1XS d3uNvkR04YTVOkZ9s51S4ePAc3MP0P/L8dmlkj45uVrLA0kgzfzOpNPy0zF3HG2+ihBR km2g== X-Gm-Message-State: AOAM532y0FAer0pXUVpZ99gfqNSpcwgKvndkX+nPftdfHuxs3xcRitge +S52Wj0cm2ppI/VAtjbzb/q38A== X-Google-Smtp-Source: ABdhPJyGZReyBrJkI6hJYVU6PZGQBedUHSLPj5q18a333DDeJ2KPnz/9AFYXHaqc7vMPQWKU4pb/bQ== X-Received: by 2002:a05:6e02:1b83:: with SMTP id h3mr997196ili.81.1644282111497; Mon, 07 Feb 2022 17:01:51 -0800 (PST) Received: from [192.168.1.128] ([71.205.29.0]) by smtp.gmail.com with ESMTPSA id o7sm6407298ilo.17.2022.02.07.17.01.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 07 Feb 2022 17:01:50 -0800 (PST) Subject: Re: [PATCH v11 35/40] kselftest/arm64: signal: Handle ZA signal context in core code To: Mark Brown , Catalin Marinas , Will Deacon , Marc Zyngier , Shuah Khan Cc: Alan Hayward , Luis Machado , Salil Akerkar , Basant Kumar Dwivedi , Szabolcs Nagy , James Morse , Alexandru Elisei , Suzuki K Poulose , linux-arm-kernel@lists.infradead.org, linux-kselftest@vger.kernel.org, kvmarm@lists.cs.columbia.edu, Shuah Khan References: <20220207152109.197566-1-broonie@kernel.org> <20220207152109.197566-36-broonie@kernel.org> From: Shuah Khan Message-ID: Date: Mon, 7 Feb 2022 18:01:49 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: <20220207152109.197566-36-broonie@kernel.org> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220207_170154_558128_46575EA9 X-CRM114-Status: GOOD ( 26.37 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 2/7/22 8:21 AM, Mark Brown wrote: > As part of the generic code for signal handling test cases we parse all > signal frames to make sure they have at least the basic form we expect > and that there are no unexpected frames present in the signal context. > Add coverage of the ZA signal frame to this code. > > Signed-off-by: Mark Brown > --- > .../arm64/signal/testcases/testcases.c | 36 +++++++++++++++++++ > .../arm64/signal/testcases/testcases.h | 3 +- > 2 files changed, 38 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/arm64/signal/testcases/testcases.c b/tools/testing/selftests/arm64/signal/testcases/testcases.c > index 8c2a57fc2f9c..84c36bee4d82 100644 > --- a/tools/testing/selftests/arm64/signal/testcases/testcases.c > +++ b/tools/testing/selftests/arm64/signal/testcases/testcases.c > @@ -75,6 +75,31 @@ bool validate_sve_context(struct sve_context *sve, char **err) > return true; > } > > +bool validate_za_context(struct za_context *za, char **err) > +{ > + /* Size will be rounded up to a multiple of 16 bytes */ > + size_t regs_size > + = ((ZA_SIG_CONTEXT_SIZE(sve_vq_from_vl(za->vl)) + 15) / 16) * 16; > + > + if (!za || !err) > + return false; > + > + /* Either a bare za_context or a za_context followed by regs data */ > + if ((za->head.size != sizeof(struct za_context)) && > + (za->head.size != regs_size)) { > + *err = "bad size for ZA context"; > + return false; > + } > + > + if (!sve_vl_valid(za->vl)) { > + *err = "SME VL in ZA context invalid"; > + > + return false; > + } > + > + return true; > +} > + > bool validate_reserved(ucontext_t *uc, size_t resv_sz, char **err) > { > bool terminated = false; > @@ -82,6 +107,7 @@ bool validate_reserved(ucontext_t *uc, size_t resv_sz, char **err) > int flags = 0; > struct extra_context *extra = NULL; > struct sve_context *sve = NULL; > + struct za_context *za = NULL; > struct _aarch64_ctx *head = > (struct _aarch64_ctx *)uc->uc_mcontext.__reserved; > > @@ -120,6 +146,13 @@ bool validate_reserved(ucontext_t *uc, size_t resv_sz, char **err) > sve = (struct sve_context *)head; > flags |= SVE_CTX; > break; > + case ZA_MAGIC: > + if (flags & ZA_CTX) > + *err = "Multiple ZA_MAGIC"; Is this considered an error? > + /* Size is validated in validate_za_context() */ > + za = (struct za_context *)head; > + flags |= ZA_CTX; > + break; > case EXTRA_MAGIC: > if (flags & EXTRA_CTX) > *err = "Multiple EXTRA_MAGIC"; > @@ -165,6 +198,9 @@ bool validate_reserved(ucontext_t *uc, size_t resv_sz, char **err) > if (flags & SVE_CTX) > if (!validate_sve_context(sve, err)) > return false; > + if (flags & ZA_CTX) > + if (!validate_za_context(za, err)) If validate_za_context() finds an error, the above "Multiple ZA_MAGIC" will be overwritten? Is that the intent? > + return false; > > head = GET_RESV_NEXT_HEAD(head); > } > diff --git a/tools/testing/selftests/arm64/signal/testcases/testcases.h b/tools/testing/selftests/arm64/signal/testcases/testcases.h > index ad884c135314..49f1d5de7b5b 100644 > --- a/tools/testing/selftests/arm64/signal/testcases/testcases.h > +++ b/tools/testing/selftests/arm64/signal/testcases/testcases.h > @@ -16,7 +16,8 @@ > > #define FPSIMD_CTX (1 << 0) > #define SVE_CTX (1 << 1) > -#define EXTRA_CTX (1 << 2) > +#define ZA_CTX (1 << 2) > +#define EXTRA_CTX (1 << 3) > > #define KSFT_BAD_MAGIC 0xdeadbeef > > With these explained or fixed: Reviewed-by: Shuah Khan thanks, -- Shuah thanks, -- Shuah _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel