forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/drivers/md/dm-default-key.c
....@@ -70,13 +70,14 @@
7070 int err;
7171
7272 if (dkc->dev) {
73
- err = blk_crypto_evict_key(dkc->dev->bdev->bd_queue, &dkc->key);
73
+ err = blk_crypto_evict_key(bdev_get_queue(dkc->dev->bdev),
74
+ &dkc->key);
7475 if (err && err != -ENOKEY)
7576 DMWARN("Failed to evict crypto key: %d", err);
7677 dm_put_device(ti, dkc->dev);
7778 }
78
- kzfree(dkc->cipher_string);
79
- kzfree(dkc);
79
+ kfree_sensitive(dkc->cipher_string);
80
+ kfree_sensitive(dkc);
8081 }
8182
8283 static int default_key_ctr_optional(struct dm_target *ti,
....@@ -245,17 +246,14 @@
245246 goto bad;
246247 }
247248
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);
249
+ err = blk_crypto_start_using_key(&dkc->key,
250
+ bdev_get_queue(dkc->dev->bdev));
251251 if (err) {
252252 ti->error = "Error starting to use blk-crypto";
253253 goto bad;
254254 }
255255
256256 ti->num_flush_bios = 1;
257
-
258
- ti->may_passthrough_inline_crypto = true;
259257
260258 err = 0;
261259 goto out;
....@@ -388,7 +386,7 @@
388386 const unsigned int sector_size = dkc->sector_size;
389387
390388 limits->logical_block_size =
391
- max_t(unsigned short, limits->logical_block_size, sector_size);
389
+ max_t(unsigned int, limits->logical_block_size, sector_size);
392390 limits->physical_block_size =
393391 max_t(unsigned int, limits->physical_block_size, sector_size);
394392 limits->io_min = max_t(unsigned int, limits->io_min, sector_size);
....@@ -397,6 +395,7 @@
397395 static struct target_type default_key_target = {
398396 .name = "default-key",
399397 .version = {2, 1, 0},
398
+ .features = DM_TARGET_PASSES_CRYPTO,
400399 .module = THIS_MODULE,
401400 .ctr = default_key_ctr,
402401 .dtr = default_key_dtr,