powerpc/xive: Fix endian conversion size
authorBenjamin Gray <bgray@linux.ibm.com>
Wed, 11 Oct 2023 05:37:00 +0000 (16:37 +1100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Nov 2023 10:52:12 +0000 (11:52 +0100)
[ Upstream commit ff7a60ab1e065257a0e467c13b519f4debcd7fcf ]

Sparse reports a size mismatch in the endian swap. The Opal
implementation[1] passes the value as a __be64, and the receiving
variable out_qsize is a u64, so the use of be32_to_cpu() appears to be
an error.

[1]: https://github.com/open-power/skiboot/blob/80e2b1dc73/hw/xive.c#L3854

Fixes: 88ec6b93c8e7 ("powerpc/xive: add OPAL extensions for the XIVE native exploitation support")
Signed-off-by: Benjamin Gray <bgray@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20231011053711.93427-2-bgray@linux.ibm.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/powerpc/sysdev/xive/native.c

index 3925825..e5baa91 100644 (file)
@@ -804,7 +804,7 @@ int xive_native_get_queue_info(u32 vp_id, u32 prio,
        if (out_qpage)
                *out_qpage = be64_to_cpu(qpage);
        if (out_qsize)
-               *out_qsize = be32_to_cpu(qsize);
+               *out_qsize = be64_to_cpu(qsize);
        if (out_qeoi_page)
                *out_qeoi_page = be64_to_cpu(qeoi_page);
        if (out_escalate_irq)