On Mon, Apr 29, 2024 at 9:36 PM Avri Altman Avri.Altman@wdc.com wrote:
Is it possible that idata->buf is not DMA capable? Any other ideas?
Thanks for testing. I don't know, the idata->buf is allocated using alloc_pages_exact(nr_pages * PAGE_SIZE, GFP_KERNEL | __GFP_ZERO); in optee_pool_op_alloc_helper().
Is this really true for idata->buf or isnt the complete RPMB frame memory allocated like this and therefore idata->buf not page aligned?
You're right.
Maybe add an assert of PAGE_ALIGNED(idata->buf)?
That might be a bit much. It turned out that there was a 2-byte alignment causing the trouble. I don't know exactly what's needed, but the amount used by kmalloc() by default is good.
Cheers, Jens
Thanks, Avri
For RPMB via tee-supplicant the idata->buf is allocated within memdup_user and therefore page aligned.
Yes, that's a difference. Have you tested with page-aligned buffers to see if it helps?