On Wed, 2022-11-23 at 13:32 -0600, Nick Child wrote:
On 11/22/22 20:51, Andrew Donnellan wrote:
quoted
On Fri, 2022-11-18 at 09:07 -0600, Nathan Lynch wrote:
quoted
+enum rtas_function_flags {
+ RTAS_FN_FLAG_BANNED_FOR_SYSCALL_ON_LE = (1 << 0),
+};
This seems to be new, what's the justification?
Seems to be a run-time replacement of:
#ifdef CONFIG_CPU_BIG_ENDIAN
{ "ibm,suspend-me", -1, -1, -1, -1, -1 },
{ "ibm,update-nodes", -1, 0, -1, -1, -1, 4096 },
{ "ibm,update-properties", -1, 0, -1, -1, -1, 4096 },
#endif
It looks to be handled logically:
+ if (IS_ENABLED(CONFIG_CPU_LITTLE_ENDIAN) &&
+ (func->flags & RTAS_FN_FLAG_BANNED_FOR_SYSCALL_ON_LE))
+ goto err;
Perhaps, also allow the addition of any future special cases
for rtas functions easier to maintain?
Makes sense, though I'm slightly confused about the original rationale
for the ifdef and why it's not being fixed in userspace.
Slightly clunky name though, something like
RTAS_FN_FLAG_SYSCALL_BE_ONLY might be less clunky?
--
Andrew Donnellan OzLabs, ADL Canberra
ajd@linux.ibm.com IBM Australia Limited