X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=drivers%2Fmmc%2Fcard%2Fblock.c;h=c5df86546458d1da54f9a0bd778e7957d2357e2e;hb=e4b636366c00738b9609cda307014d71b1225b7f;hp=949e99770ad6f9423c1b30a82a167fc4dceea029;hpb=b9ed7252d219c1c663944bf03846eabb515dbe75;p=safe%2Fjmp%2Flinux-2.6 diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index 949e997..c5df865 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 = blk_rq_sectors(req); /* + * 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.