mirror of
https://github.com/torvalds/linux.git
synced 2025-11-06 03:29:11 +02:00
For a completed request, after the mmc_blk_mq_complete_rq(mq, req)
function is executed, the bitmap_tags corresponding to the
request will be cleared, that is, the request will be regarded as
idle. If the request is acquired by a different type of process at
this time, the issue_type of the request may change. It further
caused the value of mq->in_flight[issue_type] to be abnormal,
and a large number of requests could not be sent.
p1: p2:
mmc_blk_mq_complete_rq
blk_mq_free_request
blk_mq_get_request
blk_mq_rq_ctx_init
mmc_blk_mq_dec_in_flight
mmc_issue_type(mq, req)
This strategy can ensure the consistency of issue_type
before and after executing mmc_blk_mq_complete_rq.
Fixes:
|
||
|---|---|---|
| .. | ||
| block.c | ||
| block.h | ||
| bus.c | ||
| bus.h | ||
| card.h | ||
| core.c | ||
| core.h | ||
| crypto.c | ||
| crypto.h | ||
| debugfs.c | ||
| host.c | ||
| host.h | ||
| Kconfig | ||
| Makefile | ||
| mmc.c | ||
| mmc_ops.c | ||
| mmc_ops.h | ||
| mmc_test.c | ||
| pwrseq.c | ||
| pwrseq.h | ||
| pwrseq_emmc.c | ||
| pwrseq_sd8787.c | ||
| pwrseq_simple.c | ||
| queue.c | ||
| queue.h | ||
| quirks.h | ||
| regulator.c | ||
| sd.c | ||
| sd.h | ||
| sd_ops.c | ||
| sd_ops.h | ||
| sdio.c | ||
| sdio_bus.c | ||
| sdio_bus.h | ||
| sdio_cis.c | ||
| sdio_cis.h | ||
| sdio_io.c | ||
| sdio_irq.c | ||
| sdio_ops.c | ||
| sdio_ops.h | ||
| sdio_uart.c | ||
| slot-gpio.c | ||
| slot-gpio.h | ||