Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4f0fa52a authored by Marek Vasut's avatar Marek Vasut Committed by Herbert Xu
Browse files

crypto: caam - Clean up report_deco_status()



Clean this function up and rework it into sensible shape. This function
now contains one single dev_err() instead of the previous insanity full
of memory allocation, chaotic string handling and use of SPRINTFCAT().

Signed-off-by: default avatarMarek Vasut <marex@denx.de>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Horia Geanta <horia.geanta@freescale.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 1e16322d
Loading
Loading
Loading
Loading
+13 −18
Original line number Diff line number Diff line
@@ -218,35 +218,30 @@ static void report_jump_status(struct device *jrdev, u32 status,
static void report_deco_status(struct device *jrdev, u32 status,
			       const char *error, char *__outstr)
{
	char outstr[CAAM_ERROR_STR_MAX];

	u8 desc_error = status & JRSTA_DECOERR_ERROR_MASK;
	u8 err_id = status & JRSTA_DECOERR_ERROR_MASK;
	u8 idx = (status & JRSTA_DECOERR_INDEX_MASK) >>
		  JRSTA_DECOERR_INDEX_SHIFT;

	char *idx_str;
	char *err_str = "unidentified error value 0x";
	char err_err_code[3] = { 0 };
	int i;
	sprintf(outstr, "%s: ", error);

	if (status & JRSTA_DECOERR_JUMP)
		strcat(outstr, "jump tgt desc idx ");
		idx_str = "jump tgt desc idx";
	else
		strcat(outstr, "desc idx ");

	SPRINTFCAT(outstr, "%d: ", idx, sizeof("255"));
		idx_str = "desc idx";

	for (i = 0; i < ARRAY_SIZE(desc_error_list); i++)
		if (desc_error_list[i].value == desc_error)
		if (desc_error_list[i].value == err_id)
			break;

	if (i != ARRAY_SIZE(desc_error_list) && desc_error_list[i].error_text) {
		SPRINTFCAT(outstr, "%s", desc_error_list[i].error_text,
			   strlen(desc_error_list[i].error_text));
	} else {
		SPRINTFCAT(outstr, "unidentified error value 0x%02x",
			   desc_error, sizeof("ff"));
	}
	if (i != ARRAY_SIZE(desc_error_list) && desc_error_list[i].error_text)
		err_str = desc_error_list[i].error_text;
	else
		snprintf(err_err_code, sizeof(err_err_code), "%02x", err_id);

	dev_err(jrdev, "%08x: %s\n", status, outstr);
	dev_err(jrdev, "%08x: %s: %s %d: %s%s\n",
		status, error, idx_str, idx, err_str, err_err_code);
}

static void report_jr_status(struct device *jrdev, u32 status,