[U-Boot] [PATCH 1/2] avb: Fix build when CONFIG_OPTEE_TA_AVB is disabled

When having only these AVB related configs enabled:
CONFIG_AVB_VERIFY=y CONFIG_CMD_AVB=y CONFIG_LIBAVB=y
build fails with next errors:
common/avb_verify.c: In function 'read_persistent_value': common/avb_verify.c:867:6: warning: implicit declaration of function 'get_open_session' common/avb_verify.c:870:45: error: 'struct AvbOpsData' has no member named 'tee' common/avb_verify.c:894:7: warning: implicit declaration of function 'invoke_func' common/avb_verify.c: In function 'write_persistent_value': common/avb_verify.c:931:45: error: 'struct AvbOpsData' has no member named 'tee'
Guard read_persistent_value() and write_persistent_value() functions by checking if CONFIG_OPTEE_TA_AVB is enabled (as those are only used in that case) to fix the build with mentioned configuration.
Signed-off-by: Sam Protsenko semen.protsenko@linaro.org --- common/avb_verify.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/common/avb_verify.c b/common/avb_verify.c index 32034d927c..36898a610f 100644 --- a/common/avb_verify.c +++ b/common/avb_verify.c @@ -851,6 +851,7 @@ static AvbIOResult get_size_of_partition(AvbOps *ops, return AVB_IO_RESULT_OK; }
+#ifdef CONFIG_OPTEE_TA_AVB static AvbIOResult read_persistent_value(AvbOps *ops, const char *name, size_t buffer_size, @@ -968,6 +969,8 @@ free_name:
return rc; } +#endif + /** * ============================================================================ * AVB2.0 AvbOps alloc/initialisation/free

When building U-Boot with AVB enabled, compiler shows next warnings:
cmd/avb.c: In function 'do_avb_read_pvalue': cmd/avb.c:371:18: warning: format '%ld' expects argument of type 'long int', but argument 2 has type 'size_t' {aka 'unsigned int'} [-Wformat=] printf("Read %ld bytes, value = %s\n", bytes_read, ~~^ ~~~~~~~~~~ %d
cmd/avb.c: In function 'do_avb_write_pvalue': cmd/avb.c:404:19: warning: format '%ld' expects argument of type 'long int', but argument 2 has type '__kernel_size_t' {aka 'unsigned int'} [-Wformat=] printf("Wrote %ld bytes\n", strlen(value) + 1); ~~^ ~~~~~~~~~~~~~~~~~ %d
Fix those by using "%zu" specified.
Signed-off-by: Sam Protsenko semen.protsenko@linaro.org --- cmd/avb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cmd/avb.c b/cmd/avb.c index c5af4a2e46..3f6fd763a0 100644 --- a/cmd/avb.c +++ b/cmd/avb.c @@ -368,7 +368,7 @@ int do_avb_read_pvalue(cmd_tbl_t *cmdtp, int flag, int argc,
if (avb_ops->read_persistent_value(avb_ops, name, bytes, buffer, &bytes_read) == AVB_IO_RESULT_OK) { - printf("Read %ld bytes, value = %s\n", bytes_read, + printf("Read %zu bytes, value = %s\n", bytes_read, (char *)buffer); free(buffer); return CMD_RET_SUCCESS; @@ -401,7 +401,7 @@ int do_avb_write_pvalue(cmd_tbl_t *cmdtp, int flag, int argc, if (avb_ops->write_persistent_value(avb_ops, name, strlen(value) + 1, (const uint8_t *)value) == AVB_IO_RESULT_OK) { - printf("Wrote %ld bytes\n", strlen(value) + 1); + printf("Wrote %zu bytes\n", strlen(value) + 1); return CMD_RET_SUCCESS; }

Hi,
On Wed, Jul 31, 2019 at 7:59 PM Sam Protsenko semen.protsenko@linaro.org wrote:
When building U-Boot with AVB enabled, compiler shows next warnings:
cmd/avb.c: In function 'do_avb_read_pvalue': cmd/avb.c:371:18: warning: format '%ld' expects argument of type 'long int', but argument 2 has type 'size_t' {aka 'unsigned int'} [-Wformat=] printf("Read %ld bytes, value = %s\n", bytes_read, ~~^ ~~~~~~~~~~ %d cmd/avb.c: In function 'do_avb_write_pvalue': cmd/avb.c:404:19: warning: format '%ld' expects argument of type 'long int', but argument 2 has type '__kernel_size_t' {aka 'unsigned int'} [-Wformat=] printf("Wrote %ld bytes\n", strlen(value) + 1); ~~^ ~~~~~~~~~~~~~~~~~ %d
Fix those by using "%zu" specified.
Signed-off-by: Sam Protsenko semen.protsenko@linaro.org
cmd/avb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cmd/avb.c b/cmd/avb.c index c5af4a2e46..3f6fd763a0 100644 --- a/cmd/avb.c +++ b/cmd/avb.c @@ -368,7 +368,7 @@ int do_avb_read_pvalue(cmd_tbl_t *cmdtp, int flag, int argc,
if (avb_ops->read_persistent_value(avb_ops, name, bytes, buffer, &bytes_read) == AVB_IO_RESULT_OK) {
printf("Read %ld bytes, value = %s\n", bytes_read,
printf("Read %zu bytes, value = %s\n", bytes_read, (char *)buffer); free(buffer); return CMD_RET_SUCCESS;
@@ -401,7 +401,7 @@ int do_avb_write_pvalue(cmd_tbl_t *cmdtp, int flag, int argc, if (avb_ops->write_persistent_value(avb_ops, name, strlen(value) + 1, (const uint8_t *)value) == AVB_IO_RESULT_OK) {
printf("Wrote %ld bytes\n", strlen(value) + 1);
printf("Wrote %zu bytes\n", strlen(value) + 1); return CMD_RET_SUCCESS; }
-- 2.20.1
Reviewed-by: Igor Opaniuk igor.opaniuk@gmail.com

On Wed, Jul 31, 2019 at 07:59:09PM +0300, Sam Protsenko wrote:
When building U-Boot with AVB enabled, compiler shows next warnings:
cmd/avb.c: In function 'do_avb_read_pvalue': cmd/avb.c:371:18: warning: format '%ld' expects argument of type 'long int', but argument 2 has type 'size_t' {aka 'unsigned int'} [-Wformat=] printf("Read %ld bytes, value = %s\n", bytes_read, ~~^ ~~~~~~~~~~ %d cmd/avb.c: In function 'do_avb_write_pvalue': cmd/avb.c:404:19: warning: format '%ld' expects argument of type 'long int', but argument 2 has type '__kernel_size_t' {aka 'unsigned int'} [-Wformat=] printf("Wrote %ld bytes\n", strlen(value) + 1); ~~^ ~~~~~~~~~~~~~~~~~ %d
Fix those by using "%zu" specified.
Signed-off-by: Sam Protsenko semen.protsenko@linaro.org Reviewed-by: Igor Opaniuk igor.opaniuk@gmail.com
Applied to u-boot/master, thanks!

Hi,
On Wed, Jul 31, 2019 at 7:59 PM Sam Protsenko semen.protsenko@linaro.org wrote:
When having only these AVB related configs enabled:
CONFIG_AVB_VERIFY=y CONFIG_CMD_AVB=y CONFIG_LIBAVB=y
build fails with next errors:
common/avb_verify.c: In function 'read_persistent_value': common/avb_verify.c:867:6: warning: implicit declaration of function 'get_open_session' common/avb_verify.c:870:45: error: 'struct AvbOpsData' has no member named 'tee' common/avb_verify.c:894:7: warning: implicit declaration of function 'invoke_func' common/avb_verify.c: In function 'write_persistent_value': common/avb_verify.c:931:45: error: 'struct AvbOpsData' has no member named 'tee'
Guard read_persistent_value() and write_persistent_value() functions by checking if CONFIG_OPTEE_TA_AVB is enabled (as those are only used in that case) to fix the build with mentioned configuration.
Signed-off-by: Sam Protsenko semen.protsenko@linaro.org
common/avb_verify.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/common/avb_verify.c b/common/avb_verify.c index 32034d927c..36898a610f 100644 --- a/common/avb_verify.c +++ b/common/avb_verify.c @@ -851,6 +851,7 @@ static AvbIOResult get_size_of_partition(AvbOps *ops, return AVB_IO_RESULT_OK; }
+#ifdef CONFIG_OPTEE_TA_AVB static AvbIOResult read_persistent_value(AvbOps *ops, const char *name, size_t buffer_size, @@ -968,6 +969,8 @@ free_name:
return rc;
} +#endif
/**
- ============================================================================
- AVB2.0 AvbOps alloc/initialisation/free
-- 2.20.1
Reviewed-by: Igor Opaniuk igor.opaniuk@gmail.com

Hi Tom,
On Thu, Aug 1, 2019 at 2:15 PM Igor Opaniuk igor.opaniuk@gmail.com wrote:
Hi,
On Wed, Jul 31, 2019 at 7:59 PM Sam Protsenko semen.protsenko@linaro.org wrote:
When having only these AVB related configs enabled:
CONFIG_AVB_VERIFY=y CONFIG_CMD_AVB=y CONFIG_LIBAVB=y
build fails with next errors:
common/avb_verify.c: In function 'read_persistent_value': common/avb_verify.c:867:6: warning: implicit declaration of function 'get_open_session' common/avb_verify.c:870:45: error: 'struct AvbOpsData' has no member named 'tee' common/avb_verify.c:894:7: warning: implicit declaration of function 'invoke_func' common/avb_verify.c: In function 'write_persistent_value': common/avb_verify.c:931:45: error: 'struct AvbOpsData' has no member named 'tee'
Guard read_persistent_value() and write_persistent_value() functions by checking if CONFIG_OPTEE_TA_AVB is enabled (as those are only used in that case) to fix the build with mentioned configuration.
Signed-off-by: Sam Protsenko semen.protsenko@linaro.org
common/avb_verify.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/common/avb_verify.c b/common/avb_verify.c index 32034d927c..36898a610f 100644 --- a/common/avb_verify.c +++ b/common/avb_verify.c @@ -851,6 +851,7 @@ static AvbIOResult get_size_of_partition(AvbOps *ops, return AVB_IO_RESULT_OK; }
+#ifdef CONFIG_OPTEE_TA_AVB static AvbIOResult read_persistent_value(AvbOps *ops, const char *name, size_t buffer_size, @@ -968,6 +969,8 @@ free_name:
return rc;
} +#endif
/**
- ============================================================================
- AVB2.0 AvbOps alloc/initialisation/free
-- 2.20.1
Reviewed-by: Igor Opaniuk igor.opaniuk@gmail.com
Can you please pull this series (2 patches) to -rc2? It fixes the build with AVB enabled.
Thanks!
-- Best regards - Freundliche Grüsse - Meilleures salutations
Igor Opaniuk
mailto: igor.opaniuk@gmail.com skype: igor.opanyuk +380 (93) 836 40 67 http://ua.linkedin.com/in/iopaniuk

On Wed, Jul 31, 2019 at 07:59:08PM +0300, Sam Protsenko wrote:
When having only these AVB related configs enabled:
CONFIG_AVB_VERIFY=y CONFIG_CMD_AVB=y CONFIG_LIBAVB=y
build fails with next errors:
common/avb_verify.c: In function 'read_persistent_value': common/avb_verify.c:867:6: warning: implicit declaration of function 'get_open_session' common/avb_verify.c:870:45: error: 'struct AvbOpsData' has no member named 'tee' common/avb_verify.c:894:7: warning: implicit declaration of function 'invoke_func' common/avb_verify.c: In function 'write_persistent_value': common/avb_verify.c:931:45: error: 'struct AvbOpsData' has no member named 'tee'
Guard read_persistent_value() and write_persistent_value() functions by checking if CONFIG_OPTEE_TA_AVB is enabled (as those are only used in that case) to fix the build with mentioned configuration.
Signed-off-by: Sam Protsenko semen.protsenko@linaro.org Reviewed-by: Igor Opaniuk igor.opaniuk@gmail.com
Applied to u-boot/master, thanks!
participants (3)
-
Igor Opaniuk
-
Sam Protsenko
-
Tom Rini