Commit 0399e3f8 authored by Sudeep Holla's avatar Sudeep Holla
Browse files

firmware: arm_ffa: Align RxTx buffer size before mapping

Commit 83210251 ("firmware: arm_ffa: Use the correct buffer size during
RXTX_MAP") advertises PAGE_ALIGN(rxtx_bufsz) to firmware when mapping the
buffers but the driver continues to stores the minimum FF-A buffer size
in drv_info->rxtx_bufsz which is used elsewhere in the driver.

Align the size before storing it so that the allocation, validation and
FFA_RXTX_MAP all use the same buffer size.

Fixes: 83210251 ("firmware: arm_ffa: Use the correct buffer size during RXTX_MAP")
Cc: Sebastian Ene <sebastianene@google.com>
Link: https://sashiko.dev/#/patchset/20260402113939.930221-1-sebastianene@google.com


Reviewed-by: default avatarSebastian Ene <sebastianene@google.com>
Link: https://patch.msgid.link/20260428-ffa_fixes-v2-9-8595ae450034@kernel.org


Signed-off-by: default avatarSudeep Holla <sudeep.holla@kernel.org>
parent 4a1cc9e9
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2109,6 +2109,7 @@ static int __init ffa_init(void)
			rxtx_bufsz = SZ_4K;
	}

	rxtx_bufsz = PAGE_ALIGN(rxtx_bufsz);
	drv_info->rxtx_bufsz = rxtx_bufsz;
	drv_info->rx_buffer = alloc_pages_exact(rxtx_bufsz, GFP_KERNEL);
	if (!drv_info->rx_buffer) {
@@ -2124,7 +2125,7 @@ static int __init ffa_init(void)

	ret = ffa_rxtx_map(virt_to_phys(drv_info->tx_buffer),
			   virt_to_phys(drv_info->rx_buffer),
			   PAGE_ALIGN(rxtx_bufsz) / FFA_PAGE_SIZE);
			   rxtx_bufsz / FFA_PAGE_SIZE);
	if (ret) {
		pr_err("failed to register FFA RxTx buffers\n");
		goto free_pages;