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