.. | .. |
---|
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, |
---|