Re: [PATCH] mtd: cfi_util: mark expected switch fall-throughs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Gustavo,

"Gustavo A. R. Silva" <gustavo@xxxxxxxxxxxxxx> wrote on Tue, 7 May 2019
10:59:38 -0500:

> On 5/7/19 10:49 AM, Richard Weinberger wrote:
> 
> >> Hi all,
> >>
> >> Thanks a lot for this, Richard:
> >>
> >> https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git/log/?h=mtd%2Fnext&qt=grep&q=fall-through
> >>
> >> There are only two of these warnings left to be addressed in
> >> MTD[1]:
> >>  
> >>        > @@ -3280,12 +3280,14 @@ static void onenand_check_features(struct mtd_info *mtd)
> >>        >                       if ((this->version_id & 0xf) == 0xe)
> >>        >                               this->options |= ONENAND_HAS_NOP_1;
> >>        >               }
> >>        > +             /* fall through */
> >>        >
> >>        >       case ONENAND_DEVICE_DENSITY_2Gb:
> >>        >               /* 2Gb DDP does not have 2 plane */
> >>        >               if (!ONENAND_IS_DDP(this))
> >>        >                       this->options |= ONENAND_HAS_2PLANE;
> >>        >               this->options |= ONENAND_HAS_UNLOCK_ALL;
> >>        > +             /* fall through */  
> >>
> >>        This looks strange.
> >>
> >>        In ONENAND_DEVICE_DENSITY_2Gb:
> >>        ONENAND_HAS_UNLOCK_ALL is set unconditionally.
> >>
> >>        But then, under ONENAND_DEVICE_DENSITY_1Gb, the same option is set only
> >>        if process is evaluated to true.
> >>
> >>        Same problem with ONENAND_HAS_2PLANE:
> >>        - it is set in ONENAND_DEVICE_DENSITY_4Gb only if ONENAND_IS_DDP()
> >>        - it is unset in ONENAND_DEVICE_DENSITY_2Gb only if !ONENAND_IS_DDP()
> >>
> >>        Maybe this portion should be reworked because I am unsure if this is a
> >>        missing fall through or a bug.
> >>
> >>
> >> Thanks
> >> --
> >> Gustavo
> >>
> >> [1] https://lore.kernel.org/patchwork/patch/1036251/  
> > 
> > Did we miss this patch? AFAICT it is in -next too.
> >   
> 
> What is pending to be resolved are these warnings:
> 
> drivers/mtd/nand/onenand/onenand_base.c: In function ‘onenand_check_features’:
> drivers/mtd/nand/onenand/onenand_base.c:3264:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
>    if (ONENAND_IS_DDP(this))
>       ^
> drivers/mtd/nand/onenand/onenand_base.c:3284:2: note: here
>   case ONENAND_DEVICE_DENSITY_2Gb:
>   ^~~~
> drivers/mtd/nand/onenand/onenand_base.c:3288:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
>    this->options |= ONENAND_HAS_UNLOCK_ALL;
> drivers/mtd/nand/onenand/onenand_base.c:3290:2: note: here
>   case ONENAND_DEVICE_DENSITY_1Gb:
>   ^~~~
> 
> The final version of the patch in -next does not address them.
> 

Send a commit for these two warnings stating very clearly close to
the top of the commit log that we don't know whether we need
fallthroughs or breaks there and that this is just a change to avoid
having new warnings when switching to -Wimplicit-fallthrough but this
change might be entirely wrong.


Thanks,
Miquèl

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux