From nobody Sun Dec 14 06:37:04 2025 Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F2AE413B584 for ; Fri, 12 Dec 2025 20:52:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765572766; cv=none; b=jWcRkVEJjTd/D+5BGIACyj2G+UF1ek+lNc3BEMqNPSCGxp/Tgx3Hbs/XO5l1hQ+8fY3lu+t9Zrg0GJzQ45B/oK9MnttB2D5mwunu/JPYyamvDbx3tmtfCUe2mOgYgYVrypIEo4xaikgHYrp9GxEqP1ybJkCgh4MYVHjwNhmjWQ0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765572766; c=relaxed/simple; bh=9fYRrimgIiTKXZYd/EF9KOl9MYrzTOyNOD93TwEfSV0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=lIvJFt3iG22haOwncH5V2/Icslu3fWtG6I//yo55PPruRJ3N6EWEhoq8FC89i/QeM0O8ghRkvI/jka0Wt8OMbbCDLfD9saqNlJSI/I2ZYTpcCVVeoCky7c1e4AwS5LIoZ/Z7MMNMHgumdYTi1w+Adfrzb27FigFtLHmUCjMTLno= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=EqL/2i3o; arc=none smtp.client-ip=209.85.208.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EqL/2i3o" Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-63c489f1e6cso3341242a12.1 for ; Fri, 12 Dec 2025 12:52:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765572763; x=1766177563; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=9sFZwm6P/eTEW8HSDvzBFG/JtDhhHz6uY5r4w0vG+u4=; b=EqL/2i3okkIImhkeQektOdrp6v54DKCgEt5CMXkDK2hQRk00aSwF1BMx/4fa9Wlv+e XkWSbtgVGApb44pIxlbs0U+0DJx5Yqvx+vM3DaI2rHMnokXUp5hNXFBTVNF3uNRXyCMH 88zwaA/ewgXMiOQDMk74XJPR5Tl0iO92yJkGfNqpQRhtaXPZ9thG9uC0HxwlMNh4tjML xmBVoQYFf4lnSkkvn+/UFGAhAvA4D2RF+aPYKpg1b79RLBYjGLKojBbPP3Qa090y+XFR WhbvlDuP2XsI4jlU8E2aWkuDoiRZXLk3dFsP3UTHZ7OaHp30RjywhPGI11Nh1tun9dt9 YaJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765572763; x=1766177563; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=9sFZwm6P/eTEW8HSDvzBFG/JtDhhHz6uY5r4w0vG+u4=; b=eRQFaAhGsQmxEWyN+rzOoqsG8910KZ/QGPSa+E89SZ4YFBr8M6viesjvuUCHl7XE92 MQSaskF6NQk4dWRtt5DCPxUwc09XhQwhvIkD5utwvCKnWTzFheBS0UiyqaCeqO3cf2gh 4812bOLRWxmXATjT8GApy6mliJXRKp7yCZgd8h/cAyRWmNhvzjbUbt0lPYxzSSBIRjHn PzT2YGtzTsscMVo1vwRByNVZdLSGnY0CR5lGKQjpxhxwXMDTmvZsuQu3d+kT94kkXj/v SDAmjvjvsJoVwSqeTnHE4XRNwMi36pjgNelnrfNxUU0ZV1rttE80O6Xr94Adqd4znZVn MaLQ== X-Forwarded-Encrypted: i=1; AJvYcCWYkJcCdmRUfIP+3mtQVFciWtz8vZR6Sg0Th7f6JPZv58UQpnTNvLsGmVNRtopmmC3tZLTeb3P9PNzNgvI=@vger.kernel.org X-Gm-Message-State: AOJu0YzURytIQ8lToipGFK2w/TOCgxzeOgXT+G+8k1/jpVupV23OjHEk 1QPBKBMd8dPE/LJFkDcJVvRGGf3Gf3zJt9IsrfvI5eDod5oJkmfGQ3bZ X-Gm-Gg: AY/fxX6kCtHb9b948IDjjZujNR//Z3K0/fUex6uF+4KM8tVqDKoOMklb+eyKTx+KySK YaZHv8kejOWlN2e4iGbL9wxodp59VtXV7gdbez2udz/JMhX1Ao2yAvA0xcnAYVIA5YVD7k+5s4q kbSLSJnCDNWDZGL2fp/vqvHHu33vWmyRpfkMJX1FQPawMmHHNqSlyl+ogvdNMJrJ3I4dyflw6Te EXo+PPRSwcnr6hXT6w+dEQe2CL7gE9XmWpvrCDzHS8iWvlkA+ZGGZz2ARDx8XYY1hPDCb9fahoS 4K4Jle6GzxUO3xHjO4KEt7iL2veMyxKeQuSCUTD/RoNoLsN3cI0DRjjbK+EQ91cdzTOse7xogDT vmVhk6D3BVgLM7H2rP8SxvktbJ7LfjNEt5obxVinvmJ8XyHg9cqubU926CHEUd1Y2yeL/tpZe5Z RyRxLCasgc6VQsSOs= X-Google-Smtp-Source: AGHT+IGauNGo93h3WEI/GJLU8tPuFP6dTz6xspdiaMF5oCtj94YYZxyDSgzm2KKKpYumZ6r/xvEekg== X-Received: by 2002:a05:6402:3133:b0:640:e7bc:d3ce with SMTP id 4fb4d7f45d1cf-649875a5929mr4355420a12.11.1765572763049; Fri, 12 Dec 2025 12:52:43 -0800 (PST) Received: from osama.. ([2a02:908:1b4:dac0:1401:37b6:6a29:b0c5]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-64982227ba1sm6260075a12.33.2025.12.12.12.52.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Dec 2025 12:52:41 -0800 (PST) From: Osama Abdelkader To: Will Deacon , Mark Rutland , Catalin Marinas , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Osama Abdelkader Subject: [PATCH] arm64: hw_breakpoint: warn on invalid breakpoint length Date: Fri, 12 Dec 2025 21:52:30 +0100 Message-ID: <20251212205230.84606-1-osama.abdelkader@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Some tools (e.g. perf) incorrectly assume that breakpoints should be sizeof(long), but this is wrong for AArch64 where breakpoints must be 4 bytes. Add a warning when we silently fix up the parameter so tool developers can get notified. This addresses the FIXME comment by adding diagnostic output rather than breaking existing tools by returning -EINVAL. Signed-off-by: Osama Abdelkader --- arch/arm64/kernel/hw_breakpoint.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/arch/arm64/kernel/hw_breakpoint.c b/arch/arm64/kernel/hw_break= point.c index ab76b36dce82..4d31842e5d91 100644 --- a/arch/arm64/kernel/hw_breakpoint.c +++ b/arch/arm64/kernel/hw_breakpoint.c @@ -475,11 +475,13 @@ static int arch_build_bp_info(struct perf_event *bp, return -EINVAL; } else if (hw->ctrl.len !=3D ARM_BREAKPOINT_LEN_4) { /* - * FIXME: Some tools (I'm looking at you perf) assume - * that breakpoints should be sizeof(long). This - * is nonsense. For now, we fix up the parameter - * but we should probably return -EINVAL instead. + * Some tools (e.g. perf) incorrectly assume that + * breakpoints should be sizeof(long). This is wrong + * for AArch64 where breakpoints must be 4 bytes. + * Warn the user and fix up the parameter. */ + pr_warn_once("hw_breakpoint: invalid AArch64 breakpoint length %d, + fixing to 4 bytes\n", hw->ctrl.len); hw->ctrl.len =3D ARM_BREAKPOINT_LEN_4; } } --=20 2.43.0