ep_mem_desc_table only appears to be freed in the case of an error happening after its allocation - if the function exp_dma_initiate_synchronous_transfer completes successfully the ptr is left dangling.
This is technically a device managed allocation, but it is still poor design to allow it to leak on every successful call to exp_dma_initiate_synchronous_transfer
ep_mem_desc_table
only appears to be freed in the case of an error happening after its allocation - if the functionexp_dma_initiate_synchronous_transfer
completes successfully the ptr is left dangling.This is technically a device managed allocation, but it is still poor design to allow it to leak on every successful call to
exp_dma_initiate_synchronous_transfer