From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Martin Subject: [RFC PATCH v5 30/30] arm64/sve: signal: Include SVE when computing AT_MINSIGSTKSZ Date: Tue, 31 Oct 2017 15:51:22 +0000 Message-ID: <1509465082-30427-31-git-send-email-Dave.Martin@arm.com> References: <1509465082-30427-1-git-send-email-Dave.Martin@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1509465082-30427-1-git-send-email-Dave.Martin@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu To: linux-arm-kernel@lists.infradead.org Cc: linux-arch@vger.kernel.org, Okamoto Takayuki , libc-alpha@sourceware.org, Ard Biesheuvel , Szabolcs Nagy , Catalin Marinas , Will Deacon , kvmarm@lists.cs.columbia.edu List-Id: linux-arch.vger.kernel.org VGhlIFNWRSBjb250ZXh0IGJsb2NrIGluIHRoZSBzaWduYWwgZnJhbWUgbmVlZHMgdG8gYmUgY29u c2lkZXJlZAp0b28gd2hlbiBjb21wdXRpbmcgdGhlIG1heGltdW0gcG9zc2libGUgc2lnbmFsIGZy YW1lIHNpemUuCgpCZWNhdXNlIHRoZSBzaXplIG9mIHRoaXMgYmxvY2sgZGVwZW5kcyBvbiB0aGUg dmVjdG9yIGxlbmd0aCwgdGhpcwpwYXRjaCBjb21wdXRlcyB0aGUgc2l6ZSBiYXNlZCBub3Qgb24g dGhlIHRocmVhZCdzIGN1cnJlbnQgdmVjdG9yCmxlbmd0aCBidXQgaW5zdGVhZCBvbiB0aGUgbWF4 aW11bSBwb3NzaWJsZSB2ZWN0b3IgbGVuZ3RoOiB0aGlzCmRldGVybWluZXMgdGhlIG1heGltdW0g c2l6ZSBvZiBTVkUgY29udGV4dCBibG9jayB0aGF0IGNhbiBiZQpvYnNlcnZlZCBpbiBhbnkgc2ln bmFsIGZyYW1lIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIHByb2Nlc3MuCgpTaWduZWQtb2ZmLWJ5 OiBEYXZlIE1hcnRpbiA8RGF2ZS5NYXJ0aW5AYXJtLmNvbT4KQ2M6IEFyZCBCaWVzaGV1dmVsIDxh cmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPgpDYzogQWxleCBCZW5uw6llIDxhbGV4LmJlbm5lZUBs aW5hcm8ub3JnPgotLS0KIGFyY2gvYXJtNjQva2VybmVsL3NpZ25hbC5jIHwgMTQgKysrKysrKysr KysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL3NpZ25hbC5jIGIvYXJjaC9hcm02NC9rZXJu ZWwvc2lnbmFsLmMKaW5kZXggN2M3ZDlhZS4uOWI4YWE5MiAxMDA2NDQKLS0tIGEvYXJjaC9hcm02 NC9rZXJuZWwvc2lnbmFsLmMKKysrIGIvYXJjaC9hcm02NC9rZXJuZWwvc2lnbmFsLmMKQEAgLTU5 OSw4ICs1OTksMTggQEAgc3RhdGljIGludCBzZXR1cF9zaWdmcmFtZV9sYXlvdXQoc3RydWN0IHJ0 X3NpZ2ZyYW1lX3VzZXJfbGF5b3V0ICp1c2VyLAogCWlmIChzeXN0ZW1fc3VwcG9ydHNfc3ZlKCkp IHsKIAkJdW5zaWduZWQgaW50IHZxID0gMDsKIAotCQlpZiAodGVzdF90aHJlYWRfZmxhZyhUSUZf U1ZFKSkKLQkJCXZxID0gc3ZlX3ZxX2Zyb21fdmwoY3VycmVudC0+dGhyZWFkLnN2ZV92bCk7CisJ CWlmIChhZGRfYWxsIHx8IHRlc3RfdGhyZWFkX2ZsYWcoVElGX1NWRSkpIHsKKwkJCWludCB2bCA9 IHN2ZV9tYXhfdmw7CisKKwkJCWlmICghYWRkX2FsbCkKKwkJCQl2bCA9IGN1cnJlbnQtPnRocmVh ZC5zdmVfdmw7CisKKwkJCS8qIEZhaWwgc2FmZSBpZiBzb21ldGhpbmcgd2Fzbid0IGluaXRpYWxp c2VkICovCisJCQlpZiAoV0FSTl9PTighc3ZlX3ZsX3ZhbGlkKHZsKSkpCisJCQkJdmwgPSBTVkVf VkxfTUlOOworCisJCQl2cSA9IHN2ZV92cV9mcm9tX3ZsKHZsKTsKKwkJfQogCiAJCWVyciA9IHNp Z2ZyYW1lX2FsbG9jKHVzZXIsICZ1c2VyLT5zdmVfb2Zmc2V0LAogCQkJCSAgICAgU1ZFX1NJR19D T05URVhUX1NJWkUodnEpKTsKLS0gCjIuMS40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwprdm1hcm0gbWFpbGluZyBsaXN0Cmt2bWFybUBsaXN0cy5jcy5j b2x1bWJpYS5lZHUKaHR0cHM6Ly9saXN0cy5jcy5jb2x1bWJpYS5lZHUvbWFpbG1hbi9saXN0aW5m by9rdm1hcm0K From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:37968 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932289AbdJaPwa (ORCPT ); Tue, 31 Oct 2017 11:52:30 -0400 From: Dave Martin Subject: [RFC PATCH v5 30/30] arm64/sve: signal: Include SVE when computing AT_MINSIGSTKSZ Date: Tue, 31 Oct 2017 15:51:22 +0000 Message-ID: <1509465082-30427-31-git-send-email-Dave.Martin@arm.com> In-Reply-To: <1509465082-30427-1-git-send-email-Dave.Martin@arm.com> References: <1509465082-30427-1-git-send-email-Dave.Martin@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-arch-owner@vger.kernel.org List-ID: To: linux-arm-kernel@lists.infradead.org Cc: Catalin Marinas , Will Deacon , Ard Biesheuvel , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Szabolcs Nagy , Okamoto Takayuki , kvmarm@lists.cs.columbia.edu, libc-alpha@sourceware.org, linux-arch@vger.kernel.org Message-ID: <20171031155122.O7V194e2EwIXH4WlYeSXiq8uA9X2-JY8V5UCJ7fex-M@z> The SVE context block in the signal frame needs to be considered too when computing the maximum possible signal frame size. Because the size of this block depends on the vector length, this patch computes the size based not on the thread's current vector length but instead on the maximum possible vector length: this determines the maximum size of SVE context block that can be observed in any signal frame for the lifetime of the process. Signed-off-by: Dave Martin Cc: Ard Biesheuvel Cc: Alex Bennée --- arch/arm64/kernel/signal.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c index 7c7d9ae..9b8aa92 100644 --- a/arch/arm64/kernel/signal.c +++ b/arch/arm64/kernel/signal.c @@ -599,8 +599,18 @@ static int setup_sigframe_layout(struct rt_sigframe_user_layout *user, if (system_supports_sve()) { unsigned int vq = 0; - if (test_thread_flag(TIF_SVE)) - vq = sve_vq_from_vl(current->thread.sve_vl); + if (add_all || test_thread_flag(TIF_SVE)) { + int vl = sve_max_vl; + + if (!add_all) + vl = current->thread.sve_vl; + + /* Fail safe if something wasn't initialised */ + if (WARN_ON(!sve_vl_valid(vl))) + vl = SVE_VL_MIN; + + vq = sve_vq_from_vl(vl); + } err = sigframe_alloc(user, &user->sve_offset, SVE_SIG_CONTEXT_SIZE(vq)); -- 2.1.4