tree: git://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
master
head: 2df6bb5d8b22bc06a6ea83e8b2a6bcf3bb445304
commit: db509a45339fd786de355b11db34ff7421488cb1 [269/278] crypto: marvell/cesa
- add TDMA support
reproduce:
# apt-get install sparse
git checkout db509a45339fd786de355b11db34ff7421488cb1
make ARCH=x86_64 allmodconfig
make C=1 CF=-D__CHECK_ENDIAN__
sparse warnings: (new ones prefixed by >>)
drivers/crypto/marvell/cipher.c:82:47: sparse: incorrect type in argument 3
(different address spaces)
drivers/crypto/marvell/cipher.c:82:47: expected void *buf
drivers/crypto/marvell/cipher.c:82:47: got void [noderef] <asn:2>*
drivers/crypto/marvell/cesa.h:656:26: sparse: incorrect type in assignment
(different base types)
drivers/crypto/marvell/cesa.h:656:26: expected unsigned int [unsigned]
[usertype] enc_len
drivers/crypto/marvell/cesa.h:656:26: got restricted __le32 [usertype]
<noident>
drivers/crypto/marvell/cipher.c:90:17: sparse: incorrect type in argument 1
(different address spaces)
drivers/crypto/marvell/cipher.c:90:17: expected void *to
drivers/crypto/marvell/cipher.c:90:17: got void [noderef] <asn:2>*sram
drivers/crypto/marvell/cipher.c:93:17: sparse: incorrect type in argument 1
(different address spaces)
drivers/crypto/marvell/cipher.c:93:17: expected void *to
drivers/crypto/marvell/cipher.c:93:17: got void [noderef] <asn:2>*sram
drivers/crypto/marvell/cipher.c:110:49: sparse: incorrect type in argument 3
(different address spaces)
drivers/crypto/marvell/cipher.c:110:49: expected void *buf
drivers/crypto/marvell/cipher.c:110:49: got void [noderef] <asn:2>*
drivers/crypto/marvell/cipher.c:137:9: sparse: incorrect type in argument 2
(different address spaces)
drivers/crypto/marvell/cipher.c:137:9: expected void const *from
drivers/crypto/marvell/cipher.c:137:9: got void [noderef] <asn:2>*
drivers/crypto/marvell/cipher.c:235:41: sparse: incorrect type in assignment
(different base types)
drivers/crypto/marvell/cipher.c:235:41: expected unsigned int [unsigned]
<noident>
drivers/crypto/marvell/cipher.c:235:41: got restricted __le32 [usertype]
<noident>
drivers/crypto/marvell/cesa.h:656:26: sparse: incorrect type in assignment
(different base types)
drivers/crypto/marvell/cesa.h:656:26: expected unsigned int [unsigned]
[usertype] enc_len
drivers/crypto/marvell/cesa.h:656:26: got restricted __le32 [usertype]
<noident>
>> drivers/crypto/marvell/cipher.c:298:60: sparse: incorrect type in argument 2
>> (different base types)
drivers/crypto/marvell/cipher.c:298:60: expected unsigned int [unsigned]
[usertype] flags
drivers/crypto/marvell/cipher.c:298:60: got restricted gfp_t [usertype]
flags
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:631:16: sparse: cast to restricted __le32
drivers/crypto/marvell/cipher.c:383:44: sparse: incorrect type in assignment
(different base types)
drivers/crypto/marvell/cipher.c:383:44: expected unsigned int [unsigned]
<noident>
drivers/crypto/marvell/cipher.c:383:44: got restricted __le32 [usertype]
<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: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: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: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: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/cipher.c:173:9: sparse: incorrect type in argument 1
(different address spaces)
drivers/crypto/marvell/cipher.c:173:9: expected void *to
drivers/crypto/marvell/cipher.c:173:9: got void [noderef] <asn:2>*sram
--
drivers/crypto/marvell/hash.c:205:17: sparse: incorrect type in argument 1
(different address spaces)
drivers/crypto/marvell/hash.c:205:17: expected void *to
drivers/crypto/marvell/hash.c:205:17: got void [noderef] <asn:2>*
drivers/crypto/marvell/hash.c:219:77: sparse: incorrect type in argument 3
(different address spaces)
drivers/crypto/marvell/hash.c:219:77: expected void *buf
drivers/crypto/marvell/hash.c:219: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:247:33: sparse: incorrect type in argument 2
(different address spaces)
drivers/crypto/marvell/hash.c:247:33: expected void const *from
drivers/crypto/marvell/hash.c:247:33: got void [noderef] <asn:2>*
drivers/crypto/marvell/hash.c:253:68: sparse: incorrect type in argument 2
(different address spaces)
drivers/crypto/marvell/hash.c:253:68: expected unsigned char [usertype]
*buf
drivers/crypto/marvell/hash.c:253: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:268:9: sparse: incorrect type in argument 1
(different address spaces)
drivers/crypto/marvell/hash.c:268:9: expected void *to
drivers/crypto/marvell/hash.c:268: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:308:9: sparse: incorrect type in argument 1
(different address spaces)
drivers/crypto/marvell/hash.c:308:9: expected void *to
drivers/crypto/marvell/hash.c:308:9: got void [noderef] <asn:2>*sram
drivers/crypto/marvell/hash.c:340:32: sparse: incorrect type in assignment
(different base types)
drivers/crypto/marvell/hash.c:340:32: expected restricted __be32 <noident>
drivers/crypto/marvell/hash.c:340:32: got unsigned int
drivers/crypto/marvell/hash.c:350:42: sparse: cast from restricted __be32
drivers/crypto/marvell/hash.c:350:42: sparse: incorrect type in argument 1
(different base types)
drivers/crypto/marvell/hash.c:350:42: expected unsigned int [unsigned]
[usertype] val
drivers/crypto/marvell/hash.c:350:42: got restricted __be32 <noident>
drivers/crypto/marvell/hash.c:350:42: sparse: cast from restricted __be32
drivers/crypto/marvell/hash.c:350:42: sparse: cast from restricted __be32
drivers/crypto/marvell/hash.c:350:42: sparse: cast from restricted __be32
drivers/crypto/marvell/hash.c:350:42: sparse: cast from restricted __be32
drivers/crypto/marvell/hash.c:375:35: sparse: incorrect type in argument 1
(different base types)
drivers/crypto/marvell/hash.c:375:35: expected unsigned int [unsigned] val
drivers/crypto/marvell/hash.c:375: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:485:59: sparse: incorrect type in argument 2
>> (different base types)
drivers/crypto/marvell/hash.c:485:59: expected unsigned int [unsigned]
[usertype] flags
drivers/crypto/marvell/hash.c:485: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:521:51: sparse: incorrect type in argument 2
(different base types)
drivers/crypto/marvell/hash.c:521:51: expected unsigned int [unsigned]
[usertype] flags
drivers/crypto/marvell/hash.c:521: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:607:51: sparse: incorrect type in argument 2
(different base types)
drivers/crypto/marvell/hash.c:607:51: expected unsigned int [unsigned]
[usertype] flags
drivers/crypto/marvell/hash.c:607:51: got restricted gfp_t [usertype]
flags
drivers/crypto/marvell/hash.c:668:57: sparse: incorrect type in argument 2
(different base types)
drivers/crypto/marvell/hash.c:668:57: expected unsigned int [unsigned]
[usertype] flags
drivers/crypto/marvell/hash.c:668: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/hash.c:1071:30: sparse: cast to restricted __be32
drivers/crypto/marvell/hash.c:1071:30: sparse: cast to restricted __be32
drivers/crypto/marvell/hash.c:1071:30: sparse: cast to restricted __be32
drivers/crypto/marvell/hash.c:1071:30: sparse: cast to restricted __be32
drivers/crypto/marvell/hash.c:1071:30: sparse: cast to restricted __be32
drivers/crypto/marvell/hash.c:1071:30: sparse: cast to restricted __be32
drivers/crypto/marvell/hash.c:1074:34: sparse: cast to restricted __be32
drivers/crypto/marvell/hash.c:1074:34: sparse: cast to restricted __be32
drivers/crypto/marvell/hash.c:1074:34: sparse: cast to restricted __be32
drivers/crypto/marvell/hash.c:1074:34: sparse: cast to restricted __be32
drivers/crypto/marvell/hash.c:1074:34: sparse: cast to restricted __be32
drivers/crypto/marvell/hash.c:1074:34: sparse: cast to restricted __be32
--
>> drivers/crypto/marvell/tdma.c:68:39: sparse: cast to restricted __le32
drivers/crypto/marvell/tdma.c:72:31: sparse: cast to restricted __le32
>> drivers/crypto/marvell/tdma.c:86:35: sparse: incorrect type in assignment
>> (different base types)
drivers/crypto/marvell/tdma.c:86:35: expected unsigned int [unsigned]
[usertype] dst
drivers/crypto/marvell/tdma.c:86:35: got restricted __le32 [usertype]
<noident>
>> drivers/crypto/marvell/tdma.c:89:35: sparse: incorrect type in assignment
>> (different base types)
drivers/crypto/marvell/tdma.c:89:35: expected unsigned int [unsigned]
[usertype] src
drivers/crypto/marvell/tdma.c:89:35: got restricted __le32 [usertype]
<noident>
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/tdma.c:108:27: sparse: incorrect type in assignment
>> (different base types)
drivers/crypto/marvell/tdma.c:108:27: expected unsigned int [unsigned]
[usertype] cur_dma
drivers/crypto/marvell/tdma.c:108:27: got restricted __le32 [usertype]
<noident>
>> drivers/crypto/marvell/tdma.c:174:44: sparse: incorrect type in argument 2
>> (different base types)
drivers/crypto/marvell/tdma.c:174:44: expected restricted gfp_t
[usertype] flags
drivers/crypto/marvell/tdma.c:174:44: got unsigned int [unsigned]
[usertype] flags
drivers/crypto/marvell/tdma.c:185:44: sparse: incorrect type in argument 2
(different base types)
drivers/crypto/marvell/tdma.c:185:44: expected restricted gfp_t
[usertype] flags
drivers/crypto/marvell/tdma.c:185:44: got unsigned int [unsigned]
[usertype] flags
vim +298 drivers/crypto/marvell/cipher.c
131 else
132 ret = mv_cesa_ablkcipher_std_process(ablkreq, status);
133
134 if (ret)
135 return ret;
136
> 137 memcpy(ablkreq->info, engine->sram +
> CESA_SA_CRYPT_IV_SRAM_OFFSET,
138
crypto_ablkcipher_ivsize(crypto_ablkcipher_reqtfm(ablkreq)));
139
140 return 0;
141 }
142
143 static void mv_cesa_ablkcipher_step(struct crypto_async_request *req)
144 {
145 struct ablkcipher_request *ablkreq =
ablkcipher_request_cast(req);
146 struct mv_cesa_ablkcipher_req *creq =
ablkcipher_request_ctx(ablkreq);
147
148 if (creq->req.base.type == CESA_DMA_REQ)
149 mv_cesa_dma_step(&creq->req.dma);
150 else
151 mv_cesa_ablkcipher_std_step(ablkreq);
152 }
153
154 static inline void
155 mv_cesa_ablkcipher_dma_prepare(struct ablkcipher_request *req)
156 {
157 struct mv_cesa_ablkcipher_req *creq =
ablkcipher_request_ctx(req);
158 struct mv_cesa_tdma_req *dreq = &creq->req.dma;
159
160 mv_cesa_dma_prepare(dreq, dreq->base.engine);
161 }
162
163 static inline void
164 mv_cesa_ablkcipher_std_prepare(struct ablkcipher_request *req)
165 {
166 struct mv_cesa_ablkcipher_req *creq =
ablkcipher_request_ctx(req);
167 struct mv_cesa_ablkcipher_std_req *sreq = &creq->req.std;
168 struct mv_cesa_engine *engine = sreq->base.engine;
169
170 sreq->size = 0;
171 sreq->offset = 0;
172 mv_cesa_adjust_op(engine, &sreq->op);
173 memcpy(engine->sram, &sreq->op, sizeof(sreq->op));
174 }
175
176 static inline void mv_cesa_ablkcipher_prepare(struct
crypto_async_request *req,
177 struct mv_cesa_engine
*engine)
178 {
179 struct ablkcipher_request *ablkreq =
ablkcipher_request_cast(req);
180 struct mv_cesa_ablkcipher_req *creq =
ablkcipher_request_ctx(ablkreq);
181
182 creq->req.base.engine = engine;
183
184 if (creq->req.base.type == CESA_DMA_REQ)
185 mv_cesa_ablkcipher_dma_prepare(ablkreq);
186 else
187 mv_cesa_ablkcipher_std_prepare(ablkreq);
188 }
189
190 static inline void
191 mv_cesa_ablkcipher_req_cleanup(struct crypto_async_request *req)
192 {
193 struct ablkcipher_request *ablkreq =
ablkcipher_request_cast(req);
194
195 mv_cesa_ablkcipher_cleanup(ablkreq);
196 }
197
198 static const struct mv_cesa_req_ops mv_cesa_ablkcipher_req_ops = {
199 .step = mv_cesa_ablkcipher_step,
200 .process = mv_cesa_ablkcipher_process,
201 .prepare = mv_cesa_ablkcipher_prepare,
202 .cleanup = mv_cesa_ablkcipher_req_cleanup,
203 };
204
205 static int mv_cesa_ablkcipher_cra_init(struct crypto_tfm *tfm)
206 {
207 struct mv_cesa_aes_ctx *ctx = crypto_tfm_ctx(tfm);
208
209 ctx->base.ops = &mv_cesa_ablkcipher_req_ops;
210
211 tfm->crt_ablkcipher.reqsize = sizeof(struct
mv_cesa_ablkcipher_req);
212
213 return 0;
214 }
215
216 static int mv_cesa_aes_setkey(struct crypto_ablkcipher *cipher, const
u8 *key,
217 unsigned int len)
218 {
219 struct crypto_tfm *tfm = crypto_ablkcipher_tfm(cipher);
220 struct mv_cesa_aes_ctx *ctx = crypto_tfm_ctx(tfm);
221 int remaining;
222 int offset;
223 int ret;
224 int i;
225
226 ret = crypto_aes_expand_key(&ctx->aes, key, len);
227 if (ret) {
228 crypto_ablkcipher_set_flags(cipher,
CRYPTO_TFM_RES_BAD_KEY_LEN);
229 return ret;
230 }
231
232 remaining = (ctx->aes.key_length - 16) / 4;
233 offset = ctx->aes.key_length + 24 - remaining;
234 for (i = 0; i < remaining; i++)
235 ctx->aes.key_dec[4 + i] =
236 cpu_to_le32(ctx->aes.key_enc[offset + i]);
237
238 return 0;
239 }
240
241 static int mv_cesa_ablkcipher_dma_req_init(struct ablkcipher_request
*req,
242 const struct mv_cesa_op_ctx *op_templ)
243 {
244 struct mv_cesa_ablkcipher_req *creq =
ablkcipher_request_ctx(req);
245 gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
246 GFP_KERNEL : GFP_ATOMIC;
247 struct mv_cesa_tdma_req *dreq = &creq->req.dma;
248 struct mv_cesa_ablkcipher_dma_iter iter;
249 struct mv_cesa_tdma_chain chain;
250 bool skip_ctx = false;
251 int ret;
252
253 dreq->base.type = CESA_DMA_REQ;
254 dreq->chain.first = NULL;
255 dreq->chain.last = NULL;
256
257 if (req->src != req->dst) {
258 ret = dma_map_sg(cesa_dev->dev, req->src,
creq->src_nents,
259 DMA_TO_DEVICE);
260 if (!ret)
261 return -ENOMEM;
262
263 ret = dma_map_sg(cesa_dev->dev, req->dst,
creq->dst_nents,
264 DMA_FROM_DEVICE);
265 if (!ret) {
266 ret = -ENOMEM;
267 goto err_unmap_src;
268 }
269 } else {
270 ret = dma_map_sg(cesa_dev->dev, req->src,
creq->src_nents,
271 DMA_BIDIRECTIONAL);
272 if (!ret)
273 return -ENOMEM;
274 }
275
276 mv_cesa_tdma_desc_iter_init(&chain);
277 mv_cesa_ablkcipher_req_iter_init(&iter, req);
278
279 do {
280 struct mv_cesa_op_ctx *op;
281
282 op = mv_cesa_dma_add_op(&chain, op_templ, skip_ctx,
flags);
283 if (IS_ERR(op)) {
284 ret = PTR_ERR(op);
285 goto err_free_tdma;
286 }
287 skip_ctx = true;
288
289 mv_cesa_set_crypt_op_len(op, iter.base.op_len);
290
291 /* Add input transfers */
292 ret = mv_cesa_dma_add_op_transfers(&chain, &iter.base,
293 &iter.src, flags);
294 if (ret)
295 goto err_free_tdma;
296
297 /* Add dummy desc to launch the crypto operation */
> 298 ret = mv_cesa_dma_add_dummy_launch(&chain, flags);
299 if (ret)
300 goto err_free_tdma;
301
---
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