Re: [PATCH] block/nvme: fix infinite loop in nvme_free_req_queue_cb()

2021-12-08 Thread Philippe Mathieu-Daudé
On 12/8/21 16:22, Stefan Hajnoczi wrote: > When the request free list is exhausted the coroutine waits on > q->free_req_queue for the next free request. Whenever a request is > completed a BH is scheduled to invoke nvme_free_req_queue_cb() and wake > up waiting coroutines. > > 1. nvme_get_free_req

[PATCH] block/nvme: fix infinite loop in nvme_free_req_queue_cb()

2021-12-08 Thread Stefan Hajnoczi
When the request free list is exhausted the coroutine waits on q->free_req_queue for the next free request. Whenever a request is completed a BH is scheduled to invoke nvme_free_req_queue_cb() and wake up waiting coroutines. 1. nvme_get_free_req() waits for a free request: while (q->free_req_