!IS_ALIGNED(blk_rq_sectors(rqc), 8)) {
pr_err("%s: Transfer size is not 4KB sector size aligned\n",
rqc->rq_disk->disk_name);
- req = rqc;
- rqc = NULL;
- goto cmd_abort;
+ mmc_blk_rw_cmd_abort(card, rqc);
+ return 0;
}
mmc_blk_rw_rq_prep(mq->mqrq_cur, card, 0, mq);
areq = NULL;
areq = mmc_start_req(card->host, areq, &status);
if (!areq) {
+ /*
+ * We have just put the first request into the pipeline
+ * and there is nothing more to do until it is
+ * complete.
+ */
if (status == MMC_BLK_NEW_REQUEST)
mq->flags |= MMC_QUEUE_NEW_REQUEST;
return 0;
}
+ /*
+ * An asynchronous request has been completed and we proceed
+ * to handle the result of it.
+ */
mq_rq = container_of(areq, struct mmc_queue_req, mmc_active);
brq = &mq_rq->brq;
req = mq_rq->req;
pr_err("%s BUG rq_tot %d d_xfer %d\n",
__func__, blk_rq_bytes(req),
brq->data.bytes_xfered);
- rqc = NULL;
- goto cmd_abort;
+ mmc_blk_rw_cmd_abort(card, req);
+ return 0;
}
break;
case MMC_BLK_CMD_ERR: