From: Marek Vasut <marex@denx.de>
To: linux-crypto@vger.kernel.org
Cc: Marek Vasut <marex@denx.de>,
Herbert Xu <herbert@gondor.apana.org.au>,
Horia Geanta <horia.geanta@freescale.com>
Subject: [PATCH 04/11] crypto: caam: Pass error type into the functions
Date: Thu, 24 Apr 2014 20:05:15 +0200 [thread overview]
Message-ID: <1398362722-16430-5-git-send-email-marex@denx.de> (raw)
In-Reply-To: <1398362722-16430-1-git-send-email-marex@denx.de>
Pass the error type string into the functions, so they can handle
the printing of the string. This is now still using the very unsafe
sprintf(), but we will fix that.
While at this, pass the device pointer too, so we can dev_err()
functions readily when we start fixing this proper.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Horia Geanta <horia.geanta@freescale.com>
---
drivers/crypto/caam/error.c | 31 +++++++++++++++++++++----------
1 file changed, 21 insertions(+), 10 deletions(-)
diff --git a/drivers/crypto/caam/error.c b/drivers/crypto/caam/error.c
index 961331d..7ce1d03 100644
--- a/drivers/crypto/caam/error.c
+++ b/drivers/crypto/caam/error.c
@@ -181,12 +181,15 @@ static void report_jump_idx(u32 status, char *outstr)
SPRINTFCAT(outstr, "%d: ", idx, sizeof("255"));
}
-static void report_ccb_status(u32 status, char *outstr)
+static void report_ccb_status(struct device *jrdev, u32 status,
+ const char *error, char *outstr)
{
u8 cha_id = (status & JRSTA_CCBERR_CHAID_MASK) >>
JRSTA_CCBERR_CHAID_SHIFT;
u8 err_id = status & JRSTA_CCBERR_ERRID_MASK;
+ sprintf(outstr, "%s: ", error);
+
report_jump_idx(status, outstr);
if (cha_id < ARRAY_SIZE(cha_id_list)) {
@@ -212,15 +215,19 @@ static void report_ccb_status(u32 status, char *outstr)
}
}
-static void report_jump_status(u32 status, char *outstr)
+static void report_jump_status(struct device *jrdev, u32 status,
+ const char *error, char *outstr)
{
+ sprintf(outstr, "%s: ", error);
SPRINTFCAT(outstr, "%s() not implemented", __func__, sizeof(__func__));
}
-static void report_deco_status(u32 status, char *outstr)
+static void report_deco_status(struct device *jrdev, u32 status,
+ const char *error, char *outstr)
{
u8 desc_error = status & JRSTA_DECOERR_ERROR_MASK;
int i;
+ sprintf(outstr, "%s: ", error);
report_jump_idx(status, outstr);
@@ -237,13 +244,17 @@ static void report_deco_status(u32 status, char *outstr)
}
}
-static void report_jr_status(u32 status, char *outstr)
+static void report_jr_status(struct device *jrdev, u32 status,
+ const char *error, char *outstr)
{
+ sprintf(outstr, "%s: ", error);
SPRINTFCAT(outstr, "%s() not implemented", __func__, sizeof(__func__));
}
-static void report_cond_code_status(u32 status, char *outstr)
+static void report_cond_code_status(struct device *jrdev, u32 status,
+ const char *error, char *outstr)
{
+ sprintf(outstr, "%s: ", error);
SPRINTFCAT(outstr, "%s() not implemented", __func__, sizeof(__func__));
}
@@ -251,8 +262,9 @@ void caam_jr_strstatus(struct device *jrdev, u32 status)
{
char outstr[CAAM_ERROR_STR_MAX];
static const struct stat_src {
- void (*report_ssed)(u32 status, char *outstr);
- char *error;
+ void (*report_ssed)(struct device *jrdev, u32 status,
+ const char *error, char *outstr);
+ const char *error;
} status_src[] = {
{ NULL, "No error" },
{ NULL, NULL },
@@ -274,9 +286,8 @@ void caam_jr_strstatus(struct device *jrdev, u32 status)
return;
}
- sprintf(outstr, "%s: ", status_src[ssrc].error);
-
- status_src[ssrc].report_ssed(status, outstr);
+ status_src[ssrc].report_ssed(jrdev, status,
+ status_src[ssrc].error, outstr);
dev_err(jrdev, "%08x: %s\n", status, outstr);
}
--
1.9.2
next prev parent reply other threads:[~2014-04-24 18:05 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-24 18:05 [PATCH 00/11] crypto: caam: Error reporting fixes Marek Vasut
2014-04-24 18:05 ` [PATCH 01/11] crypto: caam: Contain caam_jr_strstatus() ugliness Marek Vasut
2014-04-24 18:05 ` [PATCH 02/11] crypto: caam: Pull all the error codes out Marek Vasut
2014-04-24 18:05 ` [PATCH 03/11] crypto: caam: Implement fast-path for error codes with no handler Marek Vasut
2014-04-24 18:05 ` Marek Vasut [this message]
2014-04-24 18:05 ` [PATCH 05/11] crypto: caam: Kill the easy targets Marek Vasut
2014-04-24 18:05 ` [PATCH 06/11] crypto: caam: Dissolve report_jump_idx() Marek Vasut
2014-04-24 18:05 ` [PATCH 07/11] crypto: caam: Clean up report_ccb_status() Marek Vasut
2014-04-24 18:05 ` [PATCH 08/11] crypto: caam: Clean up report_deco_status() Marek Vasut
2014-04-24 18:05 ` [PATCH 09/11] crypto: caam: Kill SPRINTFCAT() with fire Marek Vasut
2014-04-24 18:05 ` [PATCH 10/11] crypto: caam: Sweep the remnants Marek Vasut
2014-04-24 18:05 ` [PATCH 11/11] crypto: caam: Fix the 'quoted string split across lines' Marek Vasut
2014-04-25 18:20 ` [PATCH 00/11] crypto: caam: Error reporting fixes Kees Cook
2014-05-08 14:01 ` Herbert Xu
2014-05-08 14:50 ` Marek Vasut
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1398362722-16430-5-git-send-email-marex@denx.de \
--to=marex@denx.de \
--cc=herbert@gondor.apana.org.au \
--cc=horia.geanta@freescale.com \
--cc=linux-crypto@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).