Patch "powerpc/papr_scm: Fix warning triggered by perf_stats_show()" has been added to the 5.9-stable tree

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

 



This is a note to let you know that I've just added the patch titled

    powerpc/papr_scm: Fix warning triggered by perf_stats_show()

to the 5.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     powerpc-papr_scm-fix-warning-triggered-by-perf_stats.patch
and it can be found in the queue-5.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 217b5b8951d743737d3468cbb15dc15be7d3ecf5
Author: Vaibhav Jain <vaibhav@xxxxxxxxxxxxx>
Date:   Sat Sep 12 13:44:51 2020 +0530

    powerpc/papr_scm: Fix warning triggered by perf_stats_show()
    
    [ Upstream commit ca78ef2f08ccfa29b711d644964cdf9d7ace15e5 ]
    
    A warning is reported by the kernel in case perf_stats_show() returns
    an error code. The warning is of the form below:
    
     papr_scm ibm,persistent-memory:ibm,pmemory@44100001:
              Failed to query performance stats, Err:-10
     dev_attr_show: perf_stats_show+0x0/0x1c0 [papr_scm] returned bad count
     fill_read_buffer: dev_attr_show+0x0/0xb0 returned bad count
    
    On investigation it looks like that the compiler is silently
    truncating the return value of drc_pmem_query_stats() from 'long' to
    'int', since the variable used to store the return code 'rc' is an
    'int'. This truncated value is then returned back as a 'ssize_t' back
    from perf_stats_show() to 'dev_attr_show()' which thinks of it as a
    large unsigned number and triggers this warning..
    
    To fix this we update the type of variable 'rc' from 'int' to
    'ssize_t' that prevents the compiler from truncating the return value
    of drc_pmem_query_stats() and returning correct signed value back from
    perf_stats_show().
    
    Fixes: 2d02bf835e57 ("powerpc/papr_scm: Fetch nvdimm performance stats from PHYP")
    Signed-off-by: Vaibhav Jain <vaibhav@xxxxxxxxxxxxx>
    Reviewed-by: Ira Weiny <ira.weiny@xxxxxxxxx>
    Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20200912081451.66225-1-vaibhav@xxxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/powerpc/platforms/pseries/papr_scm.c b/arch/powerpc/platforms/pseries/papr_scm.c
index a88a707a608aa..5493bc847bd08 100644
--- a/arch/powerpc/platforms/pseries/papr_scm.c
+++ b/arch/powerpc/platforms/pseries/papr_scm.c
@@ -785,7 +785,8 @@ static int papr_scm_ndctl(struct nvdimm_bus_descriptor *nd_desc,
 static ssize_t perf_stats_show(struct device *dev,
 			       struct device_attribute *attr, char *buf)
 {
-	int index, rc;
+	int index;
+	ssize_t rc;
 	struct seq_buf s;
 	struct papr_scm_perf_stat *stat;
 	struct papr_scm_perf_stats *stats;
@@ -820,7 +821,7 @@ static ssize_t perf_stats_show(struct device *dev,
 
 free_stats:
 	kfree(stats);
-	return rc ? rc : seq_buf_used(&s);
+	return rc ? rc : (ssize_t)seq_buf_used(&s);
 }
 DEVICE_ATTR_ADMIN_RO(perf_stats);
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux