Re: [PATCH v2 2/4] platform/x86: intel_pmc_core: fix: Make pmc_core_lpm_display() generic for platforms that support sub-states

From: Andy Shevchenko
Date: Fri Feb 28 2020 - 05:06:30 EST


On Thu, Feb 27, 2020 at 03:29:14PM -0800, Gayatri Kammela wrote:
> Currently pmc_core_lpm_display() uses array of struct pointers i.e.,
> tgl_lpm_maps for Tiger Lake directly to iterate through and to get the
> number of status/live status registers which is hardcoded and cannot
> be re-used for future platforms that support sub-states. To maintain
> readability, make pmc_core_lpm_display() generic, so that it can re-used
> for future platforms.

This patch need more work, see below.
That said, I would prefer to see it last in the series for next version.

...

> + lpm_regs = kmalloc_array(arr_size, sizeof(*lpm_regs), GFP_KERNEL);

No error check?
Besides that it is obvious memory leak.

> + for (index = 0; maps[index]; index++) {
> lpm_regs[index] = pmc_core_reg_read(pmcdev, offset);
> offset += 4;
> }

--
With Best Regards,
Andy Shevchenko