Hello,
It seems there is a bug in code beneath. "EX" instruction puts 1 byte
overly to TR instruction.
So you should decrease "nr" by 1 before executing the "EX" instruction.
static inline void
codepage_convert(const __u8 *codepage, volatile __u8 * addr, unsigned
long nr)
{
if (nr-- <= 0)
return;
__asm__ __volatile__(
" bras 1,1f\n"
" tr 0(1,%0),0(%2)\n"
"0: tr 0(256,%0),0(%2)\n"
" la %0,256(%0)\n"
"1: ahi %1,-256\n"
" jnm 0b\n"
" ex %1,0(1)"
: "+&a" (addr), "+&a" (nr)
: "a" (codepage) : "cc", "memory", "1" );
}
--
Przemyslaw Kupisz
--
To unsubscribe from this list: send the line "unsubscribe linux-s390" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html