Skip to content

Commit 026a3ef

Browse files
committed
dmaengine: sdxi: Context management overhaul
This survives booting through dmatest and unbinding the device with kasan and kmemleak enabled in a VM. Some key points: * Define a class for tracking contexts in the device's client_cxts xarray, allocating the context IDs, and automatically unwinding on early return. * Ensure valid bit updates for CXT_CTL and CXT_L1_ENT occur after the entry is fully programmed, preceded by a barrier. * Use intermediate logical representations of control structure subfields that are passed to the serialization functions. * More clearly separate treatment of admin and client contexts. Do not allocate context ID 0 from sdxi_dev->client_cxts any more. * Do away with goto-based error unwinding in favor of a robust sdxi_cxt destructor that handles partially-allocated contexts. Signed-off-by: Nathan Lynch <nathan.lynch@amd.com>
1 parent dec9231 commit 026a3ef

4 files changed

Lines changed: 307 additions & 264 deletions

File tree

0 commit comments

Comments
 (0)