[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] tools:misc:xenpm: set max freq to all cpu with default cpuid



Hi Wei,

On 12/04/17 15:54, Wei Liu wrote:
On Wed, Apr 12, 2017 at 09:19:34AM +0800, Luwei Kang wrote:
User can set max freq to specific cpu by
"xenpm set-scaling-maxfreq <cpuid> <max freq>"
or set max freq to all cpu with default cpuid by
"xenpm set-scaling-maxfreq <max freq>".

Set max freq with defaule cpuid will cause

default

segmentation fault after commit id d4906b5d05.
This patch will fix this issue and add ability
to set max freq with default cpuid.

Signed-off-by: Luwei Kang <luwei.kang@xxxxxxxxx>

I think this patch basically restores the code to the correct logic
before it was broken by d4906b5d05, so:

Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>

If I am not mistaken, this patch will re-introduce an error with clang build. From the commit message the sscanf was problematic:

xenpm.c:102:23: error: data argument not used by format string [-Werror,-Wformat-extra-args]
                    what, argv[argc > 1]);
                          ^

So we would break clang build but get a segfault fixed :). I have CCed Roger to confirm.

Cheers,


CC Julien

---
 tools/misc/xenpm.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index ded40b9..abe31b5 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -99,8 +99,10 @@ static void parse_cpuid_and_int(int argc, char *argv[],
          exit(EINVAL);
     }

-    parse_cpuid(argv[0], cpuid);
-    if ( sscanf(argv[1], "%d", val) != 1 )
+    if ( argc > 1 )
+        parse_cpuid(argv[0], cpuid);
+
+    if ( argc == 0 || sscanf(argv[argc > 1], "%d", val) != 1 )
     {
         fprintf(stderr, "Invalid %s '%s'\n", what, argv[1]);
         exit(EINVAL);
--
1.8.3.1


--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.