[PATCH v10 07/24] mailbox: Add RISC-V SBI message proxy (MPXY) based mailbox driver

Paul Walmsley pjw at kernel.org
Wed Sep 24 17:27:03 PDT 2025


On Mon, 18 Aug 2025, Anup Patel wrote:

> Add a mailbox controller driver for the new SBI message proxy extension
> which is part of the SBI v3.0 specification.
> ---
>  drivers/mailbox/Kconfig               |  11 +
>  drivers/mailbox/Makefile              |   2 +
>  drivers/mailbox/riscv-sbi-mpxy-mbox.c | 994 ++++++++++++++++++++++++++
>  3 files changed, 1007 insertions(+)
>  create mode 100644 drivers/mailbox/riscv-sbi-mpxy-mbox.c
> 
> diff --git a/drivers/mailbox/riscv-sbi-mpxy-mbox.c b/drivers/mailbox/riscv-sbi-mpxy-mbox.c
> new file mode 100644
> index 000000000000..21404baa6df0
> --- /dev/null
> +++ b/drivers/mailbox/riscv-sbi-mpxy-mbox.c

[ ... ]

> +
> +static int mpxy_mbox_populate_channels(struct mpxy_mbox *mbox)
> +{
> +	u32 i, *channel_ids __free(kfree) = NULL;
> +	struct mpxy_mbox_channel *mchan;
> +	int rc;
> +
> +	/* Find-out of number of channels */
> +	rc = mpxy_get_channel_count(&mbox->channel_count);
> +	if (rc)
> +		return dev_err_probe(mbox->dev, rc, "failed to get number of MPXY channels\n");
> +	if (!mbox->channel_count)
> +		return dev_err_probe(mbox->dev, -ENODEV, "no MPXY channels available\n");
> +
> +	/* Allocate and fetch all channel IDs */
> +	channel_ids = kcalloc(mbox->channel_count, sizeof(*channel_ids), GFP_KERNEL);

Should this be devm_kcalloc() ?


- Paul



More information about the linux-riscv mailing list