From nobody Thu Dec 18 09:39:51 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) (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 4D31A1A071E; Mon, 24 Jun 2024 20:11:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.17 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719259883; cv=none; b=CN2MADT08XWsOdLSN4ANpxWlHljJNstWSmpuZq+0knN4J9v70rDGl4ktS2Jh3VH/6ECgISVOLQOF68EGfeHojvVGlFAHBWN/gm26ADmm9xDLddsA9+K+KN5lMcH9bnX3RWdRTtXo5WpWG08e5logK/4pqa0jiIcyxUq+TLAWQHo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719259883; c=relaxed/simple; bh=uKouTBImw1g40BRrpkJYLNPwpqU8Bl63RT+V983HQ4I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=HpAoIq1gsVwVgEKMsgwtr7KnjFayX4WJXRhZ3mP5lGjcFdDZ6p5yIjF+JVDh38YYvQvd8aovvV6AHRSLkOHBoYskRyREALj2JJenGdp4ECbKKeewHPjm/0ypr7yIm2s+o8j0FNqRERC/espo8LXtWQXZMFj0MpCuotvskTBIao0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=lKpdjz1B; arc=none smtp.client-ip=192.198.163.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="lKpdjz1B" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1719259881; x=1750795881; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=uKouTBImw1g40BRrpkJYLNPwpqU8Bl63RT+V983HQ4I=; b=lKpdjz1BHrT0MS/db/tT/FmuMhFAjE95OnO9XcxzE7tsceMJyKAhWEtG hcODSSZA1FIwWEwe90j+TG2XLhcdwd5DT7NOui4ldq1+xOkLi2GbthVGm L7eCOzJaIcd7KPbczsYnXrcCWzjtdRYeiwbzVP9Ox5YPkMvCl6+QuSozD 1bJXZXEsYkfeAxmffdHOeezzizzaaBr9dlPt8PpLHemGSp8PsKU9qgarL l1/lYlfTjEnK3xb74qgLB3/Kv6F9WEB1IKfVOIy25nn8gHJkI+VBNq+AC wX5GuKd789BVjWkY1gKj5zuLWUGEqy/vCENwdj65UrgpKPJux5dROwJcW Q==; X-CSE-ConnectionGUID: Te2CQJrhQNST4MRGezBYzw== X-CSE-MsgGUID: EN/c+HQCQTOMdv9Ce+oLOg== X-IronPort-AV: E=McAfee;i="6700,10204,11113"; a="16127999" X-IronPort-AV: E=Sophos;i="6.08,262,1712646000"; d="scan'208";a="16127999" Received: from fmviesa008.fm.intel.com ([10.60.135.148]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2024 13:11:20 -0700 X-CSE-ConnectionGUID: eIjSsg2aQNaOT9zZ4+g4ZQ== X-CSE-MsgGUID: 6pDfilqaSNuY0Fc8HXm3Jg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,262,1712646000"; d="scan'208";a="43387275" Received: from ahunter6-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.94.249.84]) by fmviesa008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2024 13:11:16 -0700 From: Adrian Hunter To: Peter Zijlstra Cc: Ingo Molnar , Thomas Gleixner , Borislav Petkov , Dave Hansen , x86@kernel.org, H Peter Anvin , Mark Rutland , Alexander Shishkin , Marco Cavenati , Arnaldo Carvalho de Melo , Jiri Olsa , Namhyung Kim , Ian Rogers , Kan Liang , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Subject: [PATCH 1/7] perf/x86/intel/pt: Fix topa_entry base length Date: Mon, 24 Jun 2024 23:10:55 +0300 Message-Id: <20240624201101.60186-2-adrian.hunter@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240624201101.60186-1-adrian.hunter@intel.com> References: <20240624201101.60186-1-adrian.hunter@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Marco Cavenati topa_entry->base needs to store a pfn. It obviously needs to be large enough to store the largest possible x86 pfn which is MAXPHYADDR-PAGE_SIZE (52-12). So it is 4 bits too small. Increase the size of topa_entry->base from 36 bits to 40 bits. Note, systems where physical addresses can be 256TiB or more are affected. [ Adrian: Amend commit message as suggested by Dave Hansen ] Signed-off-by: Marco Cavenati Fixes: 52ca9ced3f70 ("perf/x86/intel/pt: Add Intel PT PMU driver") Cc: stable@vger.kernel.org Reviewed-by: Adrian Hunter Signed-off-by: Adrian Hunter --- arch/x86/events/intel/pt.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/events/intel/pt.h b/arch/x86/events/intel/pt.h index 96906a62aacd..f5e46c04c145 100644 --- a/arch/x86/events/intel/pt.h +++ b/arch/x86/events/intel/pt.h @@ -33,8 +33,8 @@ struct topa_entry { u64 rsvd2 : 1; u64 size : 4; u64 rsvd3 : 2; - u64 base : 36; - u64 rsvd4 : 16; + u64 base : 40; + u64 rsvd4 : 12; }; =20 /* TSC to Core Crystal Clock Ratio */ --=20 2.34.1 From nobody Thu Dec 18 09:39:51 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) (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 7CF5B1A01DE; Mon, 24 Jun 2024 20:11:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.17 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719259887; cv=none; b=AMbAg94vdVivzRZHncspRZNUZFgBbGG+Jr7C8A4tvN4UeldUkxTKpgajCvDLylMzjN04NMK7Hbl5qQ2AXl7iKb7S78OE2VWph52iFQyIZy30QE5bR00RxIcDkUkx8TAl66YBBNqI7sfKyYSsgg5qnnTIyFrdlEAqi9lbdZFhPoA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719259887; c=relaxed/simple; bh=SvApPi+TU6egetuAyMNIlHsB1l52Upy0c6kLUo2bAtk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=p+CEzm+oppVZr7rCalgo4VI7OZa7YZ3XgBTXOz+BNTe7YzGOqlWHia+tQNZNSlO9kpF/C9/dxQMgYM5sdgfLvvTbtPTEV65qhYHlC8c2gNesaZ4sqqqNTeStCaxlZHC9M8VCJPsuKJjZVqAqv8AR5jMQemEYKRdT7bXbSnBXF7A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=mrZgZ7X2; arc=none smtp.client-ip=192.198.163.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="mrZgZ7X2" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1719259885; x=1750795885; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=SvApPi+TU6egetuAyMNIlHsB1l52Upy0c6kLUo2bAtk=; b=mrZgZ7X2eZxWr+gyY/F6pD0V3UKxOh6gQLtZwdVbwPQbEsE+Rx7bkAnr sJ6KujB8/OKw0hcqk+hgG2dY7C8u21wpWY0bMei2G3s6sgnSM6bcUHp/f PzcC07a88Dx5Jk6e8Td4VDLu/PN2I+58bxKeb9bH0aGQR9J+jFA/dX7wC xQi6ePicCn+LZoZIXcFr80ZE0g7UfoGHcWdDHvjxaOs1/BeNV6mHYS/uy aCwVowhLYZQD3YCqLjw64iFvJ/OtG2MMvxJ+j/sX+GWIXFMXv5eUdV2Qd m/tvdakSSjXHfNf66QgETGMx53T1RWJyqMRdYaLSjkdVdKoblAyrB/n6Q g==; X-CSE-ConnectionGUID: sVc+pJENTxuGUFyROxrufQ== X-CSE-MsgGUID: hns1J9IcTbilQaUy8yW1XA== X-IronPort-AV: E=McAfee;i="6700,10204,11113"; a="16128011" X-IronPort-AV: E=Sophos;i="6.08,262,1712646000"; d="scan'208";a="16128011" Received: from fmviesa008.fm.intel.com ([10.60.135.148]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2024 13:11:25 -0700 X-CSE-ConnectionGUID: iacqyNW2QJGsWsohk+9qNg== X-CSE-MsgGUID: xWZBTU3CQhSindQVCCqDzA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,262,1712646000"; d="scan'208";a="43387286" Received: from ahunter6-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.94.249.84]) by fmviesa008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2024 13:11:21 -0700 From: Adrian Hunter To: Peter Zijlstra Cc: Ingo Molnar , Thomas Gleixner , Borislav Petkov , Dave Hansen , x86@kernel.org, H Peter Anvin , Mark Rutland , Alexander Shishkin , Marco Cavenati , Arnaldo Carvalho de Melo , Jiri Olsa , Namhyung Kim , Ian Rogers , Kan Liang , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Subject: [PATCH 2/7] perf/x86/intel/pt: Fix a topa_entry base address calculation Date: Mon, 24 Jun 2024 23:10:56 +0300 Message-Id: <20240624201101.60186-3-adrian.hunter@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240624201101.60186-1-adrian.hunter@intel.com> References: <20240624201101.60186-1-adrian.hunter@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" topa_entry->base is a bit-field. Bit-fields are not promoted to a 64-bit type, even if the underlying type is 64-bit, and so, if necessary, must be cast to a larger type when calculations are done. Fix a topa_entry->base address calculation by adding a cast. Without the cast, the address was limited to 36-bits i.e. 64GiB. The address calculation is used on systems that do not support Multiple Entry ToPA (only Broadwell), and affects physical addresses on or above 64GiB. Instead of writing to the correct address, the address comprising the first 36 bits would be written to. Intel PT snapshot and sampling modes are not affected. Reported-by: Dave Hansen Fixes: 52ca9ced3f70 ("perf/x86/intel/pt: Add Intel PT PMU driver") Cc: stable@vger.kernel.org Signed-off-by: Adrian Hunter --- arch/x86/events/intel/pt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/events/intel/pt.c b/arch/x86/events/intel/pt.c index 14db6d9d318b..047a2cd5b3fe 100644 --- a/arch/x86/events/intel/pt.c +++ b/arch/x86/events/intel/pt.c @@ -878,7 +878,7 @@ static void pt_update_head(struct pt *pt) */ static void *pt_buffer_region(struct pt_buffer *buf) { - return phys_to_virt(TOPA_ENTRY(buf->cur, buf->cur_idx)->base << TOPA_SHIF= T); + return phys_to_virt((phys_addr_t)TOPA_ENTRY(buf->cur, buf->cur_idx)->base= << TOPA_SHIFT); } =20 /** --=20 2.34.1 From nobody Thu Dec 18 09:39:51 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) (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 3CF6C1A08D3; Mon, 24 Jun 2024 20:11:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.17 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719259891; cv=none; b=Rsr6T0aEVqPC8f4XqpJwCMe+k3Y/sk2k3gHWdDk9gujgl64TlF603ZEb0dzZqazcVHdYuiW3/5RARrRKU9SGhPn1ly+tBch2eHfBnyY8uX+F3h3rxKCkxbZjFolHdoB7Hx2htD4NVLVrXhzHkpUMXuPmBdwDJA3O8y5ATeTXQgw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719259891; c=relaxed/simple; bh=AaPqESWEDPGESWfQKqUKas1AhKUHkg15T7RLbHL0kio=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=qXasd2N/ol3OuExluXHGqx2zsrdogBZ5INMgj62o/04PiZdxpWNf8OPX73HF3ckLEaBlm3bHSDpzM7jr2rHtst6U7rk01Qj7c195rh0doM0Mn5ksapY/uhzGp0xa6lpckqYhzv2it1JHgecPx2yhSVHr/7uPbrkFa97mqh876MM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=O0joplfw; arc=none smtp.client-ip=192.198.163.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="O0joplfw" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1719259890; x=1750795890; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=AaPqESWEDPGESWfQKqUKas1AhKUHkg15T7RLbHL0kio=; b=O0joplfwVcFnx0AIPzSRrjsfezKxkoc5GQ8+7eT/w5U0/fNMITn79lnH WBQ7Xt3ZG9OLM+2w6S5fb+oJoKkupSB7Mi/Qae3jKsZ3st3X1HL5Bed/j qeh0j6WIpNVbDhT2uS0EvppTaPDqXlcoOcvcRZYMV69Q54nhXtKt4mYxS tojSSFJYpOoNDZeiyLXLuw/WyI9N94lvY/5Kl288M8cunxm3po3KxfIuy q5Q6e31zvEd0GuXzeKasQZ966UvZGErEPrdIFlUlNxCqCD8md9Ia3DZ31 Zv8DjUADVMRToKo+yeBSpni5k7aoUlOUO5+3gQXmE8qAewpMXoOPrpxuk A==; X-CSE-ConnectionGUID: RC3bjA8YSqePs1CVs2duWw== X-CSE-MsgGUID: BRldsNkDSCuWmMC3zRfrQg== X-IronPort-AV: E=McAfee;i="6700,10204,11113"; a="16128027" X-IronPort-AV: E=Sophos;i="6.08,262,1712646000"; d="scan'208";a="16128027" Received: from fmviesa008.fm.intel.com ([10.60.135.148]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2024 13:11:29 -0700 X-CSE-ConnectionGUID: goBri26jSGiGwaeCiuSLGw== X-CSE-MsgGUID: ZVmXp0VURW2uvVbd8jduLQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,262,1712646000"; d="scan'208";a="43387290" Received: from ahunter6-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.94.249.84]) by fmviesa008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2024 13:11:26 -0700 From: Adrian Hunter To: Peter Zijlstra Cc: Ingo Molnar , Thomas Gleixner , Borislav Petkov , Dave Hansen , x86@kernel.org, H Peter Anvin , Mark Rutland , Alexander Shishkin , Marco Cavenati , Arnaldo Carvalho de Melo , Jiri Olsa , Namhyung Kim , Ian Rogers , Kan Liang , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Subject: [PATCH 3/7] perf/x86/intel/pt: Fix pt_topa_entry_for_page() address calculation Date: Mon, 24 Jun 2024 23:10:57 +0300 Message-Id: <20240624201101.60186-4-adrian.hunter@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240624201101.60186-1-adrian.hunter@intel.com> References: <20240624201101.60186-1-adrian.hunter@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Currently, perf allocates an array of page pointers which is limited in size by MAX_PAGE_ORDER. That in turn limits the maximum Intel PT buffer size to 2GiB. Should that limitation be lifted, the Intel PT driver can support larger sizes, except for one calculation in pt_topa_entry_for_page(), which is limited to 32-bits. Fix pt_topa_entry_for_page() address calculation by adding a cast. Fixes: 39152ee51b77 ("perf/x86/intel/pt: Get rid of reverse lookup table fo= r ToPA") Signed-off-by: Adrian Hunter --- arch/x86/events/intel/pt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/events/intel/pt.c b/arch/x86/events/intel/pt.c index 047a2cd5b3fe..b4aa8daa4773 100644 --- a/arch/x86/events/intel/pt.c +++ b/arch/x86/events/intel/pt.c @@ -990,7 +990,7 @@ pt_topa_entry_for_page(struct pt_buffer *buf, unsigned = int pg) * order allocations, there shouldn't be many of these. */ list_for_each_entry(topa, &buf->tables, list) { - if (topa->offset + topa->size > pg << PAGE_SHIFT) + if (topa->offset + topa->size > (unsigned long)pg << PAGE_SHIFT) goto found; } =20 --=20 2.34.1 From nobody Thu Dec 18 09:39:51 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) (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 B38F41A0B0C; Mon, 24 Jun 2024 20:11:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.17 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719259896; cv=none; b=q2LQq4fspWxY47tgMUmuEMsbIhvtG9lF1umGaHpP3/25e0LiRAcvV57im/epa2ug612GzG+NWUhsDnWtwj2qnVKSQZ6cH7MQYjZmpNzcI3gP9k0LaO/zX9gGVuvtH5IcQEXmFQ4+lkdI4JIXZD2V1xi1/bqu+zHBjI9Thxc+VR8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719259896; c=relaxed/simple; bh=60o2mQRsYIshyDRjr/8WJK7Blsri2g7LodXDQrgcS10=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=e4DjkX12LNmb/EEoQevjcbmrX5ZThlnVeIRP0IfB26Xs4uGtNGoDU49y5yU/NUKJzbEbTjttm01T3+ZORrI2XzManP5WBBwMsSqyqHWJWqr1NBe39HWv/VqqZN08NfOgu4xLh336vzgL8fEQ068lRyELMZ6v1ULGa467Op2B8og= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=BP+RcLvA; arc=none smtp.client-ip=192.198.163.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="BP+RcLvA" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1719259894; x=1750795894; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=60o2mQRsYIshyDRjr/8WJK7Blsri2g7LodXDQrgcS10=; b=BP+RcLvAXlTZ5OovWuvJqok5w2KQWde8wSIh2lBcAF24G6SzIjtbZqBi 4wiD4qUd2k3W0msIWsALEDk9b05aCDh+SnCZT773OkMSB73AJ7CcDLtZO OOhGhyq8z6sVcPuzxmBuXIXJYKxIAfdXIS1YWTtFy6BcK5r1JF6WOAtZp 26lH3QmS+6YVq8wHLolpNIhEFpj4UzB4+dCaaVRXFjvjQFwYkrdjVd4EU zHLBkQlP0n9c/48rhuHdQ0c7Rgf3+TNDln7Kx8i/ZFiyOeMj2SExSoOzp Jx8F0ZeRA5KL4TvAIWa2JoffwgRzZXwQqLnbfX3ePVUS+9eg9oONRYUQA Q==; X-CSE-ConnectionGUID: 3UxpKvDUS2mL9oM4q8EYRA== X-CSE-MsgGUID: 9mM28z0RQzGz+sTD+xlBkg== X-IronPort-AV: E=McAfee;i="6700,10204,11113"; a="16128044" X-IronPort-AV: E=Sophos;i="6.08,262,1712646000"; d="scan'208";a="16128044" Received: from fmviesa008.fm.intel.com ([10.60.135.148]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2024 13:11:34 -0700 X-CSE-ConnectionGUID: EuWWSbQBRWyS96PsoqaYTA== X-CSE-MsgGUID: WYvo6EEqQnCzcv1a/AWoRw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,262,1712646000"; d="scan'208";a="43387305" Received: from ahunter6-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.94.249.84]) by fmviesa008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2024 13:11:30 -0700 From: Adrian Hunter To: Peter Zijlstra Cc: Ingo Molnar , Thomas Gleixner , Borislav Petkov , Dave Hansen , x86@kernel.org, H Peter Anvin , Mark Rutland , Alexander Shishkin , Marco Cavenati , Arnaldo Carvalho de Melo , Jiri Olsa , Namhyung Kim , Ian Rogers , Kan Liang , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Subject: [PATCH 4/7] perf: Fix perf_aux_size() for greater-than 32-bit size Date: Mon, 24 Jun 2024 23:10:58 +0300 Message-Id: <20240624201101.60186-5-adrian.hunter@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240624201101.60186-1-adrian.hunter@intel.com> References: <20240624201101.60186-1-adrian.hunter@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" perf_buffer->aux_nr_pages uses a 32-bit type, so a cast is needed to calculate a 64-bit size. Fixes: 45bfb2e50471 ("perf: Add AUX area to ring buffer for raw data stream= s") Signed-off-by: Adrian Hunter --- kernel/events/internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/events/internal.h b/kernel/events/internal.h index 5150d5f84c03..386d21c7edfa 100644 --- a/kernel/events/internal.h +++ b/kernel/events/internal.h @@ -128,7 +128,7 @@ static inline unsigned long perf_data_size(struct perf_= buffer *rb) =20 static inline unsigned long perf_aux_size(struct perf_buffer *rb) { - return rb->aux_nr_pages << PAGE_SHIFT; + return (unsigned long)rb->aux_nr_pages << PAGE_SHIFT; } =20 #define __DEFINE_OUTPUT_COPY_BODY(advance_buf, memcpy_func, ...) \ --=20 2.34.1 From nobody Thu Dec 18 09:39:51 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) (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 3BB551A254B; Mon, 24 Jun 2024 20:11:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.17 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719259900; cv=none; b=g6v1MXEdQW3DkL5WjtJ0Nu3U0PNJZw9dnPJLSl31aSzmhC2De0eS4yBizA5b8kL4f/qSlTWz9kSlIqJjG7EjYRb2794ioRJT43iS2xuzHgtY5MpcYdjYXYvcsdiatcrhzNVxnW84dXNgl9un0bxH0mSUgKF7O0X40jt/yKvZHjk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719259900; c=relaxed/simple; bh=5tyGEzcLM213Aoq8ZAQ5zeDTSSEdl1hZQJ3Ev38A+Co=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=W7oR/jhXDADgcC5sr5C9ATZRH+5YAw9fyF9pfTcbEdp2p3ySkycaUO4y251utKlonhswxr2ADYmHKqEaeTGMpkKf+ZjTOiTbc3fj4MeBzfbxzfMRFy6kTUYj8cS1LBwxGAM1nCVxpbi/2mSnFeav8z22t/5TjjTvkVDnOfa+QHY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=D7x8XUU6; arc=none smtp.client-ip=192.198.163.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="D7x8XUU6" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1719259899; x=1750795899; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=5tyGEzcLM213Aoq8ZAQ5zeDTSSEdl1hZQJ3Ev38A+Co=; b=D7x8XUU67sVOSF47PmV/7jMPhq0F+0AqLB3f2vYqdeKS+wu5slzooJbi 4POSexnMjmkK2MgdCrD5ucAfCikPliB5/tOYpYbiiS/S8Agk5GMg0YLWV vEN+WDs9auTYNuQRwJlLAJF99cTWGUk0pvXyZp+cUj9RpY6B9DpzDyt5k 4QNEN12mos5OvBb1yWpl03ef4fOtF2lK43g8ymEETC6XBUD1Z1oQ8RnLh +f2mYarq91TcdaAX49oCXB7SN3Ybi4DPBhzXnm+wAAi9BjWjCmBthzZ/H 9qgqrczkuFjGxw54PbbJsgN44QGaml17muyEHb9jiRvRTUAlrwekpnLbN Q==; X-CSE-ConnectionGUID: Rwz59dyCR2KRpWBvVHSkww== X-CSE-MsgGUID: 1lPV6rnsRjuK5ILI17I2DQ== X-IronPort-AV: E=McAfee;i="6700,10204,11113"; a="16128058" X-IronPort-AV: E=Sophos;i="6.08,262,1712646000"; d="scan'208";a="16128058" Received: from fmviesa008.fm.intel.com ([10.60.135.148]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2024 13:11:38 -0700 X-CSE-ConnectionGUID: EoPfsTZjTAyX3VU4/zb8yA== X-CSE-MsgGUID: rMnlrkeeTAaeds2ZvWekJw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,262,1712646000"; d="scan'208";a="43387309" Received: from ahunter6-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.94.249.84]) by fmviesa008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2024 13:11:35 -0700 From: Adrian Hunter To: Peter Zijlstra Cc: Ingo Molnar , Thomas Gleixner , Borislav Petkov , Dave Hansen , x86@kernel.org, H Peter Anvin , Mark Rutland , Alexander Shishkin , Marco Cavenati , Arnaldo Carvalho de Melo , Jiri Olsa , Namhyung Kim , Ian Rogers , Kan Liang , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Subject: [PATCH 5/7] perf: Prevent passing zero nr_pages to rb_alloc_aux() Date: Mon, 24 Jun 2024 23:10:59 +0300 Message-Id: <20240624201101.60186-6-adrian.hunter@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240624201101.60186-1-adrian.hunter@intel.com> References: <20240624201101.60186-1-adrian.hunter@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" nr_pages is unsigned long but gets passed to rb_alloc_aux() as an int, and is stored as an int. Only power-of-2 values are accepted, so if nr_pages is a 64_bit value, it will be passed to rb_alloc_aux() as zero. That is not ideal because: 1. the value is incorrect 2. rb_alloc_aux() is at risk of misbehaving, although it manages to return -ENOMEM in that case, it is a result of passing zero to get_order() even though the get_order() result is documented to be undefined in that case. Fix by simply validating the maximum supported value in the first place. Use -ENOMEM error code for consistency with the current error code that is returned in that case. Fixes: 45bfb2e50471 ("perf: Add AUX area to ring buffer for raw data stream= s") Signed-off-by: Adrian Hunter --- kernel/events/core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/events/core.c b/kernel/events/core.c index 8f908f077935..053e546d5bf0 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -6509,6 +6509,8 @@ static int perf_mmap(struct file *file, struct vm_are= a_struct *vma) return -EINVAL; =20 nr_pages =3D vma_size / PAGE_SIZE; + if (nr_pages > INT_MAX) + return -ENOMEM; =20 mutex_lock(&event->mmap_mutex); ret =3D -EINVAL; --=20 2.34.1 From nobody Thu Dec 18 09:39:51 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) (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 A8C431A01B7; Mon, 24 Jun 2024 20:11:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.17 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719259905; cv=none; b=QBCbD8nN8RPpZ/agTEDWWkF8dsYtRUN2SyQlMlNBfAbWqqZEly7ZxmJEpuYCK9CMTUtO5tIDjVYCLroPAkANY97eKRrAM9AwkNFEvyiwZX4Fj73bm/1+nJwP54GjFT/BdLsO0jjj7keQpi4w6Dp7+JaXuoDrNPBcPUo6qC9zLiM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719259905; c=relaxed/simple; bh=m5PT6H2l37YjBjjExK32x0SNpbjV59tsYSpAz13GBxg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=MP8UPH1FV8iz4uqR4W23XDVD5WlWVznVnWJcNT5anOoN3v3NY763kpIc+SvkpXdbS5r57r5W9JLIjvcKCZlxTVxi5FeLFnW9KmLNz0viSFiBcXG1NJCdhIMHxci7XKXq9DKZPSPuTCOeNYhh/jBS/RORfAAm38hifNA3UW7AGrM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=F4iXtyUj; arc=none smtp.client-ip=192.198.163.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="F4iXtyUj" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1719259903; x=1750795903; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=m5PT6H2l37YjBjjExK32x0SNpbjV59tsYSpAz13GBxg=; b=F4iXtyUjnknieFxUvuugdGY+5G4zmJIbSy8y1/HfkfGS1bAClgynYzZG JyyxBmzZGo+JlTSdYVJycMoUqLidgIQqpZ9ys0SVEBFBInKqzLHjsKPl0 Qlvq5/ZDGmGHmWfFRsQM8a2C/CC3ZJWeNIqV0oCizSfl807fdUjqYf0yu u5zWmpqaXWotECgwp4xqZO6o3rxzzlDXSCM3hd5N4TxjmocytmXErEygq 1nwWOP1CC2sb1CLe3R73Xezg4NLciE7CizIhDU3WBQARMPGJ5EKsPkD3E TGtW1z1E4V3I3CipMPUY61nDk2ucOxYlPukzBU6CGuZOn8K4iq2q0Z1Dg g==; X-CSE-ConnectionGUID: guhszJeKTmKzjioLGWdKQw== X-CSE-MsgGUID: FKtnOeD9ThqjtgvAHPh2Qw== X-IronPort-AV: E=McAfee;i="6700,10204,11113"; a="16128074" X-IronPort-AV: E=Sophos;i="6.08,262,1712646000"; d="scan'208";a="16128074" Received: from fmviesa008.fm.intel.com ([10.60.135.148]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2024 13:11:43 -0700 X-CSE-ConnectionGUID: 7/vlFVA8RzGOjaL5w8igKA== X-CSE-MsgGUID: 7AkNTkkCQUOucFxR3g8nLQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,262,1712646000"; d="scan'208";a="43387314" Received: from ahunter6-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.94.249.84]) by fmviesa008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2024 13:11:39 -0700 From: Adrian Hunter To: Peter Zijlstra Cc: Ingo Molnar , Thomas Gleixner , Borislav Petkov , Dave Hansen , x86@kernel.org, H Peter Anvin , Mark Rutland , Alexander Shishkin , Marco Cavenati , Arnaldo Carvalho de Melo , Jiri Olsa , Namhyung Kim , Ian Rogers , Kan Liang , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Subject: [PATCH 6/7] perf: Fix default aux_watermark calculation Date: Mon, 24 Jun 2024 23:11:00 +0300 Message-Id: <20240624201101.60186-7-adrian.hunter@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240624201101.60186-1-adrian.hunter@intel.com> References: <20240624201101.60186-1-adrian.hunter@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The default aux_watermark is half the AUX area buffer size. In general, on a 64-bit architecture, the AUX area buffer size could be a bigger than fits in a 32-bit type, but the calculation does not allow for that possibility. However the aux_watermark value is recorded in a u32, so should not be more than U32_MAX either. Fix by doing the calculation in a correctly sized type, and limiting the result to U32_MAX. Fixes: d68e6799a5c8 ("perf: Cap allocation order at aux_watermark") Signed-off-by: Adrian Hunter --- kernel/events/ring_buffer.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c index 4013408ce012..485cf0a66631 100644 --- a/kernel/events/ring_buffer.c +++ b/kernel/events/ring_buffer.c @@ -688,7 +688,9 @@ int rb_alloc_aux(struct perf_buffer *rb, struct perf_ev= ent *event, * max_order, to aid PMU drivers in double buffering. */ if (!watermark) - watermark =3D nr_pages << (PAGE_SHIFT - 1); + watermark =3D min_t(unsigned long, + U32_MAX, + (unsigned long)nr_pages << (PAGE_SHIFT - 1)); =20 /* * Use aux_watermark as the basis for chunking to --=20 2.34.1 From nobody Thu Dec 18 09:39:51 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) (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 54FE71A01B7; Mon, 24 Jun 2024 20:11:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.17 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719259909; cv=none; b=E7UwD///0M2Yz+f5YTHduKkiE0DXIrjlS6vqCfX86ABG0q4eMU3o+faUUm0lVyU6H89AfzMKuv6dliNqGzsUJTXm+CoetPexKSzt5G9VCzCXwp5PPkwL/S2AfHKze8Z4ZIngGU+dXu3qERJ2wph1W9bZ3gIlf2vZAJqXhQ+LOuE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719259909; c=relaxed/simple; bh=lJDQr7DiyooZZK3jhe+NAZGuFKB0C3r+uajJJtqP2HY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=KitAKY+BROp5Ov4pSe+7fUvJW5jRe1iXlvhOJkvZYG/+xeMyCatLJ1TAFkwYWR62xc0OfxZyX81UZhIdo+SyGn5eZaVdo/pgO/nYqeKkZD7uRbVGwB2v3xTYTvaGaocgBLm/zOgYMdaFFtIDTPzsG2P4yEXERbi1jLisMBL+Mbs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=URKDGUdB; arc=none smtp.client-ip=192.198.163.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="URKDGUdB" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1719259908; x=1750795908; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=lJDQr7DiyooZZK3jhe+NAZGuFKB0C3r+uajJJtqP2HY=; b=URKDGUdBWaupBgZ8dGEOnjlY5nwoKYLwcNzRX3VKK4bHTzJE4jTx4vJf UXjmuIPxH859G5sDsAfvjT4vW7I2iyaMD6qqN5M5RPUusRsySDXH1gSPY HqLSIaLVkhP2go4+KdQKMefcsfoTqN0tDhtTQzeeixZT/wXhyOHKuidlt NGyB8r6XAbWYNfWR+/RTG6lha8mzNSqMo4RfBgRETKNrJU49jJVT0v8JS lznSPHZCO5Vhr3VTUtvk5yqBpzmrYmUub5sDrpwWwi3ZlVrzrEFjNcgvs 2+aN726SzuVNUxRyEK65BwbqkwhhPrCKpZqnuigPNqjK29s0KSvfmxUrW w==; X-CSE-ConnectionGUID: FZ7Q4v4NQFWompmGH4j0ww== X-CSE-MsgGUID: SYu5IC2LQguwlPeSrGcGJQ== X-IronPort-AV: E=McAfee;i="6700,10204,11113"; a="16128089" X-IronPort-AV: E=Sophos;i="6.08,262,1712646000"; d="scan'208";a="16128089" Received: from fmviesa008.fm.intel.com ([10.60.135.148]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2024 13:11:48 -0700 X-CSE-ConnectionGUID: +qSVkSmQQa+YbMfpKd+zLw== X-CSE-MsgGUID: hZd7Lo62Tc25d5InSdJzwA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,262,1712646000"; d="scan'208";a="43387331" Received: from ahunter6-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.94.249.84]) by fmviesa008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2024 13:11:44 -0700 From: Adrian Hunter To: Peter Zijlstra Cc: Ingo Molnar , Thomas Gleixner , Borislav Petkov , Dave Hansen , x86@kernel.org, H Peter Anvin , Mark Rutland , Alexander Shishkin , Marco Cavenati , Arnaldo Carvalho de Melo , Jiri Olsa , Namhyung Kim , Ian Rogers , Kan Liang , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Subject: [PATCH 7/7] perf: Make rb_alloc_aux() return an error immediately if nr_pages <= 0 Date: Mon, 24 Jun 2024 23:11:01 +0300 Message-Id: <20240624201101.60186-8-adrian.hunter@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240624201101.60186-1-adrian.hunter@intel.com> References: <20240624201101.60186-1-adrian.hunter@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" rb_alloc_aux() should not be called with nr_pages <=3D 0. Make it more robu= st and readable by returning an error immediately in that case. Signed-off-by: Adrian Hunter --- kernel/events/ring_buffer.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c index 485cf0a66631..8cadf97bc290 100644 --- a/kernel/events/ring_buffer.c +++ b/kernel/events/ring_buffer.c @@ -682,6 +682,9 @@ int rb_alloc_aux(struct perf_buffer *rb, struct perf_ev= ent *event, if (!has_aux(event)) return -EOPNOTSUPP; =20 + if (nr_pages <=3D 0) + return -EINVAL; + if (!overwrite) { /* * Watermark defaults to half the buffer, and so does the --=20 2.34.1