Package: golang-1.7 / 1.7.1-3

cl-28850.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
From d38d59ffb5d56c838b1ed7cc346b8d63398b5452 Mon Sep 17 00:00:00 2001
From: Michael Munday <munday@ca.ibm.com>
Date: Thu, 8 Sep 2016 19:27:24 -0400
Subject: [PATCH] runtime: fix SIGILL in checkvectorfacility on s390x
Origin: https://golang.org/cl/28850
Bug: https://golang.org/issue/17032
Applied-Upstream: 1.7.2

STFLE does not necessarily write to all the double-words that are
requested. It is therefore necessary to clear the target memory
before calling STFLE in order to ensure that the facility list does
not contain false positives.

Fixes #17032.

Change-Id: I7bec9ade7103e747b72f08562fe57e6f091bd89f
Reviewed-on: https://go-review.googlesource.com/28850
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
---
 src/runtime/asm_s390x.s | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/runtime/asm_s390x.s b/src/runtime/asm_s390x.s
index cf0ed1a..928fe37 100644
--- a/src/runtime/asm_s390x.s
+++ b/src/runtime/asm_s390x.s
@@ -20,6 +20,7 @@ TEXT runtime·checkvectorfacility(SB),NOSPLIT,$32-0
 	MOVD    $2, R0
 	MOVD	R1, tmp-32(SP)
 	MOVD    $x-24(SP), R1
+	XC	$24, 0(R1), 0(R1)
 //      STFLE   0(R1)
 	WORD    $0xB2B01000
 	MOVBZ   z-8(SP), R1