mmc: core: retries counter for data command initialization.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All,

After 6035d9730d5825e6e3c225b721a5847a521d6556 "mmc: fix async request mechanism for sequential read scenarios" mmc layer data path async request handling was separated from mmc commands path.

mmc_wait_for_data_req_done() function is used to wait for completion of the currently running data request, while for commands mmc_wait_for_req_done() is used.

There is code that repeats request cmd->retries times in case of error.
The problem that for data command this counter is not initialized properly as it does for mmc command sending:


int mmc_wait_for_cmd(struct mmc_host *host, struct mmc_command *cmd, int retries)
{
	struct mmc_request mrq = {NULL};

	WARN_ON(!host->claimed);

	memset(cmd->resp, 0, sizeof(cmd->resp));
	cmd->retries = retries;                 <-- supplied by
                                                    caller

	mrq.cmd = cmd;
	cmd->data = NULL;

	mmc_wait_for_req(host, &mrq);

	return cmd->error;
}

I found that there is no similar initialization for data command processing code, so the counter cmd->retries remains always 0.

Lets discuss:
- do we need retries for data request
- what value is good: for command there are 0 or 5 retries
- where to do this initialization:card/block.c:mmc_wait_for_req_done()  ?

Thanks,
Kostya

--
sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
--
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




[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux