提交 aafabfab 编写于 作者: P Pierre Ossman

mmc: reorganize bounce buffer init

Reorganize the code that initializes mmc_block's bounce buffer in
order to avoid warnings when MMC_BLOCK_BOUNCE isn't used.
Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
上级 b3627bb1
...@@ -117,7 +117,6 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock ...@@ -117,7 +117,6 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock
struct mmc_host *host = card->host; struct mmc_host *host = card->host;
u64 limit = BLK_BOUNCE_HIGH; u64 limit = BLK_BOUNCE_HIGH;
int ret; int ret;
unsigned int bouncesz;
if (mmc_dev(host)->dma_mask && *mmc_dev(host)->dma_mask) if (mmc_dev(host)->dma_mask && *mmc_dev(host)->dma_mask)
limit = *mmc_dev(host)->dma_mask; limit = *mmc_dev(host)->dma_mask;
...@@ -134,6 +133,8 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock ...@@ -134,6 +133,8 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock
#ifdef CONFIG_MMC_BLOCK_BOUNCE #ifdef CONFIG_MMC_BLOCK_BOUNCE
if (host->max_hw_segs == 1) { if (host->max_hw_segs == 1) {
unsigned int bouncesz;
bouncesz = MMC_QUEUE_BOUNCESZ; bouncesz = MMC_QUEUE_BOUNCESZ;
if (bouncesz > host->max_req_size) if (bouncesz > host->max_req_size)
...@@ -156,14 +157,14 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock ...@@ -156,14 +157,14 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock
GFP_KERNEL); GFP_KERNEL);
if (!mq->sg) { if (!mq->sg) {
ret = -ENOMEM; ret = -ENOMEM;
goto free_bounce_buf; goto cleanup_queue;
} }
mq->bounce_sg = kmalloc(sizeof(struct scatterlist) * mq->bounce_sg = kmalloc(sizeof(struct scatterlist) *
bouncesz / 512, GFP_KERNEL); bouncesz / 512, GFP_KERNEL);
if (!mq->bounce_sg) { if (!mq->bounce_sg) {
ret = -ENOMEM; ret = -ENOMEM;
goto free_sg; goto cleanup_queue;
} }
} }
} }
...@@ -197,14 +198,13 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock ...@@ -197,14 +198,13 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock
if (mq->bounce_sg) if (mq->bounce_sg)
kfree(mq->bounce_sg); kfree(mq->bounce_sg);
mq->bounce_sg = NULL; mq->bounce_sg = NULL;
free_sg: cleanup_queue:
kfree(mq->sg); if (mq->sg)
kfree(mq->sg);
mq->sg = NULL; mq->sg = NULL;
free_bounce_buf:
if (mq->bounce_buf) if (mq->bounce_buf)
kfree(mq->bounce_buf); kfree(mq->bounce_buf);
mq->bounce_buf = NULL; mq->bounce_buf = NULL;
cleanup_queue:
blk_cleanup_queue(mq->queue); blk_cleanup_queue(mq->queue);
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册