]> git.hungrycats.org Git - linux/commitdiff
perf: fix invalid bit in diagnostic entry
authorThomas Richter <tmricht@linux.ibm.com>
Tue, 8 May 2018 05:53:39 +0000 (07:53 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Aug 2018 10:20:29 +0000 (12:20 +0200)
[ Upstream commit 3c0a83b14ea71fef5ccc93a3bd2de5f892be3194 ]

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: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/s390/include/asm/cpu_mf.h

index b9ddb19048ad4a1ad0c5fa45cc5705d4620613a1..0a1ca50298e8f6676edda5a61248ccd69ef02d69 100644 (file)
@@ -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;