lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <11077f24-72e4-4ba0-87b5-5a6e4dbd1eb0@linux.intel.com>
Date: Tue, 6 Jan 2026 15:45:12 -0800
From: Xi Pardee <xi.pardee@...ux.intel.com>
To: Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>
Cc: irenic.rajneesh@...il.com, david.e.box@...ux.intel.com,
 hdegoede@...hat.com, platform-driver-x86@...r.kernel.org,
 LKML <linux-kernel@...r.kernel.org>, linux-pm@...r.kernel.org
Subject: Re: [PATCH 1/3] platform/x86/intel/pmc: Change LPM mode fields to u8

Hi Ilpo,

Thanks for reviewing the patch. My response is inline.

On 12/23/2025 4:29 AM, Ilpo Järvinen wrote:
> On Tue, 16 Dec 2025, Xi Pardee wrote:
>
>> Change the datatypes pf num_lpm_modes and lpm_en_modes[] from int
>> to u8. The u8 type is more appropriate and improves the readability
>> and maintainability of the code.
>>
>> Signed-off-by: Xi Pardee <xi.pardee@...ux.intel.com>
>> ---
>>   drivers/platform/x86/intel/pmc/core.c | 18 ++++++++++--------
>>   drivers/platform/x86/intel/pmc/core.h |  4 ++--
>>   2 files changed, 12 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/platform/x86/intel/pmc/core.c b/drivers/platform/x86/intel/pmc/core.c
>> index 7d7ae8a40b0ec..3e916228e7ed2 100644
>> --- a/drivers/platform/x86/intel/pmc/core.c
>> +++ b/drivers/platform/x86/intel/pmc/core.c
>> @@ -779,7 +779,7 @@ static int pmc_core_substate_res_show(struct seq_file *s, void *unused)
>>   	struct pmc *pmc = pmcdev->pmcs[PMC_IDX_MAIN];
>>   	const int lpm_adj_x2 = pmc->map->lpm_res_counter_step_x2;
>>   	u32 offset = pmc->map->lpm_residency_offset;
>> -	int mode;
>> +	u8 mode;
>>   
>>   	seq_printf(s, "%-10s %-15s\n", "Substate", "Residency");
>>   
>> @@ -838,7 +838,7 @@ static void pmc_core_substate_req_header_show(struct seq_file *s, int pmc_index,
>>   					      enum header_type type)
>>   {
>>   	struct pmc_dev *pmcdev = s->private;
>> -	int mode;
>> +	u8 mode;
>>   
>>   	seq_printf(s, "%40s |", "Element");
>>   	pmc_for_each_mode(mode, pmcdev)
>> @@ -880,7 +880,7 @@ static int pmc_core_substate_blk_req_show(struct seq_file *s, void *unused)
>>   			const struct pmc_bit_map *map;
>>   
>>   			for (map = maps[r_idx]; map->name; map++) {
>> -				int mode;
>> +				u8 mode;
>>   
>>   				if (!map->blk)
>>   					continue;
>> @@ -953,7 +953,8 @@ static int pmc_core_substate_req_regs_show(struct seq_file *s, void *unused)
>>   			u32 lpm_status;
>>   			u32 lpm_status_live;
>>   			const struct pmc_bit_map *map;
>> -			int mode, i, len = 32;
>> +			int i, len = 32;
>> +			u8 mode;
>>   
>>   			/*
>>   			 * Capture the requirements and create a mask so that we only
>> @@ -1065,7 +1066,7 @@ static int pmc_core_lpm_latch_mode_show(struct seq_file *s, void *unused)
>>   	struct pmc *pmc = pmcdev->pmcs[PMC_IDX_MAIN];
>>   	bool c10;
>>   	u32 reg;
>> -	int mode;
>> +	u8 mode;
>>   
>>   	reg = pmc_core_reg_read(pmc, pmc->map->lpm_sts_latch_en_offset);
>>   	if (reg & LPM_STS_LATCH_MODE) {
>> @@ -1097,8 +1098,9 @@ static ssize_t pmc_core_lpm_latch_mode_write(struct file *file,
>>   	struct pmc *pmc = pmcdev->pmcs[PMC_IDX_MAIN];
>>   	bool clear = false, c10 = false;
>>   	unsigned char buf[8];
>> -	int m, mode;
>> +	int mode;
>>   	u32 reg;
>> +	u8 m;
>>   
>>   	if (count > sizeof(buf) - 1)
>>   		return -EINVAL;
>> @@ -1490,8 +1492,8 @@ int pmc_core_pmt_get_lpm_req(struct pmc_dev *pmcdev, struct pmc *pmc, struct tel
>>   {
>>   	const u8 *lpm_indices;
>>   	int num_maps, mode_offset = 0;
>> -	int ret, mode;
>> -	int lpm_size;
>> +	int ret, lpm_size;
>> +	u8 mode;
>>   
>>   	lpm_indices = pmc->map->lpm_reg_index;
>>   	num_maps = pmc->map->lpm_num_maps;
> Why is "mode" in pmc_core_get_low_power_modes() left untouched?
>
> (Unrelated to the patch, it seems to contain a double empty line as well.)

I missed this function. Will change the type of "mode" in 
pmc_core_get_low_power_modes() in next version.

Will add another patch to remove one empty line in next version.

Thanks!

Xi

>
>> diff --git a/drivers/platform/x86/intel/pmc/core.h b/drivers/platform/x86/intel/pmc/core.h
>> index 272fb4f57f346..ead2f33ed3ed5 100644
>> --- a/drivers/platform/x86/intel/pmc/core.h
>> +++ b/drivers/platform/x86/intel/pmc/core.h
>> @@ -462,8 +462,8 @@ struct pmc_dev {
>>   	struct mutex lock; /* generic mutex lock for PMC Core */
>>   
>>   	u64 s0ix_counter;
>> -	int num_lpm_modes;
>> -	int lpm_en_modes[LPM_MAX_NUM_MODES];
>> +	u8 num_lpm_modes;
>> +	u8 lpm_en_modes[LPM_MAX_NUM_MODES];
>>   	void (*suspend)(struct pmc_dev *pmcdev);
>>   	int (*resume)(struct pmc_dev *pmcdev);
>>   
>>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ