| .. | .. |
|---|
| 379 | 379 | |
|---|
| 380 | 380 | err = skcipher_walk_virt(&walk, req, true); |
|---|
| 381 | 381 | |
|---|
| 382 | + kernel_fpu_begin(); |
|---|
| 382 | 383 | while ((nbytes = walk.nbytes)) { |
|---|
| 383 | | - kernel_fpu_begin(); |
|---|
| 384 | 384 | aesni_ecb_enc(ctx, walk.dst.virt.addr, walk.src.virt.addr, |
|---|
| 385 | 385 | nbytes & AES_BLOCK_MASK); |
|---|
| 386 | | - kernel_fpu_end(); |
|---|
| 387 | 386 | nbytes &= AES_BLOCK_SIZE - 1; |
|---|
| 388 | 387 | err = skcipher_walk_done(&walk, nbytes); |
|---|
| 389 | 388 | } |
|---|
| 389 | + kernel_fpu_end(); |
|---|
| 390 | 390 | |
|---|
| 391 | 391 | return err; |
|---|
| 392 | 392 | } |
|---|
| .. | .. |
|---|
| 401 | 401 | |
|---|
| 402 | 402 | err = skcipher_walk_virt(&walk, req, true); |
|---|
| 403 | 403 | |
|---|
| 404 | + kernel_fpu_begin(); |
|---|
| 404 | 405 | while ((nbytes = walk.nbytes)) { |
|---|
| 405 | | - kernel_fpu_begin(); |
|---|
| 406 | 406 | aesni_ecb_dec(ctx, walk.dst.virt.addr, walk.src.virt.addr, |
|---|
| 407 | 407 | nbytes & AES_BLOCK_MASK); |
|---|
| 408 | | - kernel_fpu_end(); |
|---|
| 409 | 408 | nbytes &= AES_BLOCK_SIZE - 1; |
|---|
| 410 | 409 | err = skcipher_walk_done(&walk, nbytes); |
|---|
| 411 | 410 | } |
|---|
| 411 | + kernel_fpu_end(); |
|---|
| 412 | 412 | |
|---|
| 413 | 413 | return err; |
|---|
| 414 | 414 | } |
|---|
| .. | .. |
|---|
| 423 | 423 | |
|---|
| 424 | 424 | err = skcipher_walk_virt(&walk, req, true); |
|---|
| 425 | 425 | |
|---|
| 426 | + kernel_fpu_begin(); |
|---|
| 426 | 427 | while ((nbytes = walk.nbytes)) { |
|---|
| 427 | | - kernel_fpu_begin(); |
|---|
| 428 | 428 | aesni_cbc_enc(ctx, walk.dst.virt.addr, walk.src.virt.addr, |
|---|
| 429 | 429 | nbytes & AES_BLOCK_MASK, walk.iv); |
|---|
| 430 | | - kernel_fpu_end(); |
|---|
| 431 | 430 | nbytes &= AES_BLOCK_SIZE - 1; |
|---|
| 432 | 431 | err = skcipher_walk_done(&walk, nbytes); |
|---|
| 433 | 432 | } |
|---|
| 433 | + kernel_fpu_end(); |
|---|
| 434 | 434 | |
|---|
| 435 | 435 | return err; |
|---|
| 436 | 436 | } |
|---|
| .. | .. |
|---|
| 445 | 445 | |
|---|
| 446 | 446 | err = skcipher_walk_virt(&walk, req, true); |
|---|
| 447 | 447 | |
|---|
| 448 | + kernel_fpu_begin(); |
|---|
| 448 | 449 | while ((nbytes = walk.nbytes)) { |
|---|
| 449 | | - kernel_fpu_begin(); |
|---|
| 450 | 450 | aesni_cbc_dec(ctx, walk.dst.virt.addr, walk.src.virt.addr, |
|---|
| 451 | 451 | nbytes & AES_BLOCK_MASK, walk.iv); |
|---|
| 452 | | - kernel_fpu_end(); |
|---|
| 453 | 452 | nbytes &= AES_BLOCK_SIZE - 1; |
|---|
| 454 | 453 | err = skcipher_walk_done(&walk, nbytes); |
|---|
| 455 | 454 | } |
|---|
| 455 | + kernel_fpu_end(); |
|---|
| 456 | 456 | |
|---|
| 457 | 457 | return err; |
|---|
| 458 | 458 | } |
|---|
| .. | .. |
|---|
| 500 | 500 | |
|---|
| 501 | 501 | err = skcipher_walk_virt(&walk, req, true); |
|---|
| 502 | 502 | |
|---|
| 503 | + kernel_fpu_begin(); |
|---|
| 503 | 504 | while ((nbytes = walk.nbytes) >= AES_BLOCK_SIZE) { |
|---|
| 504 | | - kernel_fpu_begin(); |
|---|
| 505 | 505 | aesni_ctr_enc_tfm(ctx, walk.dst.virt.addr, walk.src.virt.addr, |
|---|
| 506 | 506 | nbytes & AES_BLOCK_MASK, walk.iv); |
|---|
| 507 | | - kernel_fpu_end(); |
|---|
| 508 | 507 | nbytes &= AES_BLOCK_SIZE - 1; |
|---|
| 509 | 508 | err = skcipher_walk_done(&walk, nbytes); |
|---|
| 510 | 509 | } |
|---|
| 511 | 510 | if (walk.nbytes) { |
|---|
| 512 | | - kernel_fpu_begin(); |
|---|
| 513 | 511 | ctr_crypt_final(ctx, &walk); |
|---|
| 514 | | - kernel_fpu_end(); |
|---|
| 515 | 512 | err = skcipher_walk_done(&walk, 0); |
|---|
| 516 | 513 | } |
|---|
| 514 | + kernel_fpu_end(); |
|---|
| 517 | 515 | |
|---|
| 518 | 516 | return err; |
|---|
| 519 | 517 | } |
|---|