[PATCH] lib: sbi: Fix LLVM compile error observed in sbi_mpxy.c

Anup Patel anup at brainfault.org
Fri Jun 12 05:32:07 PDT 2026


On Fri, Jun 12, 2026 at 11:52 AM Anup Patel <anup.patel at oss.qualcomm.com> wrote:
>
> The following LLVM compile error is observed in sbi_mpxy.c:
>
>  CC        lib/sbi/sbi_mpxy.o
> lib/sbi/sbi_mpxy.c:535:36: error: result of comparison of constant 18446744073709551615 with
>       expression of type 'u32' (aka 'unsigned int') is always false [-Werror,-Wtautological-constant-out-of-range-compare]
>   535 |                     (attrs->msi_info.msi_addr_hi == INVALID_ADDR))
>       |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~
> lib/sbi/sbi_mpxy.c:534:36: error: result of comparison of constant 18446744073709551615 with
>       expression of type 'u32' (aka 'unsigned int') is always false [-Werror,-Wtautological-constant-out-of-range-compare]
>   534 |                     (attrs->msi_info.msi_addr_lo == INVALID_ADDR) &&
>       |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~
> 2 errors generated.
>
> To address the above issue, add u32 typecast to INVALID_ADDR.
>
> Fixes: e92c8fd0836e ("sbi: mpxy: define INVALID_ADDR using unsigned long width")
> Fixes: 7939bf1329eb ("lib: sbi: Add SBI Message Proxy (MPXY) framework")
> Signed-off-by: Anup Patel <anup.patel at oss.qualcomm.com>

This is a crucial fix hence merging it immediately.

Applied this patch to the riscv/opensbir repo.

Thanks,
Anup


> ---
>  lib/sbi/sbi_mpxy.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/sbi/sbi_mpxy.c b/lib/sbi/sbi_mpxy.c
> index 3e0e0af6..ff5c6ab6 100644
> --- a/lib/sbi/sbi_mpxy.c
> +++ b/lib/sbi/sbi_mpxy.c
> @@ -531,8 +531,8 @@ static int mpxy_check_write_std_attr(struct sbi_mpxy_channel *channel,
>                 if (attr_val > 1)
>                         ret = SBI_ERR_INVALID_PARAM;
>                 if (attr_val == 1 &&
> -                   (attrs->msi_info.msi_addr_lo == INVALID_ADDR) &&
> -                   (attrs->msi_info.msi_addr_hi == INVALID_ADDR))
> +                   (attrs->msi_info.msi_addr_lo == (u32)INVALID_ADDR) &&
> +                   (attrs->msi_info.msi_addr_hi == (u32)INVALID_ADDR))
>                         ret = SBI_ERR_DENIED;
>                 break;
>         case SBI_MPXY_ATTR_MSI_ADDR_LO:
> --
> 2.43.0
>



More information about the opensbi mailing list