From: Nathan Chancellor <email@example.com> To: Linus Walleij <firstname.lastname@example.org> Cc: "open list:GPIO SUBSYSTEM" <email@example.com>, "firstname.lastname@example.org" <email@example.com>, firstname.lastname@example.org Subject: Re: [PATCH] pinctrl: generic: Avoid several implicit enum conversions Date: Tue, 25 Sep 2018 09:14:59 -0700 [thread overview] Message-ID: <20180925161459.GA15840@flashbox> (raw) In-Reply-To: <CACRpkdadODxsuae7uhwcfBBMQ-eZ8bvnV71fhDCuudbJEbhhYA@mail.gmail.com> On Tue, Sep 25, 2018 at 12:58:16PM +0200, Linus Walleij wrote: > On Tue, Sep 25, 2018 at 8:19 AM Nathan Chancellor > <email@example.com> wrote: > > > Clang warns when one enumerated type is implicitly converted to another, > > which happens several times in the pinctrl drivers for a few reasons: > > > > * The PCONFDUMP macro, which sets the param member in pin_config_item. > > * The pinconf_generic_params structure, which is used by drivers to > > configure their bindings, which has a param member like pin_config_item. > > * The pinconf_to_config_packed, which takes either the generic enum > > pin_config_param or a specialized one. > > > > Drivers are allowed to extend this enumerated type because of the gap > > betweem PIN_CONFIG_END and PIN_CONFIG_MAX. Make it clear to Clang that > > this is allowed by changing param's type in all of these instances to > > int so no conversion needs to happen. > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/138 > > Signed-off-by: Nathan Chancellor <firstname.lastname@example.org> > > I'm not superhappy about this because that enum is great for readability, > even if the static syntax checker is unhappy. > > If we can't have an enum here I would argue that we can just as well > remove the enum altogether and just use #define for the config > parameters, would you agree? > > Yours, > Linus Walleij Hi Linus, I see no reason to get rid of the enums. All this patch should do is silence Clang's warnings because there is no other way to tell it that this construct is okay except for changing the parameter/member type to int (so no conversion needs to happen) or an explicit cast, which will result in more noise in my opinion since this warning happens at least 10-15 times in the pinctrl drivers. There's no fundamental change to how the enums are used. See these other commits for similar fixes: 3eb95feac113 ("mm/zsmalloc.c: change stat type parameter to int") 04fecbf51b3c ("mm: memcontrol: use int for event/state parameter in several functions") Cheers! Nathan
next prev parent reply other threads:[~2018-09-25 16:25 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-09-25 6:18 Nathan Chancellor 2018-09-25 10:58 ` Linus Walleij 2018-09-25 16:14 ` Nathan Chancellor [this message] 2018-09-25 16:23 ` Nick Desaulniers 2018-10-25 21:04 ` Nathan Chancellor 2018-10-31 13:33 ` Linus Walleij 2018-11-01 0:03 ` Nathan Chancellor 2018-11-01 11:46 ` David Laight 2018-11-09 9:29 ` Linus Walleij 2018-11-09 15:21 ` Nathan Chancellor
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=20180925161459.GA15840@flashbox \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --subject='Re: [PATCH] pinctrl: generic: Avoid several implicit enum conversions' \ /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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).