tree: git://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master head: 2df6bb5d8b22bc06a6ea83e8b2a6bcf3bb445304 commit: 7aeef693d18d359134f47bf7b6621ec303b570f9 [272/278] crypto: marvell/cesa - add MD5 support reproduce: # apt-get install sparse git checkout 7aeef693d18d359134f47bf7b6621ec303b570f9 make ARCH=x86_64 allmodconfig make C=1 CF=-D__CHECK_ENDIAN__ sparse warnings: (new ones prefixed by >>) drivers/crypto/marvell/hash.c:206:17: sparse: incorrect type in argument 1 (different address spaces) drivers/crypto/marvell/hash.c:206:17: expected void *to drivers/crypto/marvell/hash.c:206:17: got void [noderef] <asn:2>* drivers/crypto/marvell/hash.c:220:77: sparse: incorrect type in argument 3 (different address spaces) drivers/crypto/marvell/hash.c:220:77: expected void *buf drivers/crypto/marvell/hash.c:220:77: got void [noderef] <asn:2>* drivers/crypto/marvell/cesa.h:631:16: sparse: cast to restricted __le32 drivers/crypto/marvell/cesa.h:663:28: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:663:28: left side has type unsigned int drivers/crypto/marvell/cesa.h:663:28: right side has type restricted __le32 drivers/crypto/marvell/hash.c:248:33: sparse: incorrect type in argument 2 (different address spaces) drivers/crypto/marvell/hash.c:248:33: expected void const *from drivers/crypto/marvell/hash.c:248:33: got void [noderef] <asn:2>* drivers/crypto/marvell/hash.c:254:68: sparse: incorrect type in argument 2 (different address spaces) drivers/crypto/marvell/hash.c:254:68: expected unsigned char [usertype] *buf drivers/crypto/marvell/hash.c:254:68: got void [noderef] <asn:2>* drivers/crypto/marvell/cesa.h:670:29: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:670:29: left side has type unsigned int drivers/crypto/marvell/cesa.h:670:29: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:625:25: sparse: invalid assignment: &= drivers/crypto/marvell/cesa.h:625:25: left side has type unsigned int drivers/crypto/marvell/cesa.h:625:25: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:626:25: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:626:25: left side has type unsigned int drivers/crypto/marvell/cesa.h:626:25: right side has type restricted __le32 drivers/crypto/marvell/hash.c:269:9: sparse: incorrect type in argument 1 (different address spaces) drivers/crypto/marvell/hash.c:269:9: expected void *to drivers/crypto/marvell/hash.c:269:9: got void [noderef] <asn:2>*sram drivers/crypto/marvell/cesa.h:625:25: sparse: invalid assignment: &= drivers/crypto/marvell/cesa.h:625:25: left side has type unsigned int drivers/crypto/marvell/cesa.h:625:25: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:626:25: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:626:25: left side has type unsigned int drivers/crypto/marvell/cesa.h:626:25: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:644:24: sparse: incorrect type in assignment (different base types) drivers/crypto/marvell/cesa.h:644:24: expected unsigned int [unsigned] [usertype] enc_p drivers/crypto/marvell/cesa.h:644:24: got restricted __le32 [usertype] <noident> drivers/crypto/marvell/cesa.h:645:28: sparse: incorrect type in assignment (different base types) drivers/crypto/marvell/cesa.h:645:28: expected unsigned int [unsigned] [usertype] enc_key_p drivers/crypto/marvell/cesa.h:645:28: got restricted __le32 [usertype] <noident> drivers/crypto/marvell/cesa.h:646:25: sparse: incorrect type in assignment (different base types) drivers/crypto/marvell/cesa.h:646:25: expected unsigned int [unsigned] [usertype] enc_iv drivers/crypto/marvell/cesa.h:646:25: got restricted __le32 [usertype] <noident> drivers/crypto/marvell/cesa.h:648:28: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:648:28: left side has type unsigned int drivers/crypto/marvell/cesa.h:648:28: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:650:29: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:650:29: left side has type unsigned int drivers/crypto/marvell/cesa.h:650:29: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:651:25: sparse: incorrect type in assignment (different base types) drivers/crypto/marvell/cesa.h:651:25: expected unsigned int [unsigned] [usertype] mac_iv drivers/crypto/marvell/cesa.h:651:25: got restricted __le32 [usertype] <noident> drivers/crypto/marvell/hash.c:309:9: sparse: incorrect type in argument 1 (different address spaces) drivers/crypto/marvell/hash.c:309:9: expected void *to drivers/crypto/marvell/hash.c:309:9: got void [noderef] <asn:2>*sram drivers/crypto/marvell/hash.c:341:32: sparse: incorrect type in assignment (different base types) drivers/crypto/marvell/hash.c:341:32: expected restricted __be32 <noident> drivers/crypto/marvell/hash.c:341:32: got unsigned int drivers/crypto/marvell/hash.c:356:50: sparse: cast from restricted __be32 >> drivers/crypto/marvell/hash.c:356:48: sparse: incorrect type in assignment (different base types) drivers/crypto/marvell/hash.c:356:48: expected restricted __be32 <noident> drivers/crypto/marvell/hash.c:356:48: got restricted __le32 [usertype] <noident> drivers/crypto/marvell/hash.c:358:50: sparse: cast from restricted __be32 drivers/crypto/marvell/hash.c:358:50: sparse: incorrect type in argument 1 (different base types) drivers/crypto/marvell/hash.c:358:50: expected unsigned int [unsigned] [usertype] val drivers/crypto/marvell/hash.c:358:50: got restricted __be32 <noident> drivers/crypto/marvell/hash.c:358:50: sparse: cast from restricted __be32 drivers/crypto/marvell/hash.c:358:50: sparse: cast from restricted __be32 drivers/crypto/marvell/hash.c:358:50: sparse: cast from restricted __be32 drivers/crypto/marvell/hash.c:358:50: sparse: cast from restricted __be32 drivers/crypto/marvell/hash.c:384:35: sparse: incorrect type in argument 1 (different base types) drivers/crypto/marvell/hash.c:384:35: expected unsigned int [unsigned] val drivers/crypto/marvell/hash.c:384:35: got restricted __be32 <noident> drivers/crypto/marvell/cesa.h:625:25: sparse: invalid assignment: &= drivers/crypto/marvell/cesa.h:625:25: left side has type unsigned int drivers/crypto/marvell/cesa.h:625:25: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:626:25: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:626:25: left side has type unsigned int drivers/crypto/marvell/cesa.h:626:25: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:663:28: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:663:28: left side has type unsigned int drivers/crypto/marvell/cesa.h:663:28: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:670:29: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:670:29: left side has type unsigned int drivers/crypto/marvell/cesa.h:670:29: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:670:29: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:670:29: left side has type unsigned int drivers/crypto/marvell/cesa.h:670:29: right side has type restricted __le32 drivers/crypto/marvell/hash.c:494:59: sparse: incorrect type in argument 2 (different base types) drivers/crypto/marvell/hash.c:494:59: expected unsigned int [unsigned] [usertype] flags drivers/crypto/marvell/hash.c:494:59: got restricted gfp_t [usertype] flags drivers/crypto/marvell/cesa.h:670:29: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:670:29: left side has type unsigned int drivers/crypto/marvell/cesa.h:670:29: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:631:16: sparse: cast to restricted __le32 drivers/crypto/marvell/cesa.h:625:25: sparse: invalid assignment: &= drivers/crypto/marvell/cesa.h:625:25: left side has type unsigned int drivers/crypto/marvell/cesa.h:625:25: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:626:25: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:626:25: left side has type unsigned int drivers/crypto/marvell/cesa.h:626:25: right side has type restricted __le32 drivers/crypto/marvell/hash.c:530:51: sparse: incorrect type in argument 2 (different base types) drivers/crypto/marvell/hash.c:530:51: expected unsigned int [unsigned] [usertype] flags drivers/crypto/marvell/hash.c:530:51: got restricted gfp_t [usertype] flags drivers/crypto/marvell/cesa.h:631:16: sparse: cast to restricted __le32 drivers/crypto/marvell/cesa.h:625:25: sparse: invalid assignment: &= drivers/crypto/marvell/cesa.h:625:25: left side has type unsigned int drivers/crypto/marvell/cesa.h:625:25: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:626:25: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:626:25: left side has type unsigned int drivers/crypto/marvell/cesa.h:626:25: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:625:25: sparse: invalid assignment: &= drivers/crypto/marvell/cesa.h:625:25: left side has type unsigned int drivers/crypto/marvell/cesa.h:625:25: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:626:25: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:626:25: left side has type unsigned int drivers/crypto/marvell/cesa.h:626:25: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:670:29: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:670:29: left side has type unsigned int drivers/crypto/marvell/cesa.h:670:29: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:631:16: sparse: cast to restricted __le32 drivers/crypto/marvell/cesa.h:625:25: sparse: invalid assignment: &= drivers/crypto/marvell/cesa.h:625:25: left side has type unsigned int drivers/crypto/marvell/cesa.h:625:25: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:626:25: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:626:25: left side has type unsigned int drivers/crypto/marvell/cesa.h:626:25: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:670:29: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:670:29: left side has type unsigned int drivers/crypto/marvell/cesa.h:670:29: right side has type restricted __le32 drivers/crypto/marvell/hash.c:616:51: sparse: incorrect type in argument 2 (different base types) drivers/crypto/marvell/hash.c:616:51: expected unsigned int [unsigned] [usertype] flags drivers/crypto/marvell/hash.c:616:51: got restricted gfp_t [usertype] flags drivers/crypto/marvell/hash.c:677:57: sparse: incorrect type in argument 2 (different base types) drivers/crypto/marvell/hash.c:677:57: expected unsigned int [unsigned] [usertype] flags drivers/crypto/marvell/hash.c:677:57: got restricted gfp_t [usertype] flags drivers/crypto/marvell/cesa.h:663:28: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:663:28: left side has type unsigned int drivers/crypto/marvell/cesa.h:663:28: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:663:28: sparse: invalid assignment: |= drivers/crypto/marvell/cesa.h:663:28: left side has type unsigned int drivers/crypto/marvell/cesa.h:663:28: right side has type restricted __le32 drivers/crypto/marvell/cesa.h:636:25: sparse: incorrect type in assignment (different base types) drivers/crypto/marvell/cesa.h:636:25: expected unsigned int [unsigned] [usertype] config drivers/crypto/marvell/cesa.h:636:25: got restricted __le32 [usertype] <noident> drivers/crypto/marvell/cesa.h:636:25: sparse: incorrect type in assignment (different base types) drivers/crypto/marvell/cesa.h:636:25: expected unsigned int [unsigned] [usertype] config drivers/crypto/marvell/cesa.h:636:25: got restricted __le32 [usertype] <noident> drivers/crypto/marvell/cesa.h:636:25: sparse: incorrect type in assignment (different base types) drivers/crypto/marvell/cesa.h:636:25: expected unsigned int [unsigned] [usertype] config drivers/crypto/marvell/cesa.h:636:25: got restricted __le32 [usertype] <noident> drivers/crypto/marvell/hash.c:1169:30: sparse: cast to restricted __be32 drivers/crypto/marvell/hash.c:1169:30: sparse: cast to restricted __be32 drivers/crypto/marvell/hash.c:1169:30: sparse: cast to restricted __be32 drivers/crypto/marvell/hash.c:1169:30: sparse: cast to restricted __be32 drivers/crypto/marvell/hash.c:1169:30: sparse: cast to restricted __be32 drivers/crypto/marvell/hash.c:1169:30: sparse: cast to restricted __be32 drivers/crypto/marvell/hash.c:1172:34: sparse: cast to restricted __be32 drivers/crypto/marvell/hash.c:1172:34: sparse: cast to restricted __be32 drivers/crypto/marvell/hash.c:1172:34: sparse: cast to restricted __be32 vim +356 drivers/crypto/marvell/hash.c 303 struct mv_cesa_ahash_req *creq = ahash_request_ctx(req); 304 struct mv_cesa_ahash_std_req *sreq = &creq->req.std; 305 struct mv_cesa_engine *engine = sreq->base.engine; 306 307 sreq->offset = 0; 308 mv_cesa_adjust_op(engine, &creq->op_tmpl); > 309 memcpy(engine->sram, &creq->op_tmpl, sizeof(creq->op_tmpl)); 310 } 311 312 static void mv_cesa_ahash_step(struct crypto_async_request *req) 313 { 314 struct ahash_request *ahashreq = ahash_request_cast(req); 315 struct mv_cesa_ahash_req *creq = ahash_request_ctx(ahashreq); 316 317 if (creq->req.base.type == CESA_DMA_REQ) 318 mv_cesa_dma_step(&creq->req.dma.base); 319 else 320 mv_cesa_ahash_std_step(ahashreq); 321 } 322 323 static int mv_cesa_ahash_process(struct crypto_async_request *req, u32 status) 324 { 325 struct ahash_request *ahashreq = ahash_request_cast(req); 326 struct mv_cesa_ahash_req *creq = ahash_request_ctx(ahashreq); 327 struct mv_cesa_engine *engine = creq->req.base.engine; 328 unsigned int digsize; 329 int ret, i; 330 331 if (creq->req.base.type == CESA_DMA_REQ) 332 ret = mv_cesa_dma_process(&creq->req.dma.base, status); 333 else 334 ret = mv_cesa_ahash_std_process(ahashreq, status); 335 336 if (ret == -EINPROGRESS) 337 return ret; 338 339 digsize = crypto_ahash_digestsize(crypto_ahash_reqtfm(ahashreq)); 340 for (i = 0; i < digsize / 4; i++) 341 creq->state[i] = readl(engine->regs + CESA_IVDIG(i)); 342 343 if (creq->cache_ptr) 344 sg_pcopy_to_buffer(ahashreq->src, creq->src_nents, 345 creq->cache, 346 creq->cache_ptr, 347 ahashreq->nbytes - creq->cache_ptr); 348 349 if (creq->last_req) { 350 for (i = 0; i < digsize / 4; i++) { 351 /* 352 * Hardware provides MD5 digest in a different 353 * endianness than SHA-1 and SHA-256 ones. 354 */ 355 if (digsize == MD5_DIGEST_SIZE) > 356 creq->state[i] = cpu_to_le32(creq->state[i]); 357 else 358 creq->state[i] = cpu_to_be32(creq->state[i]); 359 } --- 0-DAY kernel test infrastructure Open Source Technology Center http://lists.01.org/mailman/listinfo/kbuild Intel Corporation -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in