diff options
Diffstat (limited to 'drivers/mmc/mmc.c')
-rw-r--r-- | drivers/mmc/mmc.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 9bda3fddad17..fb04bdd26c36 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c | |||
@@ -109,6 +109,9 @@ mmc_start_request(struct mmc_host *host, struct mmc_request *mrq) | |||
109 | mrq->cmd->mrq = mrq; | 109 | mrq->cmd->mrq = mrq; |
110 | if (mrq->data) { | 110 | if (mrq->data) { |
111 | BUG_ON(mrq->data->blksz > host->max_blk_size); | 111 | BUG_ON(mrq->data->blksz > host->max_blk_size); |
112 | BUG_ON(mrq->data->blocks > host->max_blk_count); | ||
113 | BUG_ON(mrq->data->blocks * mrq->data->blksz > | ||
114 | host->max_req_size); | ||
112 | 115 | ||
113 | mrq->cmd->data = mrq->data; | 116 | mrq->cmd->data = mrq->data; |
114 | mrq->data->error = 0; | 117 | mrq->data->error = 0; |
@@ -1605,10 +1608,11 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev) | |||
1605 | */ | 1608 | */ |
1606 | host->max_hw_segs = 1; | 1609 | host->max_hw_segs = 1; |
1607 | host->max_phys_segs = 1; | 1610 | host->max_phys_segs = 1; |
1608 | host->max_sectors = 1 << (PAGE_CACHE_SHIFT - 9); | ||
1609 | host->max_seg_size = PAGE_CACHE_SIZE; | 1611 | host->max_seg_size = PAGE_CACHE_SIZE; |
1610 | 1612 | ||
1613 | host->max_req_size = PAGE_CACHE_SIZE; | ||
1611 | host->max_blk_size = 512; | 1614 | host->max_blk_size = 512; |
1615 | host->max_blk_count = PAGE_CACHE_SIZE / 512; | ||
1612 | } | 1616 | } |
1613 | 1617 | ||
1614 | return host; | 1618 | return host; |