| .. | .. |
|---|
| 67 | 67 | static void default_key_dtr(struct dm_target *ti) |
|---|
| 68 | 68 | { |
|---|
| 69 | 69 | struct default_key_c *dkc = ti->private; |
|---|
| 70 | | - int err; |
|---|
| 71 | 70 | |
|---|
| 72 | 71 | if (dkc->dev) { |
|---|
| 73 | | - err = blk_crypto_evict_key(dkc->dev->bdev->bd_queue, &dkc->key); |
|---|
| 74 | | - if (err && err != -ENOKEY) |
|---|
| 75 | | - DMWARN("Failed to evict crypto key: %d", err); |
|---|
| 72 | + blk_crypto_evict_key(bdev_get_queue(dkc->dev->bdev), &dkc->key); |
|---|
| 76 | 73 | dm_put_device(ti, dkc->dev); |
|---|
| 77 | 74 | } |
|---|
| 78 | | - kzfree(dkc->cipher_string); |
|---|
| 79 | | - kzfree(dkc); |
|---|
| 75 | + kfree_sensitive(dkc->cipher_string); |
|---|
| 76 | + kfree_sensitive(dkc); |
|---|
| 80 | 77 | } |
|---|
| 81 | 78 | |
|---|
| 82 | 79 | static int default_key_ctr_optional(struct dm_target *ti, |
|---|
| .. | .. |
|---|
| 245 | 242 | goto bad; |
|---|
| 246 | 243 | } |
|---|
| 247 | 244 | |
|---|
| 248 | | - err = blk_crypto_start_using_mode(cipher->mode_num, dun_bytes, |
|---|
| 249 | | - dkc->sector_size, dkc->is_hw_wrapped, |
|---|
| 250 | | - dkc->dev->bdev->bd_queue); |
|---|
| 245 | + err = blk_crypto_start_using_key(&dkc->key, |
|---|
| 246 | + bdev_get_queue(dkc->dev->bdev)); |
|---|
| 251 | 247 | if (err) { |
|---|
| 252 | 248 | ti->error = "Error starting to use blk-crypto"; |
|---|
| 253 | 249 | goto bad; |
|---|
| 254 | 250 | } |
|---|
| 255 | 251 | |
|---|
| 256 | 252 | ti->num_flush_bios = 1; |
|---|
| 257 | | - |
|---|
| 258 | | - ti->may_passthrough_inline_crypto = true; |
|---|
| 259 | 253 | |
|---|
| 260 | 254 | err = 0; |
|---|
| 261 | 255 | goto out; |
|---|
| .. | .. |
|---|
| 388 | 382 | const unsigned int sector_size = dkc->sector_size; |
|---|
| 389 | 383 | |
|---|
| 390 | 384 | limits->logical_block_size = |
|---|
| 391 | | - max_t(unsigned short, limits->logical_block_size, sector_size); |
|---|
| 385 | + max_t(unsigned int, limits->logical_block_size, sector_size); |
|---|
| 392 | 386 | limits->physical_block_size = |
|---|
| 393 | 387 | max_t(unsigned int, limits->physical_block_size, sector_size); |
|---|
| 394 | 388 | limits->io_min = max_t(unsigned int, limits->io_min, sector_size); |
|---|
| .. | .. |
|---|
| 397 | 391 | static struct target_type default_key_target = { |
|---|
| 398 | 392 | .name = "default-key", |
|---|
| 399 | 393 | .version = {2, 1, 0}, |
|---|
| 394 | + .features = DM_TARGET_PASSES_CRYPTO, |
|---|
| 400 | 395 | .module = THIS_MODULE, |
|---|
| 401 | 396 | .ctr = default_key_ctr, |
|---|
| 402 | 397 | .dtr = default_key_dtr, |
|---|