Skip to content

Commit

Permalink
mmc: correct request error handling
Browse files Browse the repository at this point in the history
We need to jump to the part of just flushing the request
when we cannot claim the bus. Sending commands to a bus
we do not own will give unpredictable results.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
  • Loading branch information
Pierre Ossman committed Dec 1, 2006
1 parent 89b4e13 commit 8b7feff
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions drivers/mmc/mmc_block.c
Original file line number Diff line number Diff line change
Expand Up @@ -224,10 +224,10 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
struct mmc_blk_data *md = mq->data;
struct mmc_card *card = md->queue.card;
struct mmc_blk_request brq;
int ret;
int ret = 1;

if (mmc_card_claim_host(card))
goto cmd_err;
goto flush_queue;

do {
struct mmc_command cmd;
Expand Down Expand Up @@ -344,8 +344,6 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
return 1;

cmd_err:
ret = 1;

/*
* If this is an SD card and we're writing, we can first
* mark the known good sectors as ok.
Expand Down Expand Up @@ -379,6 +377,7 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)

mmc_card_release_host(card);

flush_queue:
spin_lock_irq(&md->lock);
while (ret) {
ret = end_that_request_chunk(req, 0,
Expand Down

0 comments on commit 8b7feff

Please sign in to comment.