Commit 817b804c authored by Tudor Ambarus's avatar Tudor Ambarus Committed by Herbert Xu
Browse files

crypto: atmel-tdes - Handle error messages



Downgrade all runtime error messages to dev_dbg so that we don't
pollute the console. All probe error messages are kept with dev_err.
Get rid of pr_err and use dev_dbg instead, so that we know from which
device the error comes.
dma_mapping_error() return code was overwritten, use the error code
that the function returns.

Signed-off-by: default avatarTudor Ambarus <tudor.ambarus@microchip.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 632a761a
Loading
Loading
Loading
Loading
+16 −17
Original line number Original line Diff line number Diff line
@@ -312,7 +312,7 @@ static int atmel_tdes_crypt_pdc_stop(struct atmel_tdes_dev *dd)
				dd->buf_out, dd->buflen, dd->dma_size, 1);
				dd->buf_out, dd->buflen, dd->dma_size, 1);
		if (count != dd->dma_size) {
		if (count != dd->dma_size) {
			err = -EINVAL;
			err = -EINVAL;
			pr_err("not all data converted: %zu\n", count);
			dev_dbg(dd->dev, "not all data converted: %zu\n", count);
		}
		}
	}
	}


@@ -329,24 +329,24 @@ static int atmel_tdes_buff_init(struct atmel_tdes_dev *dd)
	dd->buflen &= ~(DES_BLOCK_SIZE - 1);
	dd->buflen &= ~(DES_BLOCK_SIZE - 1);


	if (!dd->buf_in || !dd->buf_out) {
	if (!dd->buf_in || !dd->buf_out) {
		dev_err(dd->dev, "unable to alloc pages.\n");
		dev_dbg(dd->dev, "unable to alloc pages.\n");
		goto err_alloc;
		goto err_alloc;
	}
	}


	/* MAP here */
	/* MAP here */
	dd->dma_addr_in = dma_map_single(dd->dev, dd->buf_in,
	dd->dma_addr_in = dma_map_single(dd->dev, dd->buf_in,
					dd->buflen, DMA_TO_DEVICE);
					dd->buflen, DMA_TO_DEVICE);
	if (dma_mapping_error(dd->dev, dd->dma_addr_in)) {
	err = dma_mapping_error(dd->dev, dd->dma_addr_in);
		dev_err(dd->dev, "dma %zd bytes error\n", dd->buflen);
	if (err) {
		err = -EINVAL;
		dev_dbg(dd->dev, "dma %zd bytes error\n", dd->buflen);
		goto err_map_in;
		goto err_map_in;
	}
	}


	dd->dma_addr_out = dma_map_single(dd->dev, dd->buf_out,
	dd->dma_addr_out = dma_map_single(dd->dev, dd->buf_out,
					dd->buflen, DMA_FROM_DEVICE);
					dd->buflen, DMA_FROM_DEVICE);
	if (dma_mapping_error(dd->dev, dd->dma_addr_out)) {
	err = dma_mapping_error(dd->dev, dd->dma_addr_out);
		dev_err(dd->dev, "dma %zd bytes error\n", dd->buflen);
	if (err) {
		err = -EINVAL;
		dev_dbg(dd->dev, "dma %zd bytes error\n", dd->buflen);
		goto err_map_out;
		goto err_map_out;
	}
	}


@@ -359,8 +359,6 @@ static int atmel_tdes_buff_init(struct atmel_tdes_dev *dd)
err_alloc:
err_alloc:
	free_page((unsigned long)dd->buf_out);
	free_page((unsigned long)dd->buf_out);
	free_page((unsigned long)dd->buf_in);
	free_page((unsigned long)dd->buf_in);
	if (err)
		pr_err("error: %d\n", err);
	return err;
	return err;
}
}


@@ -512,14 +510,14 @@ static int atmel_tdes_crypt_start(struct atmel_tdes_dev *dd)


		err = dma_map_sg(dd->dev, dd->in_sg, 1, DMA_TO_DEVICE);
		err = dma_map_sg(dd->dev, dd->in_sg, 1, DMA_TO_DEVICE);
		if (!err) {
		if (!err) {
			dev_err(dd->dev, "dma_map_sg() error\n");
			dev_dbg(dd->dev, "dma_map_sg() error\n");
			return -EINVAL;
			return -EINVAL;
		}
		}


		err = dma_map_sg(dd->dev, dd->out_sg, 1,
		err = dma_map_sg(dd->dev, dd->out_sg, 1,
				DMA_FROM_DEVICE);
				DMA_FROM_DEVICE);
		if (!err) {
		if (!err) {
			dev_err(dd->dev, "dma_map_sg() error\n");
			dev_dbg(dd->dev, "dma_map_sg() error\n");
			dma_unmap_sg(dd->dev, dd->in_sg, 1,
			dma_unmap_sg(dd->dev, dd->in_sg, 1,
				DMA_TO_DEVICE);
				DMA_TO_DEVICE);
			return -EINVAL;
			return -EINVAL;
@@ -670,7 +668,7 @@ static int atmel_tdes_crypt_dma_stop(struct atmel_tdes_dev *dd)
				dd->buf_out, dd->buflen, dd->dma_size, 1);
				dd->buf_out, dd->buflen, dd->dma_size, 1);
			if (count != dd->dma_size) {
			if (count != dd->dma_size) {
				err = -EINVAL;
				err = -EINVAL;
				pr_err("not all data converted: %zu\n", count);
				dev_dbg(dd->dev, "not all data converted: %zu\n", count);
			}
			}
		}
		}
	}
	}
@@ -682,11 +680,12 @@ static int atmel_tdes_crypt(struct skcipher_request *req, unsigned long mode)
	struct crypto_skcipher *skcipher = crypto_skcipher_reqtfm(req);
	struct crypto_skcipher *skcipher = crypto_skcipher_reqtfm(req);
	struct atmel_tdes_ctx *ctx = crypto_skcipher_ctx(skcipher);
	struct atmel_tdes_ctx *ctx = crypto_skcipher_ctx(skcipher);
	struct atmel_tdes_reqctx *rctx = skcipher_request_ctx(req);
	struct atmel_tdes_reqctx *rctx = skcipher_request_ctx(req);
	struct device *dev = ctx->dd->dev;


	switch (mode & TDES_FLAGS_OPMODE_MASK) {
	switch (mode & TDES_FLAGS_OPMODE_MASK) {
	case TDES_FLAGS_CFB8:
	case TDES_FLAGS_CFB8:
		if (!IS_ALIGNED(req->cryptlen, CFB8_BLOCK_SIZE)) {
		if (!IS_ALIGNED(req->cryptlen, CFB8_BLOCK_SIZE)) {
			pr_err("request size is not exact amount of CFB8 blocks\n");
			dev_dbg(dev, "request size is not exact amount of CFB8 blocks\n");
			return -EINVAL;
			return -EINVAL;
		}
		}
		ctx->block_size = CFB8_BLOCK_SIZE;
		ctx->block_size = CFB8_BLOCK_SIZE;
@@ -694,7 +693,7 @@ static int atmel_tdes_crypt(struct skcipher_request *req, unsigned long mode)


	case TDES_FLAGS_CFB16:
	case TDES_FLAGS_CFB16:
		if (!IS_ALIGNED(req->cryptlen, CFB16_BLOCK_SIZE)) {
		if (!IS_ALIGNED(req->cryptlen, CFB16_BLOCK_SIZE)) {
			pr_err("request size is not exact amount of CFB16 blocks\n");
			dev_dbg(dev, "request size is not exact amount of CFB16 blocks\n");
			return -EINVAL;
			return -EINVAL;
		}
		}
		ctx->block_size = CFB16_BLOCK_SIZE;
		ctx->block_size = CFB16_BLOCK_SIZE;
@@ -702,7 +701,7 @@ static int atmel_tdes_crypt(struct skcipher_request *req, unsigned long mode)


	case TDES_FLAGS_CFB32:
	case TDES_FLAGS_CFB32:
		if (!IS_ALIGNED(req->cryptlen, CFB32_BLOCK_SIZE)) {
		if (!IS_ALIGNED(req->cryptlen, CFB32_BLOCK_SIZE)) {
			pr_err("request size is not exact amount of CFB32 blocks\n");
			dev_dbg(dev, "request size is not exact amount of CFB32 blocks\n");
			return -EINVAL;
			return -EINVAL;
		}
		}
		ctx->block_size = CFB32_BLOCK_SIZE;
		ctx->block_size = CFB32_BLOCK_SIZE;
@@ -710,7 +709,7 @@ static int atmel_tdes_crypt(struct skcipher_request *req, unsigned long mode)


	default:
	default:
		if (!IS_ALIGNED(req->cryptlen, DES_BLOCK_SIZE)) {
		if (!IS_ALIGNED(req->cryptlen, DES_BLOCK_SIZE)) {
			pr_err("request size is not exact amount of DES blocks\n");
			dev_dbg(dev, "request size is not exact amount of DES blocks\n");
			return -EINVAL;
			return -EINVAL;
		}
		}
		ctx->block_size = DES_BLOCK_SIZE;
		ctx->block_size = DES_BLOCK_SIZE;