OSDN Git Service

powerpc/powernv: Fix type of opal_mpipl_query_tag() addr argument
authorMichael Ellerman <mpe@ellerman.id.au>
Wed, 21 Apr 2021 12:54:02 +0000 (22:54 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 22 Apr 2021 10:59:09 +0000 (20:59 +1000)
opal_mpipl_query_tag() takes a pointer to a 64-bit value, which firmware
writes a value to. As OPAL is traditionally big endian this value will
be big endian.

This can be confirmed by looking at the implementation in skiboot:

  static uint64_t opal_mpipl_query_tag(enum opal_mpipl_tags tag, __be64 *tag_val)
  {
   ...
   *tag_val = cpu_to_be64(opal_mpipl_tags[tag]);
   return OPAL_SUCCESS;
  }

Fix the declaration to annotate that the value is big endian.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210421125402.1955013-2-mpe@ellerman.id.au
arch/powerpc/include/asm/opal.h

index 9986ac3..c761572 100644 (file)
@@ -307,7 +307,7 @@ int opal_secvar_enqueue_update(const char *key, uint64_t key_len, u8 *data,
 
 s64 opal_mpipl_update(enum opal_mpipl_ops op, u64 src, u64 dest, u64 size);
 s64 opal_mpipl_register_tag(enum opal_mpipl_tags tag, u64 addr);
-s64 opal_mpipl_query_tag(enum opal_mpipl_tags tag, u64 *addr);
+s64 opal_mpipl_query_tag(enum opal_mpipl_tags tag, __be64 *addr);
 
 s64 opal_signal_system_reset(s32 cpu);
 s64 opal_quiesce(u64 shutdown_type, s32 cpu);