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

From: Kammela, Gayatri
Date: Fri Feb 28 2020 - 12:33:34 EST



> -----Original Message-----
> From: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> Sent: Friday, February 28, 2020 2:06 AM
> To: Kammela, Gayatri <gayatri.kammela@xxxxxxxxx>
> Cc: platform-driver-x86@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> Somayaji, Vishwanath <vishwanath.somayaji@xxxxxxxxx>;
> dvhart@xxxxxxxxxxxxx; Westerberg, Mika <mika.westerberg@xxxxxxxxx>;
> peterz@xxxxxxxxxxxxx; Prestopine, Charles D
> <charles.d.prestopine@xxxxxxxxx>; Chen Zhou <chenzhou10@xxxxxxxxxx>;
> Box, David E <david.e.box@xxxxxxxxx>
> Subject: Re: [PATCH v2 2/4] platform/x86: intel_pmc_core: fix: Make
> pmc_core_lpm_display() generic for platforms that support sub-states
>
> 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.


Sure, I will put this patch last in the series in v3.

>
> ...
>
> > + lpm_regs = kmalloc_array(arr_size, sizeof(*lpm_regs), GFP_KERNEL);
>
> No error check?
> Besides that it is obvious memory leak.

Sorry my bad, I will put the check and free the memory. I will update this in v3

>
> > + for (index = 0; maps[index]; index++) {
> > lpm_regs[index] = pmc_core_reg_read(pmcdev, offset);
> > offset += 4;
> > }
>
> --
> With Best Regards,
> Andy Shevchenko
>