diff options
Diffstat (limited to 'drivers/mmc/card/block.c')
| -rw-r--r-- | drivers/mmc/card/block.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index fe8041e619e..b25e9b6516a 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c @@ -254,6 +254,14 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)  		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  		 * successfully.  |