Received: by 2002:a05:7412:798b:b0:fc:a2b0:25d7 with SMTP id fb11csp854228rdb; Fri, 23 Feb 2024 02:00:27 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXcHtIoky5J73y5239s8rMsMUv7kOAiHbndAKdqc04Ntt9Hka0h421Ekzd1znQc1e0ia37djnVIQdvwYmq4NcWNZ7z5RZIdz9zT7R1hZA== X-Google-Smtp-Source: AGHT+IGKzWg9l/AIxZ5croqNTDfbKRjJDt1AfbIheW0wMX92X+6aPJx5eteK26xJUmj9ioJhtiHm X-Received: by 2002:a05:6808:3989:b0:3c1:5b63:579b with SMTP id gq9-20020a056808398900b003c15b63579bmr2223053oib.49.1708682427451; Fri, 23 Feb 2024 02:00:27 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708682427; cv=pass; d=google.com; s=arc-20160816; b=EXjkM3B3CanbW3lHDzi6R46OGFPtuDrUCMKrlu/qP3hhdOQZGyol8nLDPz4g/1myxA 8cIrV8kZGE3mNN58rYusFRoWmWnlg7C0hH+BaNvuKmCzPx1f4aawRo4rhdgODyKmNhmc k7Bz3kcNM6xh0BYPSSOMPsqVBWBT5+eYzyFwZ+f849ewKJsRQ6OlKk1V5zyyoR/9xaO6 FXEAnMMO8AyLDmEzEGb91OAcF5BT2b9gDEGSQMl9vyfrhON286uVJvqVmpdpXuyZ9LAS xbQcYd3X/lEVljCtpW8HtrMVOmjUXwHLKIz1fJwaxEL1TWEmzXX5crLtbn70EeE7zMHb UUnw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from; bh=ckQdJrIBOdpG3KPeEavf1a8D0aSf8FP+k9eAj8BdjCQ=; fh=ZVdHYcO2fYr+GFc89mxrIXUKLQR3NMVVGoGvaQkjwbc=; b=PI5IYMSA346BmrrFAb3Y3ulvQYBh7qSPQHSX8KcS6Bk5TrcnVzpQGWSRSg2xb/o1zC wiYxLs6bKehFXXvko0OBrBPbAMtseiBnNpvYR06kZMWgT19E9rAa8eugWMtLoqB/i9Up Y6LZTNxuoR0ZoUZ/m0qO/we7HzO0FlBsmcdeJzxtIrNhK/D2SAKlEdgZ4KeXjpKMkdWG 6Qiw9dv+tW5R9N618HXjaKSFLfsIB3S1G/5+mQNxPsAmvgeBfJiaCn3hk7JItt1mjr+2 6/+sPnspMWiZlAWGpOqKFIJ5mRmIjhXQyubxt74vd8FhQfR8Bp0G1FbsUpn859lTRUac yHGg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=arm.com dmarc=pass fromdomain=arm.com); spf=pass (google.com: domain of linux-kernel+bounces-78071-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-78071-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id cj8-20020a056a00298800b006e4e4c391dbsi563514pfb.396.2024.02.23.02.00.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Feb 2024 02:00:27 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-78071-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; arc=pass (i=1 spf=pass spfdomain=arm.com dmarc=pass fromdomain=arm.com); spf=pass (google.com: domain of linux-kernel+bounces-78071-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-78071-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 047EBB27AE7 for ; Fri, 23 Feb 2024 09:50:41 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7EBCC5DF0C; Fri, 23 Feb 2024 09:46:27 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 99D0A5DF01 for ; Fri, 23 Feb 2024 09:46:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708681587; cv=none; b=VIZMnSZlpUP/eLERx7KRdYgxmOtxlVdyf8uByY3UQjP6AXbRItSlsoJSxCMKVHpsFsibQixYt7SPMq+37XhF4Pv+9z7VPl/955Ak4LT0XzTKKltoGFbaGvUnneI5ZoZxAnq1jrTwuLaoS2JSSoB+mRmF7/+oZonGRcvnWsHHGM4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708681587; c=relaxed/simple; bh=uowSVM2SjzNXmtHjgIgF2ExRHxtW4sAgUT7RZkJdK9o=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=SXoLPmvMCdSfcnW1iz3br3NjhSM0wEVTfGxFhkDiuLKYfJc0CWxKqvyUts47eLoHpxABqweV9kCK7rwZ/5V9NeM9NZ1PaPIOCNbjUkp6iuB42eadmPnR5AhUfr66IQy6f8WCitRH6et4D0gKDr5D/X2ALbmnBBKbKtNHixNxaC4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 240221596; Fri, 23 Feb 2024 01:47:02 -0800 (PST) Received: from a077893.arm.com (unknown [10.163.46.223]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id E9F2F3F766; Fri, 23 Feb 2024 01:46:20 -0800 (PST) From: Anshuman Khandual To: linux-arm-kernel@lists.infradead.org Cc: broonie@kernel.org, Anshuman Khandual , Catalin Marinas , Will Deacon , Mark Rutland , linux-kernel@vger.kernel.org Subject: [PATCH] arm64/hw_breakpoint: Define an ISS code for watchpoint exception Date: Fri, 23 Feb 2024 15:16:15 +0530 Message-Id: <20240223094615.3977323-1-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.25.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit This defines a new ISS code macro i.e ESR_ELx_WnR for watchpoint exception. This represents an instruction's either writing to or reading from a memory location during an watchpoint exception, and also moves this macro into the ESR header as required. This drops non-standard AARCH64_ESR_ACCESS_MASK. Cc: Catalin Marinas Cc: Will Deacon Cc: Mark Rutland Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Anshuman Khandual --- This applies on v6.8-rc5 arch/arm64/include/asm/esr.h | 4 ++++ arch/arm64/include/asm/hw_breakpoint.h | 1 - arch/arm64/kernel/hw_breakpoint.c | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/arch/arm64/include/asm/esr.h b/arch/arm64/include/asm/esr.h index 353fe08546cf..6c0a0b77fd2c 100644 --- a/arch/arm64/include/asm/esr.h +++ b/arch/arm64/include/asm/esr.h @@ -143,6 +143,10 @@ #define ESR_ELx_CM_SHIFT (8) #define ESR_ELx_CM (UL(1) << ESR_ELx_CM_SHIFT) +/* ISS field definitions for Watchpoint exception */ +#define ESR_ELx_WnR_SHIFT (6) +#define ESR_ELx_WnR (UL(1) << ESR_ELx_WnR_SHIFT) + /* ISS2 field definitions for Data Aborts */ #define ESR_ELx_TnD_SHIFT (10) #define ESR_ELx_TnD (UL(1) << ESR_ELx_TnD_SHIFT) diff --git a/arch/arm64/include/asm/hw_breakpoint.h b/arch/arm64/include/asm/hw_breakpoint.h index d67c02e53a4a..6e4862e3d238 100644 --- a/arch/arm64/include/asm/hw_breakpoint.h +++ b/arch/arm64/include/asm/hw_breakpoint.h @@ -67,7 +67,6 @@ static inline void decode_ctrl_reg(u32 reg, /* Watchpoints */ #define ARM_BREAKPOINT_LOAD 1 #define ARM_BREAKPOINT_STORE 2 -#define AARCH64_ESR_ACCESS_MASK (1 << 6) /* Lengths */ #define ARM_BREAKPOINT_LEN_1 0x1 diff --git a/arch/arm64/kernel/hw_breakpoint.c b/arch/arm64/kernel/hw_breakpoint.c index 86bdb2d68732..a73364a18c69 100644 --- a/arch/arm64/kernel/hw_breakpoint.c +++ b/arch/arm64/kernel/hw_breakpoint.c @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -792,7 +793,7 @@ static int watchpoint_handler(unsigned long addr, unsigned long esr, * Check that the access type matches. * 0 => load, otherwise => store */ - access = (esr & AARCH64_ESR_ACCESS_MASK) ? HW_BREAKPOINT_W : + access = (esr & ESR_ELx_WnR) ? HW_BREAKPOINT_W : HW_BREAKPOINT_R; if (!(access & hw_breakpoint_type(wp))) continue; -- 2.25.1