|
@@ -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
|