File tree Expand file tree Collapse file tree 1 file changed +13
-1
lines changed
src/devices/block/drivers/ufs/test/mock-device Expand file tree Collapse file tree 1 file changed +13
-1
lines changed Original file line number Diff line number Diff line change 4
4
5
5
#include " fake-dma-handler.h"
6
6
7
+ #include < lib/fit/defer.h>
7
8
#include < lib/zx/vmar.h>
9
+
8
10
namespace ufs {
9
11
namespace ufs_mock_device {
10
12
@@ -40,7 +42,15 @@ zx::result<zx_vaddr_t> FakeDmaHandler::PhysToVirt(zx_paddr_t paddr) {
40
42
return zx::error (status);
41
43
}
42
44
43
- for (uint32_t vmo_info_index = 0 ; vmo_info_index < vmo_info_num; ++vmo_info_index) {
45
+ uint32_t vmo_info_index;
46
+ auto defer = fit::defer ([&]() {
47
+ // Close all remaining handles
48
+ for (++vmo_info_index; vmo_info_index < vmo_info_num; ++vmo_info_index) {
49
+ zx_handle_close (vmo_infos[vmo_info_index].vmo );
50
+ }
51
+ });
52
+
53
+ for (vmo_info_index = 0 ; vmo_info_index < vmo_info_num; ++vmo_info_index) {
44
54
auto vmo = zx::vmo (vmo_infos[vmo_info_index].vmo );
45
55
size_t num_paddrs;
46
56
std::vector<zx_paddr_t > paddrs (kFakeBtiAddrsCount );
@@ -65,6 +75,8 @@ zx::result<zx_vaddr_t> FakeDmaHandler::PhysToVirt(zx_paddr_t paddr) {
65
75
}
66
76
}
67
77
}
78
+
79
+ defer.cancel ();
68
80
return zx::error (ZX_ERR_NOT_FOUND);
69
81
}
70
82
You can’t perform that action at this time.
0 commit comments