All of lore.kernel.org
 help / color / mirror / Atom feed
From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: u-boot@lists.denx.de
Subject: [PATCH] lib/crypto, efi_loader: avoid multiple inclusions of header files
Date: Fri, 24 Apr 2020 12:50:07 +0900	[thread overview]
Message-ID: <20200424035007.GB16277@laputa> (raw)
In-Reply-To: <71d85bbd-9d66-7198-9417-c8c2a6c22255@gmx.de>

Heinrich,

On Thu, Apr 23, 2020 at 09:34:37AM +0200, Heinrich Schuchardt wrote:
> On 23.04.20 02:28, AKASHI Takahiro wrote:
> > Heinrich,
> >
> > On Tue, Apr 21, 2020 at 12:23:13PM +0200, Heinrich Schuchardt wrote:
> >> On 4/21/20 2:37 AM, AKASHI Takahiro wrote:
> >>> By adding extra symbols, we can now avoid including x509_parser and
> >>> pkcs7_parser.h files multiple times.
> >>>
> >>> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> >>> Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> >>> ---
> >>>  lib/crypto/pkcs7_parser.h         | 4 ++++
> >>>  lib/crypto/x509_parser.h          | 4 ++++
> >>>  lib/efi_loader/efi_image_loader.c | 1 +
> >>>  lib/efi_loader/efi_signature.c    | 1 +
> >>>  4 files changed, 10 insertions(+)
> >>>
> >>> diff --git a/lib/crypto/pkcs7_parser.h b/lib/crypto/pkcs7_parser.h
> >>> index 6565fdc2d4ca..b8234da45a6a 100644
> >>> --- a/lib/crypto/pkcs7_parser.h
> >>> +++ b/lib/crypto/pkcs7_parser.h
> >>> @@ -5,6 +5,9 @@
> >>>   * Written by David Howells (dhowells at redhat.com)
> >>>   */
> >>>
> >>> +#ifndef _PKCS7_PARSER_H
> >>> +#define _PKCS7_PARSER_H
> >>> +
> >>>  #include <linux/oid_registry.h>
> >>>  #include <crypto/pkcs7.h>
> >>>  #include "x509_parser.h"
> >>> @@ -63,3 +66,4 @@ struct pkcs7_message {
> >>>  	size_t		data_hdrlen;	/* Length of Data ASN.1 header */
> >>>  	const void	*data;		/* Content Data (or 0) */
> >>>  };
> >>> +#endif /* _PKCS7_PARSER_H */
> >>> diff --git a/lib/crypto/x509_parser.h b/lib/crypto/x509_parser.h
> >>> index c233f136fb35..4cbdc1d6612d 100644
> >>> --- a/lib/crypto/x509_parser.h
> >>> +++ b/lib/crypto/x509_parser.h
> >>> @@ -5,6 +5,9 @@
> >>>   * Written by David Howells (dhowells at redhat.com)
> >>>   */
> >>>
> >>> +#ifndef _X509_PARSER_H
> >>> +#define _X509_PARSER_H
> >>> +
> >>>  #include <linux/time.h>
> >>>  #include <crypto/public_key.h>
> >>>  #include <keys/asymmetric-type.h>
> >>> @@ -55,3 +58,4 @@ extern int x509_decode_time(time64_t *_t,  size_t hdrlen,
> >>>   */
> >>>  extern int x509_get_sig_params(struct x509_certificate *cert);
> >>>  extern int x509_check_for_self_signed(struct x509_certificate *cert);
> >>> +#endif /* _X509_PARSER_H */
> >>> diff --git a/lib/efi_loader/efi_image_loader.c b/lib/efi_loader/efi_image_loader.c
> >>> index 6c270ce94f44..899adf8493d0 100644
> >>> --- a/lib/efi_loader/efi_image_loader.c
> >>> +++ b/lib/efi_loader/efi_image_loader.c
> >>> @@ -14,6 +14,7 @@
> >>>  #include <pe.h>
> >>>  #include <sort.h>
> >>>  #include "../lib/crypto/pkcs7_parser.h"
> >>> +#include "../lib/crypto/x509_parser.h"
> >>
> >> As pkcs7_parser.h includes x509_parser.h there is no reason to include
> >> it again.
> >
> > No, I don't think so.
> >
> > My style of coding is that, if a symbol is used in a C file and it is
> > defined in a header file, the header file should be *directly* included
> > in the C file.
> > I believe that it is the common way so that we can avoid any "implicit"
> > dependencies among header files.
> 
> We want U-Boot to build as fast as possible. So we should not include
> anything twice. When looking through the rest of the U-Boot code you
> will have noticed that we do not include malloc.h and stdio.h everywhere
> because it is included via common.h.

The same comment here.

-Takahiro Akashi

> As an example of a patch removing other unnecessary includes see for
> instance:
> 
> cmd: fat: remove unused includes
> fd0e30b43b6b2401e68dc32c357869c617d4fdd1
> 
> Best regards
> 
> Heinrich
> 
> >
> > Thanks,
> > -Takahiro Akashi
> >
> >
> >>>
> >>>  const efi_guid_t efi_global_variable_guid = EFI_GLOBAL_VARIABLE_GUID;
> >>>  const efi_guid_t efi_guid_device_path = EFI_DEVICE_PATH_PROTOCOL_GUID;
> >>> diff --git a/lib/efi_loader/efi_signature.c b/lib/efi_loader/efi_signature.c
> >>> index 658e3547da37..6ad09e4acbd7 100644
> >>> --- a/lib/efi_loader/efi_signature.c
> >>> +++ b/lib/efi_loader/efi_signature.c
> >>> @@ -15,6 +15,7 @@
> >>>  #include <u-boot/rsa.h>
> >>>  #include <u-boot/sha256.h>
> >>>  #include "../lib/crypto/pkcs7_parser.h"
> >>> +#include "../lib/crypto/x509_parser.h"
> >>
> >> Same here.
> >>
> >> The rest is correct and should be merged.
> >>
> >> Best regards
> >>
> >> Heinrich
> >>
> >>>
> >>>  const efi_guid_t efi_guid_image_security_database =
> >>>  		EFI_IMAGE_SECURITY_DATABASE_GUID;
> >>>
> >>
> 

  reply	other threads:[~2020-04-24  3:50 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-21  0:37 [PATCH] lib/crypto, efi_loader: avoid multiple inclusions of header files AKASHI Takahiro
2020-04-21 10:23 ` Heinrich Schuchardt
2020-04-23  0:28   ` AKASHI Takahiro
2020-04-23  7:34     ` Heinrich Schuchardt
2020-04-24  3:50       ` AKASHI Takahiro [this message]
2020-05-05 22:39         ` Heinrich Schuchardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200424035007.GB16277@laputa \
    --to=takahiro.akashi@linaro.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.