Modify drive to provide a valid errno (and not the HW error ID) to the user, via completion callbacks. A "valid errno" is currently not explicitly mentioned in the docs, however the error code is expected to match the one returned by the generic SW implementation. Note: in most error cases caam/qi and caam/qi2 returned -EIO; align all caam drivers to return -EINVAL. While here, ratelimit prints triggered by fuzz testing, such that console is not flooded. Signed-off-by: Horia Geantă <horia.geanta@nxp.com> Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
		
			
				
	
	
		
			30 lines
		
	
	
		
			763 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			763 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| /*
 | |
|  * CAAM Error Reporting code header
 | |
|  *
 | |
|  * Copyright 2009-2011 Freescale Semiconductor, Inc.
 | |
|  */
 | |
| 
 | |
| #ifndef CAAM_ERROR_H
 | |
| #define CAAM_ERROR_H
 | |
| 
 | |
| #include "desc.h"
 | |
| 
 | |
| #define CAAM_ERROR_STR_MAX 302
 | |
| 
 | |
| int caam_strstatus(struct device *dev, u32 status, bool qi_v2);
 | |
| 
 | |
| #define caam_jr_strstatus(jrdev, status) caam_strstatus(jrdev, status, false)
 | |
| #define caam_qi2_strstatus(qidev, status) caam_strstatus(qidev, status, true)
 | |
| 
 | |
| void caam_dump_sg(const char *prefix_str, int prefix_type,
 | |
| 		  int rowsize, int groupsize, struct scatterlist *sg,
 | |
| 		  size_t tlen, bool ascii);
 | |
| 
 | |
| static inline bool is_mdha(u32 algtype)
 | |
| {
 | |
| 	return (algtype & OP_ALG_ALGSEL_MASK & ~OP_ALG_ALGSEL_SUBMASK) ==
 | |
| 	       OP_ALG_CHA_MDHA;
 | |
| }
 | |
| #endif /* CAAM_ERROR_H */
 |