diff mbox series

power: cpupower: utils: Optimize print_online_cpus and print_offline_cpus function

Message ID 20221012101039.3142-1-kunyu@nfschina.com (mailing list archive)
State Handled Elsewhere, archived
Headers show
Series power: cpupower: utils: Optimize print_online_cpus and print_offline_cpus function | expand

Commit Message

Li kunyu Oct. 12, 2022, 10:10 a.m. UTC
1. Remove the initialization assignment of variables, and they will be
assigned first.
2. Remove the mandatory conversion of returned value of malloc function,
which returns void* type.

Signed-off-by: Li kunyu <kunyu@nfschina.com>
---
 tools/power/cpupower/utils/helpers/misc.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

Comments

Shuah Khan Oct. 12, 2022, 3:39 p.m. UTC | #1
On 10/12/22 04:10, Li kunyu wrote:
> 1. Remove the initialization assignment of variables, and they will be
> assigned first.
> 2. Remove the mandatory conversion of returned value of malloc function,
> which returns void* type.
> 
> Signed-off-by: Li kunyu <kunyu@nfschina.com>

Can you tell me more about why this change is needed and how you determined
the need for this change?

thanks,
-- Shuah
Li kunyu Oct. 13, 2022, 1:49 a.m. UTC | #2
I'm glad to get your reply. In previous tests, it was found that variable initialization and assignment use mov related instructions. Therefore, when I analyze the code and find that removing some variable initialization and assignment does not affect the function and security, I will try to remove variable initialization.

Find the malloc function and find that its return value is void * type, so it does not need to cast.

thanks,
kunyu
Li kunyu Oct. 13, 2022, 2:01 a.m. UTC | #3
I'm glad to get your reply. In previous tests, it was found that variable initialization and assignment use mov related instructions. Therefore, when I analyze the code and find that removing some variable initialization and assignment does not affect the function and security, I will try to remove variable initialization.

Find the malloc function and find that its return value is void * type, so it does not need to cast.

thanks,
kunyu
Shuah Khan Oct. 13, 2022, 3:58 p.m. UTC | #4
On 10/12/22 20:01, Li kunyu wrote:
> 
> I'm glad to get your reply. In previous tests, it was found that variable initialization and assignment use mov related instructions. Therefore, when I analyze the code and find that removing some variable initialization and assignment does not affect the function and security, I will try to remove variable initialization.
> 
> Find the malloc function and find that its return value is void * type, so it does not need to cast.
> 
> thanks,
> kunyu
> 

I am not seeing any reasons for removing the initialization.
There is no need to do that.

Missing error handling after malloc() call is the real problem
that can be fixed in this code path.

If you would like to fix that, send me a patch for that.

Hmm. Your reply to list looks strange - please double check and fix it

"Re:[PATCH]"@lists.nfsmail.com etc...

thanks,
-- Shuah
Li kunyu Oct. 14, 2022, 3:49 a.m. UTC | #5
OK, I will make a new patch to determine the malloc memory allocation.
diff mbox series

Patch

diff --git a/tools/power/cpupower/utils/helpers/misc.c b/tools/power/cpupower/utils/helpers/misc.c
index 9547b29254a7..36dbd0562240 100644
--- a/tools/power/cpupower/utils/helpers/misc.c
+++ b/tools/power/cpupower/utils/helpers/misc.c
@@ -134,11 +134,11 @@  void get_cpustate(void)
  */
 void print_online_cpus(void)
 {
-	int str_len = 0;
-	char *online_cpus_str = NULL;
+	int str_len;
+	char *online_cpus_str;
 
 	str_len = online_cpus->size * 5;
-	online_cpus_str = (void *)malloc(sizeof(char) * str_len);
+	online_cpus_str = malloc(sizeof(char) * str_len);
 
 	if (!bitmask_isallclear(online_cpus)) {
 		bitmask_displaylist(online_cpus_str, str_len, online_cpus);
@@ -152,11 +152,11 @@  void print_online_cpus(void)
  */
 void print_offline_cpus(void)
 {
-	int str_len = 0;
-	char *offline_cpus_str = NULL;
+	int str_len;
+	char *offline_cpus_str;
 
 	str_len = offline_cpus->size * 5;
-	offline_cpus_str = (void *)malloc(sizeof(char) * str_len);
+	offline_cpus_str = malloc(sizeof(char) * str_len);
 
 	if (!bitmask_isallclear(offline_cpus)) {
 		bitmask_displaylist(offline_cpus_str, str_len, offline_cpus);