From patchwork Wed Sep 9 16:29:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1361222 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Bn76h0QqTz9sT6 for ; Thu, 10 Sep 2020 15:41:32 +1000 (AEST) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=mK4vlix8; dkim-atps=neutral Received: from bilbo.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 4Bn76g54bRzDqbC for ; Thu, 10 Sep 2020 15:41:31 +1000 (AEST) X-Original-To: skiboot-stable@lists.ozlabs.org Delivered-To: skiboot-stable@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gmail.com (client-ip=2607:f8b0:4864:20::1041; helo=mail-pj1-x1041.google.com; envelope-from=npiggin@gmail.com; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=mK4vlix8; dkim-atps=neutral Received: from mail-pj1-x1041.google.com (mail-pj1-x1041.google.com [IPv6:2607:f8b0:4864:20::1041]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4BmnYV4x5dzDqZX; Thu, 10 Sep 2020 02:30:04 +1000 (AEST) Received: by mail-pj1-x1041.google.com with SMTP id md22so14837pjb.0; Wed, 09 Sep 2020 09:30:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=FxeU0Dh7sGs5LzYYx+/yzLYYqCVw+m0v+gw8pbwifW4=; b=mK4vlix8RXq+jO/Z6jRx3fneTOgxVdkfRvBtCX/ZOr6JC+/Vx9X7nElq1eQ6TbbuCJ eL6geX4TtV3Ri3xZqfb7O/PaBGcJQ87YZJaHxjtoZxsPLdu/bC70zgAKuSvKCX84NeHC TQimKjDgaKbweAVgCKXYJ49LnVg07Sdy8vYdYigBsuYSvEHNVjtmCGTwWoA5smiwEcsG 4IjtT9KW6SOIGwVg9rc5CCYb15RJlL8XAoTpF+UAs/GqqUU7ba0NT40/ZzJhWP9/cx/r Gn43IMdMgDiypgAkcHCai18d8mxUxbsf5rovKBp/Zf0rm/4udfClPVwiArayl+w9WguZ uZxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=FxeU0Dh7sGs5LzYYx+/yzLYYqCVw+m0v+gw8pbwifW4=; b=LBUsomFPEivjetMF4uq1jpGBaibGx9fZ8lMhEHHDQ6isVWRVjxiHeAbQN833jJHOei tKkefpxzmYzW2/nan3Sk/jtyszMIjjA+I/x0w0JvUTMlSnKkcEex1SnH7vnlpGvlxWzm mkWDgxk+KgeVNcAUw3aQDXJGj/xRT9R1QUIxxE9be0YBich/LjfgRHyL9N0STtplAza/ 6zDCIJJOZqqByCZlxzAGao12eAN4FO3bSUwtd05nYmdXL+QdJUL5q3KdylRzANOMgW4y HnqgrWEjx5CYnTJQqux4TJlcLmVkF+idUglTBbfXREgKYHHuQfszPxPBwJnkw/6RWDnG IcvA== X-Gm-Message-State: AOAM532kLr6/cqWXi4nCUBnGPj76Rd2c0wTZ4xAUxCWnhajPJIo16Y0A 2JC9RLDc7RX8ZQO9+OclI+g8ML6qdhY= X-Google-Smtp-Source: ABdhPJzk/qNni9TC/6GsFxM58INObWuHCNm4kh2Go07ApE+LSZHqmgriAHgSGN7XHHTEExyI5FaayQ== X-Received: by 2002:a17:90a:6343:: with SMTP id v3mr1430251pjs.163.1599669000612; Wed, 09 Sep 2020 09:30:00 -0700 (PDT) Received: from bobo.ozlabs.ibm.com ([203.185.249.227]) by smtp.gmail.com with ESMTPSA id h5sm2791318pgn.75.2020.09.09.09.29.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Sep 2020 09:30:00 -0700 (PDT) From: Nicholas Piggin To: skiboot@lists.ozlabs.org Date: Thu, 10 Sep 2020 02:29:46 +1000 Message-Id: <20200909162946.3428010-1-npiggin@gmail.com> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 X-Mailman-Approved-At: Thu, 10 Sep 2020 15:41:29 +1000 Subject: [Skiboot-stable] [PATCH] asm/head: fix power save wakeup register corruption X-BeenThere: skiboot-stable@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Patches, review, and discussion for stable releases of skiboot" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: skiboot-stable@lists.ozlabs.org, Nicholas Piggin Errors-To: skiboot-stable-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Skiboot-stable" Power save wakeup handlers can clobber r30 before testing for state loss and avoiding restoring non-volatile GPRs. Fix this by using r5 instead (and move the register usage to one place, for clarity). Cc: skiboot-stable@lists.ozlabs.org Fixes: 8a43bf86b7 ("core/exceptions: implement an exception handler for non-powersave sresets") Signed-off-by: Nicholas Piggin --- asm/head.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/asm/head.S b/asm/head.S index 0b81bb51a..7058f734d 100644 --- a/asm/head.S +++ b/asm/head.S @@ -114,7 +114,6 @@ hdat_entry: li %r4,0x200 b _exception 1: - LOAD_IMM64(%r30, SKIBOOT_BASE) cmpdi %r3,0x1 bne 2f /* state loss */ LOAD_IMM32(%r3, reset_resume - __head) @@ -122,7 +121,8 @@ hdat_entry: 2: LOAD_IMM32(%r3, reset_wakeup - __head) 3: - add %r3,%r30,%r3 + LOAD_IMM64(%r5, SKIBOOT_BASE) + add %r3,%r5,%r3 mtctr %r3 li %r3,0x200 bctr @@ -582,7 +582,6 @@ reset_patch_start: li %r4,0x100 b _exception + (reset_patch_start - sreset_vector) 1: - LOAD_IMM64(%r30, SKIBOOT_BASE) cmpdi %r3,0x1 bne 2f /* state loss */ LOAD_IMM32(%r3, reset_resume - __head) @@ -590,7 +589,8 @@ reset_patch_start: 2: LOAD_IMM32(%r3, reset_wakeup - __head) 3: - add %r3,%r30,%r3 + LOAD_IMM64(%r5, SKIBOOT_BASE) + add %r3,%r5,%r3 mtctr %r3 li %r3,0x100 bctr