Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6

Pull crypto fix from Herbert Xu:
"Fix an oops in the s5p-sss driver when used with ecb(aes)"

* 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
crypto: s5p-sss - Fix kernel Oops in AES-ECB mode

+9 -3
+9 -3
drivers/crypto/s5p-sss.c
··· 1922 1922 uint32_t aes_control; 1923 1923 unsigned long flags; 1924 1924 int err; 1925 + u8 *iv; 1925 1926 1926 1927 aes_control = SSS_AES_KEY_CHANGE_MODE; 1927 1928 if (mode & FLAGS_AES_DECRYPT) 1928 1929 aes_control |= SSS_AES_MODE_DECRYPT; 1929 1930 1930 - if ((mode & FLAGS_AES_MODE_MASK) == FLAGS_AES_CBC) 1931 + if ((mode & FLAGS_AES_MODE_MASK) == FLAGS_AES_CBC) { 1931 1932 aes_control |= SSS_AES_CHAIN_MODE_CBC; 1932 - else if ((mode & FLAGS_AES_MODE_MASK) == FLAGS_AES_CTR) 1933 + iv = req->info; 1934 + } else if ((mode & FLAGS_AES_MODE_MASK) == FLAGS_AES_CTR) { 1933 1935 aes_control |= SSS_AES_CHAIN_MODE_CTR; 1936 + iv = req->info; 1937 + } else { 1938 + iv = NULL; /* AES_ECB */ 1939 + } 1934 1940 1935 1941 if (dev->ctx->keylen == AES_KEYSIZE_192) 1936 1942 aes_control |= SSS_AES_KEY_SIZE_192; ··· 1967 1961 goto outdata_error; 1968 1962 1969 1963 SSS_AES_WRITE(dev, AES_CONTROL, aes_control); 1970 - s5p_set_aes(dev, dev->ctx->aes_key, req->info, dev->ctx->keylen); 1964 + s5p_set_aes(dev, dev->ctx->aes_key, iv, dev->ctx->keylen); 1971 1965 1972 1966 s5p_set_dma_indata(dev, dev->sg_src); 1973 1967 s5p_set_dma_outdata(dev, dev->sg_dst);