On Thu, 3 Oct 2019 at 23:26, Gert Robben <t2@xxxxxxx> wrote: > > Op 03-10-2019 om 15:39 schreef Ard Biesheuvel: > > Commit 79c65d179a40e145 ("crypto: cbc - Convert to skcipher") updated > > the generic CBC template wrapper from a blkcipher to a skcipher algo, > > to get away from the deprecated blkcipher interface. However, as a side > > effect, drivers that instantiate CBC transforms using the blkcipher as > > a fallback no longer work, since skciphers can wrap blkciphers but not > > the other way around. This broke the geode-aes driver. > > > > So let's fix it by moving to the sync skcipher interface when allocating > > the fallback. > > > > Cc: Gert Robben <t2@xxxxxxx> > > Cc: Jelle de Jong <jelledejong@xxxxxxxxxxxxx> > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> > > --- > > Gert, Jelle, > > > > If you can, please try this patch and report back to the list if it solves > > the Geode issue for you. > > Thanks for the patch! > I tried it on Alix 2C2 / Geode LX800 with Linux 5.4-rc1 (also 5.1-5.3 fwiw). > > At least now openssl doesn't give those errors anymore. > (openssl speed -evp aes-128-cbc -elapsed -engine afalg) > But looking at the results (<6MB/s), apparently it's not using geode-aes > (>30MB/s?). > In dmesg can be seen: > > alg: skcipher: ecb-aes-geode encryption test failed (wrong result) on > test vector 1, cfg="out-of-place" > alg: skcipher: cbc-aes-geode encryption test failed (wrong result) on > test vector 2, cfg="out-of-place" > Geode LX AES 0000:00:01.2: GEODE AES engine enabled. > > In /proc/crypto, drivers cbc-aes-geode/ecb-aes-geode are listed with > "selftest: unknown". Driver "geode-aes" has "selftest: passed". > > I'm happy to test other patches. Oops, mistake there on my part Can you replace the two instances of skcipher_request_set_crypt(req, dst, src, nbytes, desc->info); with skcipher_request_set_crypt(req, src, dst, nbytes, desc->info); please?