From nobody Mon Feb 9 14:33:35 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1576753948; cv=none; d=zohomail.com; s=zohoarc; b=JGM0xZlhWkaWNGOqmEd/OYCicr/haqa/ZbVTsvSce3qGSJJMvVVglQjWvQpSSlycA+CMqeOy22rg/G5jbYM9J9YZ7DPaZCrRYURXDgg8WmNf9GGTkmDg6Avn8ju+MKtJnvUJdPHjLYS6aoIjrs9CBxJDZhgrcfXlRgG6wj3D5wM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1576753948; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=xHpMM384RdXLzpFE6SjAZkdl42OK3Or+UxwQ8vHaGjs=; b=kxjWjxw4O7r3ll3tEnEyjyCcQ0tD+lWux0KG5j/8c1El1VPT/xj1C2GXWwjCp+00yzk7IizjdriqYjpW6Z060g+w1dbXI2NNgh5AMlRXzAXlikG62r0F5exN+Uy7W4cM+VS5Ix6JhVz/c52QC8zbUJT5hybYlswY/Gi26ndc/y0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1576753948365386.06755100018836; Thu, 19 Dec 2019 03:12:28 -0800 (PST) Received: from localhost ([::1]:39262 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ihtjH-0004Bh-4O for importer@patchew.org; Thu, 19 Dec 2019 06:12:27 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:43522) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ihtYq-0006oh-Ss for qemu-devel@nongnu.org; Thu, 19 Dec 2019 06:01:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ihtYp-00010V-HJ for qemu-devel@nongnu.org; Thu, 19 Dec 2019 06:01:40 -0500 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:60890 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ihtYp-0000y1-At for qemu-devel@nongnu.org; Thu, 19 Dec 2019 06:01:39 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-346-V4CIXPzsOm6JY6G4ARcCYw-1; Thu, 19 Dec 2019 06:01:29 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 289011005514; Thu, 19 Dec 2019 11:01:28 +0000 (UTC) Received: from localhost (ovpn-117-134.ams2.redhat.com [10.36.117.134]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B32F710013A1; Thu, 19 Dec 2019 11:01:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1576753298; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=xHpMM384RdXLzpFE6SjAZkdl42OK3Or+UxwQ8vHaGjs=; b=eQ7e4EXZVlf3oSi0mZEditzL1Jt0wc3hd/n29QF7L1RIkIlxY+zkD3hsQyh8Y2ft7hCGdi lvExeX1CUaSlcNykuRWCArvrr7ghQN++QuQ0AEP9CsMqMVGbQl2gREHWwA/kh8soLwCZji /QNVqEMfQkvQ6D2uYXsIetCwKXUWYnM= From: Cornelia Huck To: Peter Maydell Subject: [PULL 3/6] tests/boot-sector: Fix the bad s390x assembler code Date: Thu, 19 Dec 2019 12:01:09 +0100 Message-Id: <20191219110112.8343-4-cohuck@redhat.com> In-Reply-To: <20191219110112.8343-1-cohuck@redhat.com> References: <20191219110112.8343-1-cohuck@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-MC-Unique: V4CIXPzsOm6JY6G4ARcCYw-1 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 205.139.110.120 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Huth , Christian Borntraeger , qemu-s390x@nongnu.org, Cornelia Huck , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Thomas Huth There are currently two bugs in s390x_code[]: First, the initial jump uses the wrong offset, so it was jumping to 0x10014 instead of 0x10010. Second, LHI only loads the lower 32-bit of the register. Everything worked fine as long as the s390-ccw bios code was jumping here with r3 containing zeroes in the uppermost 48 bit - which just happened to be the case so far by accident. But we can not rely on this fact, and indeed one of the recent suggested patches to jump2ipl.c cause the newer GCCs to put different values into r3. In that case the code from s390x_code[] crashes very ungracefully. Thus let's make sure to jump to the right instruction, and use LGHI instead of LHI to make sure that we always zero out the upper bits of the register. Signed-off-by: Thomas Huth Message-Id: <20191217150642.27946-1-thuth@redhat.com> Reviewed-by: Christian Borntraeger Signed-off-by: Cornelia Huck --- tests/boot-sector.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/boot-sector.c b/tests/boot-sector.c index 7824286b9a4e..9e66c6d0130a 100644 --- a/tests/boot-sector.c +++ b/tests/boot-sector.c @@ -75,11 +75,11 @@ static const uint8_t s390x_psw_and_magic[] =3D { 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40 /* in the s390-ccw bi= os */ }; static const uint8_t s390x_code[] =3D { - 0xa7, 0xf4, 0x00, 0x0a, /* j 0x10010 */ + 0xa7, 0xf4, 0x00, 0x08, /* j 0x10010 */ 0x00, 0x00, 0x00, 0x00, 'S', '3', '9', '0', 'E', 'P', 0x00, 0x01, - 0xa7, 0x38, HIGH(SIGNATURE_ADDR), LOW(SIGNATURE_ADDR), /* lhi r3,0x7c1= 0 */ + 0xa7, 0x39, HIGH(SIGNATURE_ADDR), LOW(SIGNATURE_ADDR), /* lghi r3,0x7c= 10 */ 0xa7, 0x48, LOW(SIGNATURE), HIGH(SIGNATURE), /* lhi r4,0xadd= e */ 0x40, 0x40, 0x30, 0x00, /* sth r4,0(r3)= */ 0xa7, 0xf4, 0xff, 0xfa /* j 0x10010 */ --=20 2.21.0