> Maya Erez wrote: >> >> >> On Wed, Nov 2, 2011 at 1:33 PM, Seungwon Jeon >> <tgih.jun@xxxxxxxxxxx> >> >> wrote: >> >> >> > @@ -980,12 +988,67 @@ static int mmc_blk_err_check(struct >> mmc_card >> >> *card, >> >> >> > if (!brq->data.bytes_xfered) >> >> >> > return MMC_BLK_RETRY; >> >> >> > >> >> >> > + if (mq_mrq->packed_cmd != MMC_PACKED_NONE) { >> >> >> > + if (unlikely(brq->data.blocks << 9 != >> >> brq->data.bytes_xfered)) >> >> >> > + return MMC_BLK_PARTIAL; >> >> >> > + else >> >> >> > + return MMC_BLK_SUCCESS; >> >> >> > + } >> >> >> > + >> >> >> > if (blk_rq_bytes(req) != brq->data.bytes_xfered) >> >> >> > return MMC_BLK_PARTIAL; >> >> >> > >> >> >> > return MMC_BLK_SUCCESS; >> >> >> > } >> >> >> > >> >> >> > +static int mmc_blk_packed_err_check(struct mmc_card *card, + >> struct mmc_async_req *areq) >> >> >> > +{ >> >> >> > + struct mmc_queue_req *mq_mrq = container_of(areq, struct >> >> mmc_queue_req, >> >> >> > + mmc_active); >> + >> int err, check, status; >> >> >> > + u8 ext_csd[512]; >> >> >> > + >> >> >> > + check = mmc_blk_err_check(card, areq); >> >> >> > + >> >> >> > + if (check == MMC_BLK_SUCCESS) >> >> >> > + return check; >> I think we need to check the status for all cases and not only in case >> of >> MMC_BLK_PARTIAL. For example, in cases where the header was traferred >> successfully but had logic errors (wrong number of sectors etc.) >> mmc_blk_err_check will return MMC_BLK_SUCCESS although the packed >> commands >> failed. > Similarly, Sahitya Tummala is already mentioned this. > Other error case will be checked in next version. > The case you suggested is about read or write? > Device may detect error and stop transferring the data. Sahitya suggested to also check other error cases that mmc_blk_err_check returns (such as MMC_BLK_CMD_ERR, MMC_BLK_ECC_ERR and MMC_BLK_DATA_ERR). I suggest to also check the exception bit in the status even if mmc_blk_err_check returned success, since mmc_blk_err_check might not catch all the packed commands failures. One example for such a failure is when the header of read packed commands will have logical error. Thanks, Maya -- Seny by a Consultant for Qualcomm innovation center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html