diff mbox series

[u-boot,v2019.04-aspeed-openbmc] otp: Reduce size of struct otpkey

Message ID 20220714074552.818306-1-joel@jms.id.au
State New
Headers show
Series [u-boot,v2019.04-aspeed-openbmc] otp: Reduce size of struct otpkey | expand

Commit Message

Joel Stanley July 14, 2022, 7:45 a.m. UTC
Don't store more information than is used.

  Function                                     old     new   delta
  _otp_print_key                               540     580     +40
  otp_verify_boot_image                       1336    1328      -8
  a2_key_type                                  640      40    -600
  a1_key_type                                  640      40    -600
  a3_key_type                                 1024      64    -960
  a0_key_type                                 1024      64    -960
  Total: Before=279318, After=276230, chg -1.11%

Signed-off-by: Joel Stanley <joel@jms.id.au>
---
 cmd/otp.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

Zev Weiss July 16, 2022, 9:08 a.m. UTC | #1
On Thu, Jul 14, 2022 at 12:45:52AM PDT, Joel Stanley wrote:
>Don't store more information than is used.
>
>  Function                                     old     new   delta
>  _otp_print_key                               540     580     +40
>  otp_verify_boot_image                       1336    1328      -8
>  a2_key_type                                  640      40    -600
>  a1_key_type                                  640      40    -600
>  a3_key_type                                 1024      64    -960
>  a0_key_type                                 1024      64    -960
>  Total: Before=279318, After=276230, chg -1.11%
>
>Signed-off-by: Joel Stanley <joel@jms.id.au>
>---
> cmd/otp.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
>diff --git a/cmd/otp.c b/cmd/otp.c
>index 049c217d6048..6dd2d2bdfb17 100644
>--- a/cmd/otp.c
>+++ b/cmd/otp.c
>@@ -133,11 +133,11 @@ struct otpstrap_status {
> };
>
> struct otpkey_type {
>-	int value;
>-	int key_type;
>-	int order;
>-	int need_id;
>-	char information[110];
>+	int value: 4;
>+	int key_type: 4;
>+	int order: 1;
>+	int need_id: 1;

I'm not sure if there's any chance it could lead to any actual problems
here, but I think some static analyzers get unhappy about single-bit
signed bitfields...perhaps these (maybe all four?) should be unsigned
instead?

>+	char *information;
> };
>
> struct otp_pro_sts {
>-- 
>2.35.1
>
diff mbox series

Patch

diff --git a/cmd/otp.c b/cmd/otp.c
index 049c217d6048..6dd2d2bdfb17 100644
--- a/cmd/otp.c
+++ b/cmd/otp.c
@@ -133,11 +133,11 @@  struct otpstrap_status {
 };
 
 struct otpkey_type {
-	int value;
-	int key_type;
-	int order;
-	int need_id;
-	char information[110];
+	int value: 4;
+	int key_type: 4;
+	int order: 1;
+	int need_id: 1;
+	char *information;
 };
 
 struct otp_pro_sts {