浏览代码

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>
Marek Vasut 11 年之前
父节点
当前提交
867e1ee395
共有 1 个文件被更改,包括 10 次插入2 次删除
  1. 10 2
      drivers/crypto/caam/error.c

+ 10 - 2
drivers/crypto/caam/error.c

@@ -265,10 +265,18 @@ void caam_jr_strstatus(struct device *jrdev, u32 status)
 	};
 	};
 	u32 ssrc = status >> JRSTA_SSRC_SHIFT;
 	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);
 	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);
 	dev_err(jrdev, "%08x: %s\n", status, outstr);
 }
 }