On Thu, May 28, 2020 at 06:15:27AM -0700, [email protected] wrote:
> From: Kan Liang <[email protected]>
> 
> An oops will be triggered, if perf tries to access an invalid address
> which exceeds the mapped area.
> 
> Check the address before the actual access to MMIO sapce of an uncore
> unit.

Ah ok the range check is here

> 
> Suggested-by: David Laight <[email protected]>
> Signed-off-by: Kan Liang <[email protected]>
> ---
>  arch/x86/events/intel/uncore.c       |  3 +++
>  arch/x86/events/intel/uncore.h       | 12 ++++++++++++
>  arch/x86/events/intel/uncore_snbep.c |  6 ++++++
>  3 files changed, 21 insertions(+)
> 
> diff --git a/arch/x86/events/intel/uncore.c b/arch/x86/events/intel/uncore.c
> index cf76d66..284f8e7 100644
> --- a/arch/x86/events/intel/uncore.c
> +++ b/arch/x86/events/intel/uncore.c
> @@ -132,6 +132,9 @@ u64 uncore_mmio_read_counter(struct intel_uncore_box *box,
>       if (!box->io_addr)
>               return 0;
>  
> +     if (!is_valid_mmio_offset(box, event->hw.event_base))
> +             return 0;

Is this function used somewhere else? Otherwise it should be added
together with its users.

-Andi

Reply via email to