diff mbox

tools: change the type of '*nr' in 'libxl_psr_cat_get_info'

Message ID 1504249163-27185-1-git-send-email-yi.y.sun@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Yi Sun Sept. 1, 2017, 6:59 a.m. UTC
Due to historical reason, type of parameter '*nr' in 'libxl_psr_cat_get_info'
is 'int'. But this is not right. It should be 'unsigned int'. This patch fixes
this and does related changes.

Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com>
---
    - This patch depends on patch 'tools: remove unnecessary PSR macros'.
---
 tools/libxl/libxl.h     | 2 +-
 tools/libxl/libxl_psr.c | 6 ++++--
 tools/xl/xl_psr.c       | 9 ++++-----
 3 files changed, 9 insertions(+), 8 deletions(-)

Comments

Roger Pau Monné Sept. 1, 2017, 9:07 a.m. UTC | #1
On Fri, Sep 01, 2017 at 02:59:23PM +0800, Yi Sun wrote:
> @@ -410,8 +410,10 @@ int libxl_psr_cat_get_l3_info(libxl_ctx *ctx, libxl_psr_cat_info **info,
>                                int *nr)
>  {
>      int rc;
> +    unsigned int num;
>  
> -    rc = libxl_psr_cat_get_info(ctx, info, nr, 3);
> +    rc = libxl_psr_cat_get_info(ctx, info, &num, 3);

In order to avoid leaking stack data, I would rather do:

if (!rc)
    *nr = num;

The rest LGTM.

Thanks, Roger.
Wei Liu Sept. 1, 2017, 3:43 p.m. UTC | #2
On Fri, Sep 01, 2017 at 02:59:23PM +0800, Yi Sun wrote:
> Due to historical reason, type of parameter '*nr' in 'libxl_psr_cat_get_info'
> is 'int'. But this is not right. It should be 'unsigned int'. This patch fixes
> this and does related changes.
> 
> Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
> Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com>

Please say in the commit message that this is OK because the function in
question is never released.

Otherwise you need to define a LIBXL_HAVE
diff mbox

Patch

diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
index a0185b9..0c90c41 100644
--- a/tools/libxl/libxl.h
+++ b/tools/libxl/libxl.h
@@ -2210,7 +2210,7 @@  int libxl_psr_cat_get_cbm(libxl_ctx *ctx, uint32_t domid,
  * and the length in 'nr'.
  */
 int libxl_psr_cat_get_info(libxl_ctx *ctx, libxl_psr_cat_info **info,
-                           int *nr, unsigned int lvl);
+                           unsigned int *nr, unsigned int lvl);
 int libxl_psr_cat_get_l3_info(libxl_ctx *ctx, libxl_psr_cat_info **info,
                               int *nr);
 void libxl_psr_cat_info_list_free(libxl_psr_cat_info *list, int nr);
diff --git a/tools/libxl/libxl_psr.c b/tools/libxl/libxl_psr.c
index f55ba1e..7366481 100644
--- a/tools/libxl/libxl_psr.c
+++ b/tools/libxl/libxl_psr.c
@@ -362,7 +362,7 @@  int libxl_psr_cat_get_cbm(libxl_ctx *ctx, uint32_t domid,
 }
 
 int libxl_psr_cat_get_info(libxl_ctx *ctx, libxl_psr_cat_info **info,
-                           int *nr, unsigned int lvl)
+                           unsigned int *nr, unsigned int lvl)
 {
     GC_INIT(ctx);
     int rc;
@@ -410,8 +410,10 @@  int libxl_psr_cat_get_l3_info(libxl_ctx *ctx, libxl_psr_cat_info **info,
                               int *nr)
 {
     int rc;
+    unsigned int num;
 
-    rc = libxl_psr_cat_get_info(ctx, info, nr, 3);
+    rc = libxl_psr_cat_get_info(ctx, info, &num, 3);
+    *nr = num;
 
     return rc;
 }
diff --git a/tools/xl/xl_psr.c b/tools/xl/xl_psr.c
index 544f6f0..ef00048 100644
--- a/tools/xl/xl_psr.c
+++ b/tools/xl/xl_psr.c
@@ -294,8 +294,8 @@  int main_psr_cmt_show(int argc, char **argv)
 
 static int psr_l3_cat_hwinfo(void)
 {
-    int rc, nr;
-    unsigned int i;
+    int rc;
+    unsigned int i, nr;
     uint32_t l3_cache_size;
     libxl_psr_cat_info *info;
 
@@ -424,7 +424,7 @@  static int psr_cat_print_socket(uint32_t domid, libxl_psr_cat_info *info,
 
 static int psr_cat_show(uint32_t domid, unsigned int lvl)
 {
-    int i, nr;
+    unsigned int i, nr;
     int rc;
     libxl_psr_cat_info *info;
 
@@ -453,8 +453,7 @@  out:
 static int psr_l2_cat_hwinfo(void)
 {
     int rc;
-    unsigned int i;
-    int nr;
+    unsigned int i, nr;
     libxl_psr_cat_info *info;
 
     rc = libxl_psr_cat_get_info(ctx, &info, &nr, 2);