On Mon, Apr 29, 2024 at 9:36 PM Avri Altman <Avri.Altman@xxxxxxx> 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?