s390/ebcdic: Fix length decrement in codepage_convert()
authorSven Schnelle <svens@linux.ibm.com>
Wed, 8 Jan 2025 14:27:06 +0000 (15:27 +0100)
committerAlexander Gordeev <agordeev@linux.ibm.com>
Mon, 13 Jan 2025 08:50:18 +0000 (09:50 +0100)
The inline assembly uses the ahi instruction to decrement and test
whether more than 256 bytes are left for conversion. But the nr
variable passed is of type unsigned long. Therefore use aghi.

Signed-off-by: Sven Schnelle <svens@linux.ibm.com>
Reported-by: Jens Remus <jremus@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 7fdb6b92985a9e28aacb837dbdb44f8548eec8ef..7164cb6584355bfc2da3b82511a26009ec4ac9cd 100644 (file)
@@ -29,7 +29,7 @@ codepage_convert(const __u8 *codepage, volatile char *addr, unsigned long nr)
                "0:     tr      0(1,%0),0(%2)\n"
                "1:     tr      0(256,%0),0(%2)\n"
                "       la      %0,256(%0)\n"
-               "2:     ahi     %1,-256\n"
+               "2:     aghi    %1,-256\n"
                "       jnm     1b\n"
                "       exrl    %1,0b"
                : "+&a" (addr), "+&a" (nr)