Hi Gustavo, "Gustavo A. R. Silva" <gust...@embeddedor.com> 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