[PATCH 02/12] lib: utils: Constantify mpxy_rpmi_mbox_data in mpxy_rpmi_mbox

Samuel Holland samuel.holland at sifive.com
Sun Jan 19 14:54:42 PST 2025


On 2025-01-16 9:56 AM, Anup Patel wrote:
> The mpxy_rpmi_mbox_data is provided by RPMI service group specific
> MPXY driver to the common MPXY RPMI mailbox client implementation
> so let's constantify mpxy_rpmi_mbox_data in mpxy_rpmi_mbox so that
> it is not accidently modified.
> 
> Signed-off-by: Anup Patel <apatel at ventanamicro.com>
> ---
>  lib/utils/mpxy/fdt_mpxy_rpmi_mbox.c | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)
> 
> diff --git a/lib/utils/mpxy/fdt_mpxy_rpmi_mbox.c b/lib/utils/mpxy/fdt_mpxy_rpmi_mbox.c
> index 0d4fd1fe..7034fb9e 100644
> --- a/lib/utils/mpxy/fdt_mpxy_rpmi_mbox.c
> +++ b/lib/utils/mpxy/fdt_mpxy_rpmi_mbox.c
> @@ -22,7 +22,7 @@
>   */
>  struct mpxy_rpmi_mbox {
>  	struct mbox_chan *chan;
> -	struct mpxy_rpmi_mbox_data *mbox_data;
> +	const struct mpxy_rpmi_mbox_data *mbox_data;
>  	struct mpxy_rpmi_channel_attrs msgprot_attrs;
>  	struct sbi_mpxy_channel channel;
>  };
> @@ -31,11 +31,11 @@ struct mpxy_rpmi_mbox {
>   * Discover the RPMI service data using message_id
>   * MPXY message_id == RPMI service_id
>   */
> -static struct mpxy_rpmi_service_data *mpxy_find_rpmi_srvid(u32 message_id,
> -					struct mpxy_rpmi_mbox_data *mbox_data)
> +static const struct mpxy_rpmi_service_data *mpxy_find_rpmi_srvid(u32 message_id,
> +					const struct mpxy_rpmi_mbox_data *mbox_data)
>  {
>  	int mid = 0;
> -	struct mpxy_rpmi_service_data *srv = mbox_data->service_data;
> +	const struct mpxy_rpmi_service_data *srv = mbox_data->service_data;
>  
>  	for (mid = 0; srv[mid].id < mbox_data->num_services; mid++) {
>  		if (srv[mid].id == (u8)message_id)
> @@ -146,8 +146,9 @@ static int __mpxy_mbox_send_message(struct sbi_mpxy_channel *channel,
>  	struct rpmi_message_args args = {0};
>  	struct mpxy_rpmi_mbox *rmb =
>  		container_of(channel, struct mpxy_rpmi_mbox, channel);
> -	struct mpxy_rpmi_service_data *srv =
> -			mpxy_find_rpmi_srvid(message_id, rmb->mbox_data);
> +	const struct mpxy_rpmi_service_data *srv =
> +		mpxy_find_rpmi_srvid(message_id, rmb->mbox_data);
> +
>  	if (!srv)
>  		return SBI_ENOTSUPP;
>  
> @@ -299,7 +300,7 @@ int mpxy_rpmi_mbox_init(const void *fdt, int nodeoff, const struct fdt_match *ma
>  	rmb->msgprot_attrs.servicegrp_ver =
>  			SBI_MPXY_MSGPROTO_VERSION(MPXY_RPMI_MAJOR_VER, MPXY_RPMI_MINOR_VER);
>  
> -	rmb->mbox_data = (struct mpxy_rpmi_mbox_data *)data;
> +	rmb->mbox_data = data;
>  	rmb->chan = chan;
>  
>  	/* Register RPXY service group */

The underlying object (e.g. `clock_data`) can also be const now.

Reviewed-by: Samuel Holland <samuel.holland at sifive.com>




More information about the opensbi mailing list