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: Pierre Ossman <drzeus@drzeus.cx>
This commit is contained in:
parent
b3627bb19f
commit
aafabfab26
1 changed files with 7 additions and 7 deletions
|
@ -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
|
||||||
|
|
||||||
#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
|
||||||
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
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue