[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <Y1EZuQcO8UoN91cX@localhost.localdomain>
Date: Thu, 20 Oct 2022 12:49:45 +0300
From: Alexey Dobriyan <adobriyan@...il.com>
To: akpm@...ux-foundation.org, linux-kernel@...r.kernel.org
Cc: mm-commits@...r.kernel.org, torvalds@...ux-foundation.org,
masahiroy@...nel.org, keescook@...omium.org,
gregkh@...uxfoundation.org, andriy.shevchenko@...ux.intel.com,
Jason@...c4.com, akpm@...ux-foundation.org
Subject: [PATCH -mm] -funsigned-char, x86: make struct p4_event_bind::cntr
signed array
struct p4_event_bind::cntr[][] should be signed because of
the following code:
int i, j;
for (i = 0; i < P4_CNTR_LIMIT; i++) {
===> j = bind->cntr[thread][i];
if (j != -1 && !test_bit(j, used_mask))
return j;
}
Making this member unsigned will make "j" 255 and fail "j != -1"
comparison.
Signed-off-by: Alexey Dobriyan <adobriyan@...il.com>
---
arch/x86/events/intel/p4.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/x86/events/intel/p4.c
+++ b/arch/x86/events/intel/p4.c
@@ -24,7 +24,7 @@ struct p4_event_bind {
unsigned int escr_msr[2]; /* ESCR MSR for this event */
unsigned int escr_emask; /* valid ESCR EventMask bits */
unsigned int shared; /* event is shared across threads */
- char cntr[2][P4_CNTR_LIMIT]; /* counter index (offset), -1 on absence */
+ signed char cntr[2][P4_CNTR_LIMIT]; /* counter index (offset), -1 on absence */
};
struct p4_pebs_bind {
Powered by blists - more mailing lists