Message ID | 20240412092047.455483-3-sshegde@linux.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 6d4341638516bf97b9a34947e0bd95035a8230a5 |
Headers | show |
Series | powerpc/pseries: Fixes for lparstat boot reports | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/github-powerpc_ppctests | success | Successfully ran 8 jobs. |
snowpatch_ozlabs/github-powerpc_selftests | success | Successfully ran 8 jobs. |
snowpatch_ozlabs/github-powerpc_sparse | success | Successfully ran 4 jobs. |
snowpatch_ozlabs/github-powerpc_clang | success | Successfully ran 6 jobs. |
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 <sshegde@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 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 >
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 <sshegde@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 >>
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) { - 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)
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 <sshegde@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(-) -- 2.39.3