Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1484176 > unrolled thread

[PATCH 0/3] perf/x86/intel/pt: Address filtering fixes for perf/urgent

Started byAlexander Shishkin <alexander.shishkin@linux.intel.com>
First post2016-09-15 15:40 +0200
Last post2016-09-15 15:40 +0200
Articles 2 — 1 participant

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/3] perf/x86/intel/pt: Address filtering fixes for perf/urgent Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-09-15 15:40 +0200
    [PATCH 1/3] perf/x86/intel/pt: Fix an off-by-one in address filter configuration Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-09-15 15:40 +0200

#1484176 — [PATCH 0/3] perf/x86/intel/pt: Address filtering fixes for perf/urgent

FromAlexander Shishkin <alexander.shishkin@linux.intel.com>
Date2016-09-15 15:40 +0200
Subject[PATCH 0/3] perf/x86/intel/pt: Address filtering fixes for perf/urgent
Message-ID<shF3s-7Ca-31@gated-at.bofh.it>
Hi,

Hoping that it's not too late, here are fixes for issues that Adrian
found. All three are good for -stable afaict. Two of the bugs result
in a #GP and one in a misconfigured filter.

2/3 can be moved into the PT driver as well, but I decided that others
may benefit from it at least theoretically.

Alexander Shishkin (3):
  perf/x86/intel/pt: Fix an off-by-one in address filter configuration
  perf/x86: Tighten up the kernel_ip() check
  perf/x86/intel/pt: Do validate the size of a kernel address filter

 arch/x86/events/intel/pt.c   | 13 +++++++++----
 arch/x86/events/perf_event.h |  2 +-
 2 files changed, 10 insertions(+), 5 deletions(-)

-- 
2.9.3

[toc] | [next] | [standalone]


#1484178 — [PATCH 1/3] perf/x86/intel/pt: Fix an off-by-one in address filter configuration

FromAlexander Shishkin <alexander.shishkin@linux.intel.com>
Date2016-09-15 15:40 +0200
Subject[PATCH 1/3] perf/x86/intel/pt: Fix an off-by-one in address filter configuration
Message-ID<shF3s-7Ca-35@gated-at.bofh.it>
In reply to#1484176
PT address filter configuration requires that a range is specified by
its first and last address, but at the moment we're obtaining the end
of the range by adding user specified size to its start, which is off
by one from what it actually needs to be.

Fix this and make sure that zero-sized filters don't pass the filter
validation.

Cc: stable@vger.kernel.org # 4.7
Reported-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
---
 arch/x86/events/intel/pt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/events/intel/pt.c b/arch/x86/events/intel/pt.c
index 04bb5fb5a8..5ec0100e3f 100644
--- a/arch/x86/events/intel/pt.c
+++ b/arch/x86/events/intel/pt.c
@@ -1081,7 +1081,7 @@ static int pt_event_addr_filters_validate(struct list_head *filters)
 
 	list_for_each_entry(filter, filters, entry) {
 		/* PT doesn't support single address triggers */
-		if (!filter->range)
+		if (!filter->range || !filter->size)
 			return -EOPNOTSUPP;
 
 		if (!filter->inode && !kernel_ip(filter->offset))
@@ -1111,7 +1111,7 @@ static void pt_event_addr_filters_sync(struct perf_event *event)
 		} else {
 			/* apply the offset */
 			msr_a = filter->offset + offs[range];
-			msr_b = filter->size + msr_a;
+			msr_b = filter->size + msr_a - 1;
 		}
 
 		filters->filter[range].msr_a  = msr_a;
-- 
2.9.3

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web