Hello.
I'm new in linux kenel programming. I am writting a block device driver. I want to use my own make_request function but i have some questions.
Why we allocate a queue with blk_alloc_queue function? If i have undestand well this queue does not actually holds requests. Which is its use? Why some programmers set some flags for this queue?
e.g queue_flag_set_unlocked(QUEUE_FLAG_NOMERGES, queue) (nvme driver)
Have these flags any meaning? Also, if there is not a queue how can i keep the requests in order to process them later? Could I add them in a list?

Help

