crypto: caam/qi - fix compilation with DEBUG enabled
caam/qi driver does not compile when DEBUG is enabled
(CRYPTO_DEV_FSL_CAAM_DEBUG=y):
drivers/crypto/caam/caamalg_qi.c: In function 'ablkcipher_done':
drivers/crypto/caam/caamalg_qi.c:794:2: error: implicit declaration of function 'dbg_dump_sg' [-Werror=implicit-function-declaration]
dbg_dump_sg(KERN_ERR, "dst @" __stringify(__LINE__)": ",
Since dbg_dump_sg() is shared between caam/jr and caam/qi, move it
in a shared location and export it.
At the same time:
-reduce ifdeferry by providing a no-op implementation for !DEBUG case
-rename it to caam_dump_sg() to be consistent in terms of
exported symbols namespace (caam_*)
Cc: <stable@vger.kernel.org>
Fixes: b189817cf7
("crypto: caam/qi - add ablkcipher and authenc algorithms")
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
hifive-unleashed-5.1
parent
84ea95436b
commit
972b812bd1
|
@ -81,40 +81,6 @@
|
||||||
#define debug(format, arg...)
|
#define debug(format, arg...)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
#include <linux/highmem.h>
|
|
||||||
|
|
||||||
static void dbg_dump_sg(const char *level, const char *prefix_str,
|
|
||||||
int prefix_type, int rowsize, int groupsize,
|
|
||||||
struct scatterlist *sg, size_t tlen, bool ascii)
|
|
||||||
{
|
|
||||||
struct scatterlist *it;
|
|
||||||
void *it_page;
|
|
||||||
size_t len;
|
|
||||||
void *buf;
|
|
||||||
|
|
||||||
for (it = sg; it != NULL && tlen > 0 ; it = sg_next(sg)) {
|
|
||||||
/*
|
|
||||||
* make sure the scatterlist's page
|
|
||||||
* has a valid virtual memory mapping
|
|
||||||
*/
|
|
||||||
it_page = kmap_atomic(sg_page(it));
|
|
||||||
if (unlikely(!it_page)) {
|
|
||||||
printk(KERN_ERR "dbg_dump_sg: kmap failed\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
buf = it_page + it->offset;
|
|
||||||
len = min_t(size_t, tlen, it->length);
|
|
||||||
print_hex_dump(level, prefix_str, prefix_type, rowsize,
|
|
||||||
groupsize, buf, len, ascii);
|
|
||||||
tlen -= len;
|
|
||||||
|
|
||||||
kunmap_atomic(it_page);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static struct list_head alg_list;
|
static struct list_head alg_list;
|
||||||
|
|
||||||
struct caam_alg_entry {
|
struct caam_alg_entry {
|
||||||
|
@ -898,10 +864,10 @@ static void ablkcipher_encrypt_done(struct device *jrdev, u32 *desc, u32 err,
|
||||||
print_hex_dump(KERN_ERR, "dstiv @"__stringify(__LINE__)": ",
|
print_hex_dump(KERN_ERR, "dstiv @"__stringify(__LINE__)": ",
|
||||||
DUMP_PREFIX_ADDRESS, 16, 4, req->info,
|
DUMP_PREFIX_ADDRESS, 16, 4, req->info,
|
||||||
edesc->src_nents > 1 ? 100 : ivsize, 1);
|
edesc->src_nents > 1 ? 100 : ivsize, 1);
|
||||||
dbg_dump_sg(KERN_ERR, "dst @"__stringify(__LINE__)": ",
|
|
||||||
DUMP_PREFIX_ADDRESS, 16, 4, req->dst,
|
|
||||||
edesc->dst_nents > 1 ? 100 : req->nbytes, 1);
|
|
||||||
#endif
|
#endif
|
||||||
|
caam_dump_sg(KERN_ERR, "dst @" __stringify(__LINE__)": ",
|
||||||
|
DUMP_PREFIX_ADDRESS, 16, 4, req->dst,
|
||||||
|
edesc->dst_nents > 1 ? 100 : req->nbytes, 1);
|
||||||
|
|
||||||
ablkcipher_unmap(jrdev, edesc, req);
|
ablkcipher_unmap(jrdev, edesc, req);
|
||||||
|
|
||||||
|
@ -937,10 +903,10 @@ static void ablkcipher_decrypt_done(struct device *jrdev, u32 *desc, u32 err,
|
||||||
print_hex_dump(KERN_ERR, "dstiv @"__stringify(__LINE__)": ",
|
print_hex_dump(KERN_ERR, "dstiv @"__stringify(__LINE__)": ",
|
||||||
DUMP_PREFIX_ADDRESS, 16, 4, req->info,
|
DUMP_PREFIX_ADDRESS, 16, 4, req->info,
|
||||||
ivsize, 1);
|
ivsize, 1);
|
||||||
dbg_dump_sg(KERN_ERR, "dst @"__stringify(__LINE__)": ",
|
|
||||||
DUMP_PREFIX_ADDRESS, 16, 4, req->dst,
|
|
||||||
edesc->dst_nents > 1 ? 100 : req->nbytes, 1);
|
|
||||||
#endif
|
#endif
|
||||||
|
caam_dump_sg(KERN_ERR, "dst @" __stringify(__LINE__)": ",
|
||||||
|
DUMP_PREFIX_ADDRESS, 16, 4, req->dst,
|
||||||
|
edesc->dst_nents > 1 ? 100 : req->nbytes, 1);
|
||||||
|
|
||||||
ablkcipher_unmap(jrdev, edesc, req);
|
ablkcipher_unmap(jrdev, edesc, req);
|
||||||
|
|
||||||
|
@ -1107,10 +1073,10 @@ static void init_ablkcipher_job(u32 *sh_desc, dma_addr_t ptr,
|
||||||
ivsize, 1);
|
ivsize, 1);
|
||||||
pr_err("asked=%d, nbytes%d\n",
|
pr_err("asked=%d, nbytes%d\n",
|
||||||
(int)edesc->src_nents > 1 ? 100 : req->nbytes, req->nbytes);
|
(int)edesc->src_nents > 1 ? 100 : req->nbytes, req->nbytes);
|
||||||
dbg_dump_sg(KERN_ERR, "src @"__stringify(__LINE__)": ",
|
|
||||||
DUMP_PREFIX_ADDRESS, 16, 4, req->src,
|
|
||||||
edesc->src_nents > 1 ? 100 : req->nbytes, 1);
|
|
||||||
#endif
|
#endif
|
||||||
|
caam_dump_sg(KERN_ERR, "src @" __stringify(__LINE__)": ",
|
||||||
|
DUMP_PREFIX_ADDRESS, 16, 4, req->src,
|
||||||
|
edesc->src_nents > 1 ? 100 : req->nbytes, 1);
|
||||||
|
|
||||||
len = desc_len(sh_desc);
|
len = desc_len(sh_desc);
|
||||||
init_job_desc_shared(desc, ptr, len, HDR_SHARE_DEFER | HDR_REVERSE);
|
init_job_desc_shared(desc, ptr, len, HDR_SHARE_DEFER | HDR_REVERSE);
|
||||||
|
@ -1164,10 +1130,10 @@ static void init_ablkcipher_giv_job(u32 *sh_desc, dma_addr_t ptr,
|
||||||
print_hex_dump(KERN_ERR, "presciv@" __stringify(__LINE__) ": ",
|
print_hex_dump(KERN_ERR, "presciv@" __stringify(__LINE__) ": ",
|
||||||
DUMP_PREFIX_ADDRESS, 16, 4, req->info,
|
DUMP_PREFIX_ADDRESS, 16, 4, req->info,
|
||||||
ivsize, 1);
|
ivsize, 1);
|
||||||
dbg_dump_sg(KERN_ERR, "src @" __stringify(__LINE__) ": ",
|
|
||||||
DUMP_PREFIX_ADDRESS, 16, 4, req->src,
|
|
||||||
edesc->src_nents > 1 ? 100 : req->nbytes, 1);
|
|
||||||
#endif
|
#endif
|
||||||
|
caam_dump_sg(KERN_ERR, "src @" __stringify(__LINE__) ": ",
|
||||||
|
DUMP_PREFIX_ADDRESS, 16, 4, req->src,
|
||||||
|
edesc->src_nents > 1 ? 100 : req->nbytes, 1);
|
||||||
|
|
||||||
len = desc_len(sh_desc);
|
len = desc_len(sh_desc);
|
||||||
init_job_desc_shared(desc, ptr, len, HDR_SHARE_DEFER | HDR_REVERSE);
|
init_job_desc_shared(desc, ptr, len, HDR_SHARE_DEFER | HDR_REVERSE);
|
||||||
|
@ -1449,11 +1415,9 @@ static int aead_decrypt(struct aead_request *req)
|
||||||
u32 *desc;
|
u32 *desc;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
#ifdef DEBUG
|
caam_dump_sg(KERN_ERR, "dec src@" __stringify(__LINE__)": ",
|
||||||
dbg_dump_sg(KERN_ERR, "dec src@"__stringify(__LINE__)": ",
|
DUMP_PREFIX_ADDRESS, 16, 4, req->src,
|
||||||
DUMP_PREFIX_ADDRESS, 16, 4, req->src,
|
req->assoclen + req->cryptlen, 1);
|
||||||
req->assoclen + req->cryptlen, 1);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* allocate extended descriptor */
|
/* allocate extended descriptor */
|
||||||
edesc = aead_edesc_alloc(req, AUTHENC_DESC_JOB_IO_LEN,
|
edesc = aead_edesc_alloc(req, AUTHENC_DESC_JOB_IO_LEN,
|
||||||
|
|
|
@ -791,9 +791,9 @@ static void ablkcipher_done(struct caam_drv_req *drv_req, u32 status)
|
||||||
print_hex_dump(KERN_ERR, "dstiv @" __stringify(__LINE__)": ",
|
print_hex_dump(KERN_ERR, "dstiv @" __stringify(__LINE__)": ",
|
||||||
DUMP_PREFIX_ADDRESS, 16, 4, req->info,
|
DUMP_PREFIX_ADDRESS, 16, 4, req->info,
|
||||||
edesc->src_nents > 1 ? 100 : ivsize, 1);
|
edesc->src_nents > 1 ? 100 : ivsize, 1);
|
||||||
dbg_dump_sg(KERN_ERR, "dst @" __stringify(__LINE__)": ",
|
caam_dump_sg(KERN_ERR, "dst @" __stringify(__LINE__)": ",
|
||||||
DUMP_PREFIX_ADDRESS, 16, 4, req->dst,
|
DUMP_PREFIX_ADDRESS, 16, 4, req->dst,
|
||||||
edesc->dst_nents > 1 ? 100 : req->nbytes, 1);
|
edesc->dst_nents > 1 ? 100 : req->nbytes, 1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ablkcipher_unmap(qidev, edesc, req);
|
ablkcipher_unmap(qidev, edesc, req);
|
||||||
|
|
|
@ -9,6 +9,46 @@
|
||||||
#include "desc.h"
|
#include "desc.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
#include <linux/highmem.h>
|
||||||
|
|
||||||
|
void caam_dump_sg(const char *level, const char *prefix_str, int prefix_type,
|
||||||
|
int rowsize, int groupsize, struct scatterlist *sg,
|
||||||
|
size_t tlen, bool ascii)
|
||||||
|
{
|
||||||
|
struct scatterlist *it;
|
||||||
|
void *it_page;
|
||||||
|
size_t len;
|
||||||
|
void *buf;
|
||||||
|
|
||||||
|
for (it = sg; it && tlen > 0 ; it = sg_next(sg)) {
|
||||||
|
/*
|
||||||
|
* make sure the scatterlist's page
|
||||||
|
* has a valid virtual memory mapping
|
||||||
|
*/
|
||||||
|
it_page = kmap_atomic(sg_page(it));
|
||||||
|
if (unlikely(!it_page)) {
|
||||||
|
pr_err("caam_dump_sg: kmap failed\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
buf = it_page + it->offset;
|
||||||
|
len = min_t(size_t, tlen, it->length);
|
||||||
|
print_hex_dump(level, prefix_str, prefix_type, rowsize,
|
||||||
|
groupsize, buf, len, ascii);
|
||||||
|
tlen -= len;
|
||||||
|
|
||||||
|
kunmap_atomic(it_page);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
void caam_dump_sg(const char *level, const char *prefix_str, int prefix_type,
|
||||||
|
int rowsize, int groupsize, struct scatterlist *sg,
|
||||||
|
size_t tlen, bool ascii)
|
||||||
|
{}
|
||||||
|
#endif /* DEBUG */
|
||||||
|
EXPORT_SYMBOL(caam_dump_sg);
|
||||||
|
|
||||||
static const struct {
|
static const struct {
|
||||||
u8 value;
|
u8 value;
|
||||||
const char *error_text;
|
const char *error_text;
|
||||||
|
|
|
@ -8,4 +8,8 @@
|
||||||
#define CAAM_ERROR_H
|
#define CAAM_ERROR_H
|
||||||
#define CAAM_ERROR_STR_MAX 302
|
#define CAAM_ERROR_STR_MAX 302
|
||||||
void caam_jr_strstatus(struct device *jrdev, u32 status);
|
void caam_jr_strstatus(struct device *jrdev, u32 status);
|
||||||
|
|
||||||
|
void caam_dump_sg(const char *level, const char *prefix_str, int prefix_type,
|
||||||
|
int rowsize, int groupsize, struct scatterlist *sg,
|
||||||
|
size_t tlen, bool ascii);
|
||||||
#endif /* CAAM_ERROR_H */
|
#endif /* CAAM_ERROR_H */
|
||||||
|
|
Loading…
Reference in New Issue