forked from luck/tmp_suning_uos_patched
mmc_block: be prepared for oversized requests
The block layer does not support very low sector count restrictions so we need to be prepared to handle bigger requests than we can send directly to the controller. Problem found by Manuel Lauss. Signed-off-by: Pierre Ossman <pierre@ossman.eu>
This commit is contained in:
parent
0c8454f566
commit
548d2de9bd
|
@ -253,6 +253,14 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
|
|||
brq.stop.flags = MMC_RSP_SPI_R1B | MMC_RSP_R1B | MMC_CMD_AC;
|
||||
brq.data.blocks = req->nr_sectors;
|
||||
|
||||
/*
|
||||
* The block layer doesn't support all sector count
|
||||
* restrictions, so we need to be prepared for too big
|
||||
* requests.
|
||||
*/
|
||||
if (brq.data.blocks > card->host->max_blk_count)
|
||||
brq.data.blocks = card->host->max_blk_count;
|
||||
|
||||
/*
|
||||
* After a read error, we redo the request one sector at a time
|
||||
* in order to accurately determine which sectors can be read
|
||||
|
|
Loading…
Reference in New Issue
Block a user