From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.mainlining.org (mail.mainlining.org [5.75.144.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A40113D75A8 for ; Tue, 25 Aug 2026 20:58:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=5.75.144.95 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787691538; cv=none; b=URnzKoJ60GBpsk3bTE2F7sCyubEIegj1UuUTR7CQ3ova9GS/aBnTVL0Y4L0BfhrkFnrLhxu4yAHFFGpZbbR5X4UT4/4JDylr3ks2rUjZLjpjoPaVF93Tox2mnokTdgVRtb6IuN/Y4odr+6vsBvvZfRBv+NxD14vodk1z4fOVW2k= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787691538; c=relaxed/simple; bh=FKEIjKXBcojqD4mz1MIW3HN2+3QpL3DopPawywzFp/Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rQf0EHK7uQQJaZgZzsyjCzaUCiWOkyv+TMq/wwhUp28CFsxNeqX9igitZ4YsZYAPa2ZeXBMnCsrrxjTDwqrbxNkfsE+TaNFhhZWlwRgoDbItrS99vAjXKXdPUYbrAk/XjCIU5XEt/PZogFmQ7rC4MxbV6IPkZQE1YiDNJdfE+Dc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=mainlining.org; spf=pass smtp.mailfrom=mainlining.org; dkim=pass (2048-bit key) header.d=mainlining.org header.i=@mainlining.org header.b=HHiOExNa; dkim=permerror (0-bit key) header.d=mainlining.org header.i=@mainlining.org header.b=tEWKBLAO; arc=none smtp.client-ip=5.75.144.95 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=mainlining.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mainlining.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mainlining.org header.i=@mainlining.org header.b="HHiOExNa"; dkim=permerror (0-bit key) header.d=mainlining.org header.i=@mainlining.org header.b="tEWKBLAO" DKIM-Signature: v=1; a=rsa-sha256; s=202507r; d=mainlining.org; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1787691522; bh=E6ST9MO0xhHKKK61d7KBl+q 5WdV+hnI+lqckETtBROU=; b=HHiOExNagC67Mue4hKwQ0B5MUnPtWrGbsg45GprQpkh307ZKIQ KgadCKPrFoCytd5mSZcaommv5m/eTgI3rMOHxpyQ5P40L/3qcbX21aiAnEMHkwEm2aXpgAURBy2 epBoNcMrXtkCSajJdTreXtNjPfmmf9Psj+pEjMwkxHpxnzfbPslRh2EF2kliJ4Aw01+UdkkOO+W hVXombEqXr2FMfxhpUyjzrkAFbSJzjGMr4ovhlaM5eU9sq85SeJLBsagfm90/Hj0MVhwUjbtw8S lXh1N8GB9g87Y0VqqwehixKI60TsEk1AaC7KohFjbvV6d9yWs0DRcmyXj67c7HxEF7w==; DKIM-Signature: v=1; a=ed25519-sha256; s=202507e; d=mainlining.org; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1787691522; bh=E6ST9MO0xhHKKK61d7KBl+q 5WdV+hnI+lqckETtBROU=; b=tEWKBLAOvv0aZDYbFR45is0Xz4W0LeAXh3ss6J0V/o6dz115+a OprdMuGDsMebHWkxgEfna/Fxe655s1hM1SBA==; From: Bradley Morgan To: Will Deacon Cc: Catalin Marinas , Mark Rutland , James Morse , Marc Zyngier , Ard Biesheuvel , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, brads@mainlining.org Subject: [PATCH 5/7] arm64: hibernate: use dcache_by_myline_op Date: Tue, 25 Aug 2026 20:58:37 +0000 Message-ID: <20260825205839.14571-6-brads@mainlining.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260825205839.14571-1-brads@mainlining.org> References: <20260825205839.14571-1-brads@mainlining.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit swsusp_arch_suspend_exit() used to open code its cache maintenance, but the dcache_by_myline_op macro does everything that open coded version did, including the ARM64_WORKAROUND_CLEAN_CACHE handling. So use it. Since this was first written the macro got split, with the trailing DSB moved out into a wrapper, so use dcache_by_myline_op_nosync here and keep relying on the DSB that already sits after the restore loop. That keeps this a true no-op. Signed-off-by: Bradley Morgan Cc: Ard Biesheuvel Cc: Catalin Marinas Cc: James Morse Cc: Marc Zyngier Cc: Will Deacon --- arch/arm64/kernel/hibernate-asm.S | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/arch/arm64/kernel/hibernate-asm.S b/arch/arm64/kernel/hibernate-asm.S index 2baefe7a82d3..f7613404f99e 100644 --- a/arch/arm64/kernel/hibernate-asm.S +++ b/arch/arm64/kernel/hibernate-asm.S @@ -66,16 +66,11 @@ SYM_CODE_START(swsusp_arch_suspend_exit) copy_page x0, x1, x2, x3, x4, x5, x6, x7, x8, x9 + /* Clean the restored page to the PoU */ + mov x0, x10 add x1, x10, #PAGE_SIZE - /* Clean the copied page to PoU - based on caches_clean_inval_pou() */ raw_dcache_line_size x2, x3 - sub x3, x2, #1 - bic x4, x10, x3 -2: /* clean D line / unified line */ -alternative_insn "dc cvau, x4", "dc civac, x4", ARM64_WORKAROUND_CLEAN_CACHE - add x4, x4, x2 - cmp x4, x1 - b.lo 2b + dcache_by_myline_op_nosync cvau, x0, x1, x2, x3 ldr x19, [x19, #HIBERN_PBE_NEXT] cbnz x19, 1b -- 2.47.3