I'm trying to understand the logic for how the OPAL state machine and how it interacts with the Security Send / Receive commands. It seems like it's implemented as an asynchronous state machine, but all the callers and up waiting synchronously for the result. How about making ->send and ->recv (or the merged method if you follow my earlier suggestion) synchronous, e.g. for nvme just switch from blk_execute_rq_nowait to blk_execute_rq for the execution and stop passing the cb and cb_data arguments which would not be needed with this scheme. -- To unsubscribe from this list: send the line "unsubscribe linux-block" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html