| From: Thomas Richter <tmricht@linux.ibm.com> |
| Date: Tue, 8 May 2018 07:53:39 +0200 |
| Subject: perf: fix invalid bit in diagnostic entry |
| |
| commit 3c0a83b14ea71fef5ccc93a3bd2de5f892be3194 upstream. |
| |
| The s390 CPU measurement facility sampling mode supports basic entries |
| and diagnostic entries. Each entry has a valid bit to indicate the |
| status of the entry as valid or invalid. |
| |
| This bit is bit 31 in the diagnostic entry, but the bit mask definition |
| refers to bit 30. |
| |
| Fix this by making the reserved field one bit larger. |
| |
| Fixes: 7e75fc3ff4cf ("s390/cpum_sf: Add raw data sampling to support the diagnostic-sampling function") |
| Signed-off-by: Thomas Richter <tmricht@linux.ibm.com> |
| Reviewed-by: Hendrik Brueckner <brueckner@linux.ibm.com> |
| Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| arch/s390/include/asm/cpu_mf.h | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/arch/s390/include/asm/cpu_mf.h |
| +++ b/arch/s390/include/asm/cpu_mf.h |
| @@ -118,7 +118,7 @@ struct hws_basic_entry { |
| |
| struct hws_diag_entry { |
| unsigned int def:16; /* 0-15 Data Entry Format */ |
| - unsigned int R:14; /* 16-19 and 20-30 reserved */ |
| + unsigned int R:15; /* 16-19 and 20-30 reserved */ |
| unsigned int I:1; /* 31 entry valid or invalid */ |
| u8 data[]; /* Machine-dependent sample data */ |
| } __packed; |