From 867e1ee395d845f49ae280c3d8f5271b214fa7e4 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Thu, 24 Apr 2014 20:05:14 +0200 Subject: 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 Cc: Herbert Xu Cc: Horia Geanta Signed-off-by: Herbert Xu --- drivers/crypto/caam/error.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'drivers/crypto/caam') diff --git a/drivers/crypto/caam/error.c b/drivers/crypto/caam/error.c index 3d7be4c05008..961331d1b6ab 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); } -- cgit v1.2.3