perf/x86/intel/pt: Fix sampling using single range output

Deal with errata TGL052, ADL037 and RPL017 "Trace May Contain Incorrect
Data When Configured With Single Range Output Larger Than 4KB" by
disabling single range output whenever larger than 4KB.

Fixes: 670638477aed ("perf/x86/intel/pt: Opportunistically use single range output mode")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/20221112151508.13768-1-adrian.hunter@intel.com

authored by Adrian Hunter and committed by Peter Zijlstra ce0d998b baa014b9

+9
+9
arch/x86/events/intel/pt.c
··· 1263 1263 if (1 << order != nr_pages) 1264 1264 goto out; 1265 1265 1266 + /* 1267 + * Some processors cannot always support single range for more than 1268 + * 4KB - refer errata TGL052, ADL037 and RPL017. Future processors might 1269 + * also be affected, so for now rather than trying to keep track of 1270 + * which ones, just disable it for all. 1271 + */ 1272 + if (nr_pages > 1) 1273 + goto out; 1274 + 1266 1275 buf->single = true; 1267 1276 buf->nr_pages = nr_pages; 1268 1277 ret = 0;