Message ID | 1533909599-26263-1-git-send-email-igor.opaniuk@linaro.org |
---|---|
State | Accepted |
Commit | 7a5fbfe64154c7474a9af2f3ff0a57ea2089fd87 |
Headers | show |
Series | [v3,1/1] avb2.0: add get_size_of_partition() | expand |
On 08/10/2018 08:59 AM, Igor Opaniuk wrote: > Implement get_size_of_partition() operation, > which is required by the latest upstream libavb [1]. > > [1] https://android.googlesource.com/platform/external/avb/+/android-p-preview-5 > > Signed-off-by: Igor Opaniuk <igor.opaniuk@linaro.org> Sam reviewed v1, not sure enough changed to drop his review tag, anyway for me: Acked-by: Andrew F. Davis <afd@ti.com> > --- > > Changes for v3: > - reword commit message, added avblib repository link, that stick to specific > tag > - fix get_size_of_partition() function description. > > Changes for v2: > - change the return code for the case when out_size_num_bytes is NULL > (s/AVB_IO_RESULT_ERROR_IO/AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE/g) > > common/avb_verify.c | 33 ++++++++++++++++++++++++++++++++- > 1 file changed, 32 insertions(+), 1 deletion(-) > > diff --git a/common/avb_verify.c b/common/avb_verify.c > index 20e35ad..82ddebc 100644 > --- a/common/avb_verify.c > +++ b/common/avb_verify.c > @@ -700,6 +700,37 @@ static AvbIOResult get_unique_guid_for_partition(AvbOps *ops, > } > > /** > + * get_size_of_partition() - gets the size of a partition identified > + * by a string name > + * > + * @ops: contains AVB ops handlers > + * @partition: partition name (NUL-terminated UTF-8 string) > + * @out_size_num_bytes: returns the value of a partition size > + * > + * @return: > + * AVB_IO_RESULT_OK, on success (GUID found) > + * AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE, out_size_num_bytes is NULL > + * AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION, if partition was not found > + */ > +static AvbIOResult get_size_of_partition(AvbOps *ops, > + const char *partition, > + u64 *out_size_num_bytes) > +{ > + struct mmc_part *part; > + > + if (!out_size_num_bytes) > + return AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE; > + > + part = get_partition(ops, partition); > + if (!part) > + return AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION; > + > + *out_size_num_bytes = part->info.blksz * part->info.size; > + > + return AVB_IO_RESULT_OK; > +} > + > +/** > * ============================================================================ > * AVB2.0 AvbOps alloc/initialisation/free > * ============================================================================ > @@ -722,7 +753,7 @@ AvbOps *avb_ops_alloc(int boot_device) > ops_data->ops.read_is_device_unlocked = read_is_device_unlocked; > ops_data->ops.get_unique_guid_for_partition = > get_unique_guid_for_partition; > - > + ops_data->ops.get_size_of_partition = get_size_of_partition; > ops_data->mmc_dev = boot_device; > > return &ops_data->ops; >
Sam, Could you please double-check this patch and confirm that your tag can be still applied? Thanks! On 10 August 2018 at 17:06, Andrew F. Davis <afd@ti.com> wrote: > On 08/10/2018 08:59 AM, Igor Opaniuk wrote: >> Implement get_size_of_partition() operation, >> which is required by the latest upstream libavb [1]. >> >> [1] https://android.googlesource.com/platform/external/avb/+/android-p-preview-5 >> >> Signed-off-by: Igor Opaniuk <igor.opaniuk@linaro.org> > > > Sam reviewed v1, not sure enough changed to drop his review tag, anyway > for me: > > Acked-by: Andrew F. Davis <afd@ti.com> > >> --- >> >> Changes for v3: >> - reword commit message, added avblib repository link, that stick to specific >> tag >> - fix get_size_of_partition() function description. >> >> Changes for v2: >> - change the return code for the case when out_size_num_bytes is NULL >> (s/AVB_IO_RESULT_ERROR_IO/AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE/g) >> >> common/avb_verify.c | 33 ++++++++++++++++++++++++++++++++- >> 1 file changed, 32 insertions(+), 1 deletion(-) >> >> diff --git a/common/avb_verify.c b/common/avb_verify.c >> index 20e35ad..82ddebc 100644 >> --- a/common/avb_verify.c >> +++ b/common/avb_verify.c >> @@ -700,6 +700,37 @@ static AvbIOResult get_unique_guid_for_partition(AvbOps *ops, >> } >> >> /** >> + * get_size_of_partition() - gets the size of a partition identified >> + * by a string name >> + * >> + * @ops: contains AVB ops handlers >> + * @partition: partition name (NUL-terminated UTF-8 string) >> + * @out_size_num_bytes: returns the value of a partition size >> + * >> + * @return: >> + * AVB_IO_RESULT_OK, on success (GUID found) >> + * AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE, out_size_num_bytes is NULL >> + * AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION, if partition was not found >> + */ >> +static AvbIOResult get_size_of_partition(AvbOps *ops, >> + const char *partition, >> + u64 *out_size_num_bytes) >> +{ >> + struct mmc_part *part; >> + >> + if (!out_size_num_bytes) >> + return AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE; >> + >> + part = get_partition(ops, partition); >> + if (!part) >> + return AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION; >> + >> + *out_size_num_bytes = part->info.blksz * part->info.size; >> + >> + return AVB_IO_RESULT_OK; >> +} >> + >> +/** >> * ============================================================================ >> * AVB2.0 AvbOps alloc/initialisation/free >> * ============================================================================ >> @@ -722,7 +753,7 @@ AvbOps *avb_ops_alloc(int boot_device) >> ops_data->ops.read_is_device_unlocked = read_is_device_unlocked; >> ops_data->ops.get_unique_guid_for_partition = >> get_unique_guid_for_partition; >> - >> + ops_data->ops.get_size_of_partition = get_size_of_partition; >> ops_data->mmc_dev = boot_device; >> >> return &ops_data->ops; >>
On Fri, Aug 10, 2018 at 5:14 PM, Igor Opaniuk <igor.opaniuk@linaro.org> wrote: > Sam, > > Could you please double-check this patch and confirm that your tag can > be still applied? > Sure. Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> > Thanks! > > On 10 August 2018 at 17:06, Andrew F. Davis <afd@ti.com> wrote: >> On 08/10/2018 08:59 AM, Igor Opaniuk wrote: >>> Implement get_size_of_partition() operation, >>> which is required by the latest upstream libavb [1]. >>> >>> [1] https://android.googlesource.com/platform/external/avb/+/android-p-preview-5 >>> >>> Signed-off-by: Igor Opaniuk <igor.opaniuk@linaro.org> >> >> >> Sam reviewed v1, not sure enough changed to drop his review tag, anyway >> for me: >> >> Acked-by: Andrew F. Davis <afd@ti.com> >> >>> --- >>> >>> Changes for v3: >>> - reword commit message, added avblib repository link, that stick to specific >>> tag >>> - fix get_size_of_partition() function description. >>> >>> Changes for v2: >>> - change the return code for the case when out_size_num_bytes is NULL >>> (s/AVB_IO_RESULT_ERROR_IO/AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE/g) >>> >>> common/avb_verify.c | 33 ++++++++++++++++++++++++++++++++- >>> 1 file changed, 32 insertions(+), 1 deletion(-) >>> >>> diff --git a/common/avb_verify.c b/common/avb_verify.c >>> index 20e35ad..82ddebc 100644 >>> --- a/common/avb_verify.c >>> +++ b/common/avb_verify.c >>> @@ -700,6 +700,37 @@ static AvbIOResult get_unique_guid_for_partition(AvbOps *ops, >>> } >>> >>> /** >>> + * get_size_of_partition() - gets the size of a partition identified >>> + * by a string name >>> + * >>> + * @ops: contains AVB ops handlers >>> + * @partition: partition name (NUL-terminated UTF-8 string) >>> + * @out_size_num_bytes: returns the value of a partition size >>> + * >>> + * @return: >>> + * AVB_IO_RESULT_OK, on success (GUID found) >>> + * AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE, out_size_num_bytes is NULL >>> + * AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION, if partition was not found >>> + */ >>> +static AvbIOResult get_size_of_partition(AvbOps *ops, >>> + const char *partition, >>> + u64 *out_size_num_bytes) >>> +{ >>> + struct mmc_part *part; >>> + >>> + if (!out_size_num_bytes) >>> + return AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE; >>> + >>> + part = get_partition(ops, partition); >>> + if (!part) >>> + return AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION; >>> + >>> + *out_size_num_bytes = part->info.blksz * part->info.size; >>> + >>> + return AVB_IO_RESULT_OK; >>> +} >>> + >>> +/** >>> * ============================================================================ >>> * AVB2.0 AvbOps alloc/initialisation/free >>> * ============================================================================ >>> @@ -722,7 +753,7 @@ AvbOps *avb_ops_alloc(int boot_device) >>> ops_data->ops.read_is_device_unlocked = read_is_device_unlocked; >>> ops_data->ops.get_unique_guid_for_partition = >>> get_unique_guid_for_partition; >>> - >>> + ops_data->ops.get_size_of_partition = get_size_of_partition; >>> ops_data->mmc_dev = boot_device; >>> >>> return &ops_data->ops; >>> > > > > -- > Regards, > Igor Opaniuk
On Fri, Aug 10, 2018 at 04:59:59PM +0300, Igor Opaniuk wrote: > Implement get_size_of_partition() operation, > which is required by the latest upstream libavb [1]. > > [1] https://android.googlesource.com/platform/external/avb/+/android-p-preview-5 > > Signed-off-by: Igor Opaniuk <igor.opaniuk@linaro.org> > Acked-by: Andrew F. Davis <afd@ti.com> > Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> Applied to u-boot/master, thanks! -- Tom
diff --git a/common/avb_verify.c b/common/avb_verify.c index 20e35ad..82ddebc 100644 --- a/common/avb_verify.c +++ b/common/avb_verify.c @@ -700,6 +700,37 @@ static AvbIOResult get_unique_guid_for_partition(AvbOps *ops, } /** + * get_size_of_partition() - gets the size of a partition identified + * by a string name + * + * @ops: contains AVB ops handlers + * @partition: partition name (NUL-terminated UTF-8 string) + * @out_size_num_bytes: returns the value of a partition size + * + * @return: + * AVB_IO_RESULT_OK, on success (GUID found) + * AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE, out_size_num_bytes is NULL + * AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION, if partition was not found + */ +static AvbIOResult get_size_of_partition(AvbOps *ops, + const char *partition, + u64 *out_size_num_bytes) +{ + struct mmc_part *part; + + if (!out_size_num_bytes) + return AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE; + + part = get_partition(ops, partition); + if (!part) + return AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION; + + *out_size_num_bytes = part->info.blksz * part->info.size; + + return AVB_IO_RESULT_OK; +} + +/** * ============================================================================ * AVB2.0 AvbOps alloc/initialisation/free * ============================================================================ @@ -722,7 +753,7 @@ AvbOps *avb_ops_alloc(int boot_device) ops_data->ops.read_is_device_unlocked = read_is_device_unlocked; ops_data->ops.get_unique_guid_for_partition = get_unique_guid_for_partition; - + ops_data->ops.get_size_of_partition = get_size_of_partition; ops_data->mmc_dev = boot_device; return &ops_data->ops;
Implement get_size_of_partition() operation, which is required by the latest upstream libavb [1]. [1] https://android.googlesource.com/platform/external/avb/+/android-p-preview-5 Signed-off-by: Igor Opaniuk <igor.opaniuk@linaro.org> --- Changes for v3: - reword commit message, added avblib repository link, that stick to specific tag - fix get_size_of_partition() function description. Changes for v2: - change the return code for the case when out_size_num_bytes is NULL (s/AVB_IO_RESULT_ERROR_IO/AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE/g) common/avb_verify.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-)