On Tue, 14 Dec 2021 10:36:00 +0100
Pali Rohár <p...@kernel.org> wrote:

> On Friday 26 November 2021 15:37:37 Marek Behún wrote:
> > @@ -340,17 +333,17 @@ void board_init_f(ulong dummy)
> >     timer_init();
> >  
> >     /* Armada 375 does not support SerDes and DDR3 init yet */
> > -#if !defined(CONFIG_ARMADA_375)
> > -   /* First init the serdes PHY's */
> > -   serdes_phy_config();
> > -
> > -   /* Setup DDR */
> > -   ret = ddr3_init();
> > -   if (ret) {
> > -           debug("ddr3_init() failed: %d\n", ret);
> > -           hang();
> > +   if (!IS_ENABLED(CONFIG_ARMADA_375)) {
> > +           /* First init the serdes PHY's */
> > +           serdes_phy_config();
> > +
> > +           /* Setup DDR */
> > +           ret = ddr3_init();
> > +           if (ret) {
> > +                   debug("ddr3_init() failed: %d\n", ret);
> > +                   hang();
> > +           }
> >     }
> > -#endif  
> 
> As written in comment above there is no SerDes and DDR3 support for
> Armada 375 and therefore there is no serdes_phy_config() or ddr3_init()
> function. So this code needs not to be compiled at all and usage of
> #ifdef is correct here.

#ifdefs are almost never correct in C-files, for the parts of the code
they guard isn't put through syntactic analysis, and can therefore
contain bugs which we are not warned about.

Using if (IS_ENABLED()) almost never producess a different binary,
because the code is optimized away.

Marek

Reply via email to