mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
crypto: caam - Pass error type into the functions
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> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
867e1ee395
commit
8a47582682
1 changed files with 21 additions and 10 deletions
|
@ -181,12 +181,15 @@ static void report_jump_idx(u32 status, char *outstr)
|
||||||
SPRINTFCAT(outstr, "%d: ", idx, sizeof("255"));
|
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) >>
|
u8 cha_id = (status & JRSTA_CCBERR_CHAID_MASK) >>
|
||||||
JRSTA_CCBERR_CHAID_SHIFT;
|
JRSTA_CCBERR_CHAID_SHIFT;
|
||||||
u8 err_id = status & JRSTA_CCBERR_ERRID_MASK;
|
u8 err_id = status & JRSTA_CCBERR_ERRID_MASK;
|
||||||
|
|
||||||
|
sprintf(outstr, "%s: ", error);
|
||||||
|
|
||||||
report_jump_idx(status, outstr);
|
report_jump_idx(status, outstr);
|
||||||
|
|
||||||
if (cha_id < ARRAY_SIZE(cha_id_list)) {
|
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__));
|
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;
|
u8 desc_error = status & JRSTA_DECOERR_ERROR_MASK;
|
||||||
int i;
|
int i;
|
||||||
|
sprintf(outstr, "%s: ", error);
|
||||||
|
|
||||||
report_jump_idx(status, outstr);
|
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__));
|
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__));
|
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];
|
char outstr[CAAM_ERROR_STR_MAX];
|
||||||
static const struct stat_src {
|
static const struct stat_src {
|
||||||
void (*report_ssed)(u32 status, char *outstr);
|
void (*report_ssed)(struct device *jrdev, u32 status,
|
||||||
char *error;
|
const char *error, char *outstr);
|
||||||
|
const char *error;
|
||||||
} status_src[] = {
|
} status_src[] = {
|
||||||
{ NULL, "No error" },
|
{ NULL, "No error" },
|
||||||
{ NULL, NULL },
|
{ NULL, NULL },
|
||||||
|
@ -274,9 +286,8 @@ void caam_jr_strstatus(struct device *jrdev, u32 status)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sprintf(outstr, "%s: ", status_src[ssrc].error);
|
status_src[ssrc].report_ssed(jrdev, status,
|
||||||
|
status_src[ssrc].error, outstr);
|
||||||
status_src[ssrc].report_ssed(status, outstr);
|
|
||||||
|
|
||||||
dev_err(jrdev, "%08x: %s\n", status, outstr);
|
dev_err(jrdev, "%08x: %s\n", status, outstr);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue