RE: [PATCH V2 3/3] perf/x86/intel/uncore: Validate MMIO address before accessing

From: David Laight
Date: Thu May 28 2020 - 09:33:09 EST


From: kan.liang@xxxxxxxxxxxxxxx
> Sent: 28 May 2020 14:15
...
> +static inline bool is_valid_mmio_offset(struct intel_uncore_box *box,
> + unsigned long offset)

You need a better name, needs to start 'uncore_' and 'mmio'
probably isn't right either.

> +{
> + if (box->pmu->type->mmio_map_size > offset)
> + return true;

Swap over.
Conditionals always read best if 'variable op constant'.
So you want:
if (offset < box->pmu->type->mmio_map_size)
return true;

> +
> + pr_warn_once("perf uncore: Access invalid address of %s.\n",
> + box->pmu->type->name);

Pretty hard to debug without the invalid offset.

I've no idea what the code is supposed to be doing though.

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)