On Thu, Oct 28, 2021 at 10:07:52AM -0700, Bart Van Assche wrote: > I spent some time looking around for other examples of allocating and > inserting a request from inside block layer callbacks. I only found one > such example, namely in the NVMe core. nvme_timeout() calls > nvme_alloc_request() and blk_execute_rq_nowait(). The difference between > what the UFS HPB code is doing and what nvme_timeout() does doesn't seem > that big to me. The difference is that nvme_timeout allocates a request on the admin queue, and only does so for commands on the I/O queues.