[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <871r6gb7yh.fsf@mpe.ellerman.id.au>
Date: Fri, 27 Aug 2021 00:23:50 +1000
From: Michael Ellerman <mpe@...erman.id.au>
To: Christophe Leroy <christophe.leroy@...roup.eu>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Paul Mackerras <paulus@...ba.org>
Cc: linux-kernel@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org
Subject: Re: [PATCH] powerpc: Make set_endian() return EINVAL when not
supporting little endian
Christophe Leroy <christophe.leroy@...roup.eu> writes:
> Le 26/08/2021 à 05:41, Michael Ellerman a écrit :
>> Christophe Leroy <christophe.leroy@...roup.eu> writes:
>>> There is no point in modifying MSR_LE bit on CPUs not supporting
>>> little endian.
>>
>> Isn't that an ABI break?
>
> Or an ABI fix ? I don't know.
It could break existing applications, even if the new semantics make
more sense. So that's a break IMHO :)
> My first thought was that all other 32 bits architectures were returning -EINVAL, but looking at the
> man page of prctl, it is explicit that this is powerpc only.
It could be generic, but yeah seems we're the only arch that implements
it.
>> set_endian(PR_ENDIAN_BIG) should work on a big endian CPU, even if it
>> does nothing useful.
>
> Fair enough. But shouldn't in that case get_endian() return PR_ENDIAN_BIG instead of returning EINVAL ?
> We can do one or the other, but I think it should at least be consistant between them, shouldn't it ?
It should be consistent, but it isn't, and if we change it now we
potentially break existing userspace, which is bad.
I don't think it's widely used, and the risk of breakage would be
minimal, but it's not zero.
So I'm not sure it's worth changing it just for the sake of consistency.
cheers
Powered by blists - more mailing lists