[PATCH 02/14] lmb: Use CONFIG_LMB_*_REGIONS only if they are defined

Tom Rini trini at konsulko.com
Mon Aug 30 00:51:26 CEST 2021


On Mon, Aug 30, 2021 at 12:40:07AM +0200, Marek Vasut wrote:
> On 8/30/21 12:23 AM, Tom Rini wrote:
> > On Mon, Aug 30, 2021 at 12:19:59AM +0200, Marek Vasut wrote:
> > > On 8/30/21 12:10 AM, Tom Rini wrote:
> > > > On Sun, Aug 29, 2021 at 11:47:58PM +0200, Marek Vasut wrote:
> > > > > On 8/29/21 9:32 PM, Tom Rini wrote:
> > > > > > On Sun, Aug 29, 2021 at 09:24:46PM +0200, Marek Vasut wrote:
> > > > > > > On 8/29/21 8:02 PM, Tom Rini wrote:
> > > > > > > > On Sun, Aug 29, 2021 at 06:26:23PM +0200, Marek Vasut wrote:
> > > > > > > > > On 8/15/21 9:47 PM, Tom Rini wrote:
> > > > > > > > > > On Sun, Aug 15, 2021 at 08:13:02PM +0200, Marek Vasut wrote:
> > > > > > > > > > 
> > > > > > > > > > > The CONFIG_LMB_*_REGIONS are defined only if CONFIG_LMB is enabled,
> > > > > > > > > > > protect access to those two config options to avoid undefined macro
> > > > > > > > > > > errors.
> > > > > > > > > > > 
> > > > > > > > > > > Signed-off-by: Marek Vasut <marek.vasut+renesas at gmail.com>
> > > > > > > > > > > Cc: Simon Glass <sjg at chromium.org>
> > > > > > > > > > > Cc: Simon Goldschmidt <simon.k.r.goldschmidt at gmail.com>
> > > > > > > > > > > Cc: Tom Rini <trini at konsulko.com>
> > > > > > > > > > > ---
> > > > > > > > > > >       include/lmb.h | 4 ++--
> > > > > > > > > > >       1 file changed, 2 insertions(+), 2 deletions(-)
> > > > > > > > > > > 
> > > > > > > > > > > diff --git a/include/lmb.h b/include/lmb.h
> > > > > > > > > > > index 3c4afdf9f0..fa1474a360 100644
> > > > > > > > > > > --- a/include/lmb.h
> > > > > > > > > > > +++ b/include/lmb.h
> > > > > > > > > > > @@ -44,7 +44,7 @@ struct lmb_property {
> > > > > > > > > > >       struct lmb_region {
> > > > > > > > > > >       	unsigned long cnt;
> > > > > > > > > > >       	unsigned long max;
> > > > > > > > > > > -#if IS_ENABLED(CONFIG_LMB_USE_MAX_REGIONS)
> > > > > > > > > > > +#if IS_ENABLED(CONFIG_LMB) && IS_ENABLED(CONFIG_LMB_USE_MAX_REGIONS)
> > > > > > > > 
> > > > > > > > This doesn't make sense to me, still.  You cannot enable
> > > > > > > > CONFIG_LMB_USE_MAX_REGIONS without CONFIG_LMB as the former depends on
> > > > > > > > the latter in Kconfig.
> > > > > > > > 
> > > > > > > > > > >       	struct lmb_property region[CONFIG_LMB_MAX_REGIONS];
> > > > > > > > > > >       #else
> > > > > > > > > > >       	struct lmb_property *region;
> > > > > > > > > > > @@ -67,7 +67,7 @@ struct lmb_region {
> > > > > > > > > > >       struct lmb {
> > > > > > > > > > >       	struct lmb_region memory;
> > > > > > > > > > >       	struct lmb_region reserved;
> > > > > > > > > > > -#if !IS_ENABLED(CONFIG_LMB_USE_MAX_REGIONS)
> > > > > > > > > > > +#if IS_ENABLED(CONFIG_LMB) && !IS_ENABLED(CONFIG_LMB_USE_MAX_REGIONS)
> > > > > > > > > > >       	struct lmb_property memory_regions[CONFIG_LMB_MEMORY_REGIONS];
> > > > > > > > > > >       	struct lmb_property reserved_regions[CONFIG_LMB_RESERVED_REGIONS];
> > > > > > > > > > >       #endif
> > > > > > > > > > 
> > > > > > > > > > We shouldn't need this at all.  LMB and LMB_USE_MAX_REGIONS are both in
> > > > > > > > > > Kconfig and have the dependencies expressed that way.
> > > > > > > > > 
> > > > > > > > > However, CONFIG_LMB_MEMORY_REGIONS and CONFIG_LMB_RESERVED_REGIONS may be
> > > > > > > > > undefined if CONFIG_LMB and !CONFIG_LMB_USE_MAX_REGIONS . They are four
> > > > > > > > > different symbols.
> > > > > > > > 
> > > > > > > > I'm still not seeing it, sorry.  Is there some case where we're trying
> > > > > > > > to access a struct lmb without CONFIG_LMB enabled?
> > > > > > > > 
> > > > > > > 
> > > > > > > See build failure
> > > > > > > https://source.denx.de/u-boot/custodians/u-boot-sh/-/jobs/315331
> > > > > > 
> > > > > > Ah, progress.  Drop <lmb.h> from <image.h> since we already have a
> > > > > > forward declaration of struct lmb?  But it's not failing without this
> > > > > > series too, so what's changing?
> > > > > 
> > > > > See 01/14 in this series.
> > > > 
> > > > Ah, so drop 1/14 then.
> > > 
> > > Why ? That patch is correct.
> > 
> > It's not quite right, 1/14 and then 2/14 are papering over the fact that
> > lmb.h, and it's including headers / files, need to be cleaned up so that
> > we don't need to have redundant tests in the header.
> 
> 1/14 disables LMB and CMD_BDI for tools build, we do not need those, so 1/14
> is correct.

We don't need to build u-boot at all for tools-only, only the tools-only
build target.  It's just annoying to exclude the tools-only_defconfig from
"sandbox" in CI.

> What kind of cleanup of lmb.h do you have in mind ?

Remove it from include/image.h and fix any fall-out from that of files
that got <lmb.h> indirectly when they needed it directly instead.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20210829/6c24aeae/attachment.sig>


More information about the U-Boot mailing list