aboutsummaryrefslogtreecommitdiff
path: root/src/vendorcode/google/chromeos/vboot2/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vendorcode/google/chromeos/vboot2/common.c')
-rw-r--r--src/vendorcode/google/chromeos/vboot2/common.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/vendorcode/google/chromeos/vboot2/common.c b/src/vendorcode/google/chromeos/vboot2/common.c
index fbad1126f8..4282408535 100644
--- a/src/vendorcode/google/chromeos/vboot2/common.c
+++ b/src/vendorcode/google/chromeos/vboot2/common.c
@@ -115,21 +115,27 @@ struct vb2_shared_data *vb2_get_shared_data(void)
return (void *)((uintptr_t)wd + wd->buffer_offset);
}
-int vb2_get_selected_region(struct region_device *rdev)
+int vb2_get_selected_region(struct region *region)
{
const struct selected_region *reg = vb2_selected_region();
- struct region region = {
- .offset = reg->offset,
- .size = reg->size,
- };
- return vboot_region_device(&region, rdev);
+
+ if (reg == NULL)
+ return -1;
+
+ if (reg->offset == 0 && reg->size == 0)
+ return -1;
+
+ region->offset = reg->offset;
+ region->size = reg->size;
+
+ return 0;
}
-void vb2_set_selected_region(struct region_device *rdev)
+void vb2_set_selected_region(const struct region *region)
{
struct selected_region *reg = vb2_selected_region();
- reg->offset = region_device_offset(rdev);
- reg->size = region_device_sz(rdev);
+ reg->offset = region_offset(region);
+ reg->size = region_sz(region);
}
int vboot_is_slot_selected(void)