s390/ebcdic: Fix length check in codepage_convert()
authorSven Schnelle <svens@linux.ibm.com>
Wed, 8 Jan 2025 14:27:05 +0000 (15:27 +0100)
committerAlexander Gordeev <agordeev@linux.ibm.com>
Mon, 13 Jan 2025 08:50:18 +0000 (09:50 +0100)
The current code compares whether the nr argument is less or equal to
zero. As nr is of type unsigned long, this isn't correct. Fix this by just
testing for zero. This is also reported by checkpatch:

unsignedLessThanZero: Checking if unsigned expression 'nr--' is less
than zero.

Reported-by: Jens Remus <jremus@linux.ibm.com>
Signed-off-by: Sven Schnelle <svens@linux.ibm.com>
Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
arch/s390/include/asm/ebcdic.h

index cfa3405..7fdb6b9 100644 (file)
@@ -22,7 +22,7 @@ extern __u8 _ebc_toupper[256]; /* EBCDIC -> uppercase */
 static inline void
 codepage_convert(const __u8 *codepage, volatile char *addr, unsigned long nr)
 {
-       if (nr-- <= 0)
+       if (!nr--)
                return;
        asm volatile(
                "       j       2f\n"