hc
2024-05-10 cde9070d9970eef1f7ec2360586c802a16230ad8
kernel/drivers/crypto/stm32/stm32-hash.c
....@@ -564,9 +564,9 @@
564564 }
565565
566566 for_each_sg(rctx->sg, tsg, rctx->nents, i) {
567
+ sg[0] = *tsg;
567568 len = sg->length;
568569
569
- sg[0] = *tsg;
570570 if (sg_is_last(sg)) {
571571 if (hdev->dma_mode == 1) {
572572 len = (ALIGN(sg->length, 16) - 16);
....@@ -1565,9 +1565,7 @@
15651565 if (!hdev)
15661566 return -ENODEV;
15671567
1568
- ret = pm_runtime_resume_and_get(hdev->dev);
1569
- if (ret < 0)
1570
- return ret;
1568
+ ret = pm_runtime_get_sync(hdev->dev);
15711569
15721570 stm32_hash_unregister_algs(hdev);
15731571
....@@ -1583,7 +1581,8 @@
15831581 pm_runtime_disable(hdev->dev);
15841582 pm_runtime_put_noidle(hdev->dev);
15851583
1586
- clk_disable_unprepare(hdev->clk);
1584
+ if (ret >= 0)
1585
+ clk_disable_unprepare(hdev->clk);
15871586
15881587 return 0;
15891588 }