summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2014-04-24 18:05:14 (GMT)
committerHerbert Xu <herbert@gondor.apana.org.au>2014-05-08 13:58:07 (GMT)
commit867e1ee395d845f49ae280c3d8f5271b214fa7e4 (patch)
tree7f8684e1655142155c7060cfb42132f0e9af0b62
parent9724d7adbb34b067b844b97599c1a5905229aa2b (diff)
downloadlinux-867e1ee395d845f49ae280c3d8f5271b214fa7e4.tar.xz
crypto: caam - Implement fast-path for error codes with no handler
Implement fast-path error code printout for errors with no associated handler function. This reduces calls to this kmalloc() nonsense in SPRINTFCAT() already. Note that the format of output is compatible with the old code, even if -- exposed like this -- it looks a bit weird. Checkpatch complains on this one as well. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Herbert Xu <herbert@gondor.apana.org.au> Cc: Horia Geanta <horia.geanta@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--drivers/crypto/caam/error.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/crypto/caam/error.c b/drivers/crypto/caam/error.c
index 3d7be4c..961331d 100644
--- a/drivers/crypto/caam/error.c
+++ b/drivers/crypto/caam/error.c
@@ -265,10 +265,18 @@ void caam_jr_strstatus(struct device *jrdev, u32 status)
};
u32 ssrc = status >> JRSTA_SSRC_SHIFT;
+ /*
+ * If there is no further error handling function, just
+ * print the error code, error string and exit.
+ */
+ if (!status_src[ssrc].report_ssed) {
+ dev_err(jrdev, "%08x: %s: \n", status, status_src[ssrc].error);
+ return;
+ }
+
sprintf(outstr, "%s: ", status_src[ssrc].error);
- if (status_src[ssrc].report_ssed)
- status_src[ssrc].report_ssed(status, outstr);
+ status_src[ssrc].report_ssed(status, outstr);
dev_err(jrdev, "%08x: %s\n", status, outstr);
}