Re: [PATCH 2/2] mmc_block: ensure all sectors that do not have errors are read

From: Bernd Eckenfels
Date: Mon Dec 22 2008 - 08:23:18 EST


In article <494F7A02.2030302@xxxxxxxxx> you wrote:
> + /*
> + * After a read error, we redo the request one sector at a time
> + * in order to accurately determine which sectors can be read
> + * successfully.
> + */
> + if (disable_multi && brq.data.blocks > 1)
> + brq.data.blocks = 1;
> +
> if (brq.data.blocks > 1) {
> /* SPI multiblock writes terminate using a special
> * token, not a STOP_TRANSMISSION request.

We would save an comparision here if we use it like this:

...
if (brq.data.blocks > 1) {

/*
* After a read error, we redo the request one sector at a time
* in order to accurately determine which sectors can be read
* successfully.
*/
if (disable_multi)
brq.data.blocks = 1;

/* SPI multiblock writes terminate using a special
...


> + if (brq.cmd.error || brq.data.error || brq.stop.error) {
> + if (brq.data.blocks > 1 && rq_data_dir(req) == READ) {
> + /* Redo read one sector at a time */
> + printk(KERN_WARNING "%s: retrying using single "
> + "block read\n", req->rq_disk->disk_name);
> + disable_multi = 1;
> + continue;
> + }

Will this flood the logs?

Gruss
Bernd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/