On 8/16/24 01:23, Michal Suchánek wrote:
On Fri, Apr 12, 2024 at 02:50:47PM +0530, Shrikanth Hegde wrote:
Couple of Minor fixes:

- hcall return values are long. Fix that for h_get_mpp, h_get_ppp and
parse_ppp_data

- If hcall fails, values set should be at-least zero. It shouldn't be
uninitialized values. Fix that for h_get_mpp and h_get_ppp

Signed-off-by: Shrikanth Hegde <sshe...@linux.ibm.com>
---
  arch/powerpc/include/asm/hvcall.h        | 2 +-
  arch/powerpc/platforms/pseries/lpar.c    | 6 +++---
  arch/powerpc/platforms/pseries/lparcfg.c | 6 +++---
  3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/arch/powerpc/include/asm/hvcall.h 
b/arch/powerpc/include/asm/hvcall.h
index a41e542ba94d..3d642139b900 100644
--- a/arch/powerpc/include/asm/hvcall.h
+++ b/arch/powerpc/include/asm/hvcall.h
@@ -570,7 +570,7 @@ struct hvcall_mpp_data {
        unsigned long backing_mem;
  };

-int h_get_mpp(struct hvcall_mpp_data *);
+long h_get_mpp(struct hvcall_mpp_data *mpp_data);

  struct hvcall_mpp_x_data {
        unsigned long coalesced_bytes;
diff --git a/arch/powerpc/platforms/pseries/lpar.c 
b/arch/powerpc/platforms/pseries/lpar.c
index 4e9916bb03d7..c1d8bee8f701 100644
--- a/arch/powerpc/platforms/pseries/lpar.c
+++ b/arch/powerpc/platforms/pseries/lpar.c
@@ -1886,10 +1886,10 @@ notrace void __trace_hcall_exit(long opcode, long 
retval, unsigned long *retbuf)
   * h_get_mpp
   * H_GET_MPP hcall returns info in 7 parms
   */
-int h_get_mpp(struct hvcall_mpp_data *mpp_data)
+long h_get_mpp(struct hvcall_mpp_data *mpp_data)
  {
-       int rc;
-       unsigned long retbuf[PLPAR_HCALL9_BUFSIZE];
+       unsigned long retbuf[PLPAR_HCALL9_BUFSIZE] = {0};
+       long rc;

        rc = plpar_hcall9(H_GET_MPP, retbuf);

diff --git a/arch/powerpc/platforms/pseries/lparcfg.c 
b/arch/powerpc/platforms/pseries/lparcfg.c
index 5c2a3e802a02..ed2176d8a866 100644
--- a/arch/powerpc/platforms/pseries/lparcfg.c
+++ b/arch/powerpc/platforms/pseries/lparcfg.c
@@ -113,8 +113,8 @@ struct hvcall_ppp_data {
   */
  static unsigned int h_get_ppp(struct hvcall_ppp_data *ppp_data)
Hello,

Shouldn't the      ^^^ return value also be long?

Thanks


Yes. You are right. missed to notice that. Thanks for pointing it out.

There might be other places where similar pattern maybe there.
Will fix it.

Michal
  {
-       unsigned long rc;
-       unsigned long retbuf[PLPAR_HCALL9_BUFSIZE];
+       unsigned long retbuf[PLPAR_HCALL9_BUFSIZE] = {0};
+       long rc;

        rc = plpar_hcall9(H_GET_PPP, retbuf);

@@ -197,7 +197,7 @@ static void parse_ppp_data(struct seq_file *m)
        struct hvcall_ppp_data ppp_data;
        struct device_node *root;
        const __be32 *perf_level;
-       int rc;
+       long rc;

        rc = h_get_ppp(&ppp_data);
        if (rc)
--
2.39.3



Reply via email to