Re: [PATCH 1/3] wireless: iwlwifi: use bool instead of int

From: Luciano Coelho
Date: Wed Oct 04 2017 - 12:39:28 EST


On Wed, 2017-10-04 at 09:26 -0700, Joe Perches wrote:
> On Wed, 2017-10-04 at 17:56 +0200, Christoph BÃhmwalder wrote:
> > Change a usage of int in a boolean context to use the bool type
> > instead, as it
> > makes the intent of the function clearer and helps clarify its
> > semantics.
> >
> > Also eliminate the if/else and just return the boolean result
> > directly,
> > making the code more readable.
> >
> > Signed-off-by: Christoph BÃhmwalder <christoph@xxxxxxxxxxxxxx>
> > ---
> > drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c | 12 +++++-------
> > 1 file changed, 5 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c
> > b/drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c
> > index b7cd813ba70f..0eb815ae97e8 100644
> > --- a/drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c
> > +++ b/drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c
> > @@ -267,14 +267,12 @@ int iwl_phy_db_set_section(struct iwl_phy_db
> > *phy_db,
> > }
> > IWL_EXPORT_SYMBOL(iwl_phy_db_set_section);
> >
> > -static int is_valid_channel(u16 ch_id)
> > +static bool is_valid_channel(u16 ch_id)
> > {
> > - if (ch_id <= 14 ||
> > - (36 <= ch_id && ch_id <= 64 && ch_id % 4 == 0) ||
> > - (100 <= ch_id && ch_id <= 140 && ch_id % 4 == 0) ||
> > - (145 <= ch_id && ch_id <= 165 && ch_id % 4 == 1))
> > - return 1;
> > - return 0;
> > + return (ch_id <= 14 ||
> > + (36 <= ch_id && ch_id <= 64 && ch_id % 4 == 0) ||
> > + (100 <= ch_id && ch_id <= 140 && ch_id % 4 == 0) ||
> > + (145 <= ch_id && ch_id <= 165 && ch_id % 4 == 1));
> > }
>
> This might be more intelligble as separate tests
>
> static bool is_valid_channel(u16 ch_id)
> {
> if (ch_id <= 14)
> return true;
>
> if ((ch_id % 4 == 0) &&
> ((ch_id >= 36 && ch_id <= 64) ||
> (ch_id >= 100 && ch_id <= 140)))
> return true;
>
> if ((ch_id % 4 == 1) &&
> (chid >= 145 && ch_id <= 165))
> return true;
>
> return false;
> }
>
> The compiler should produce the same object code.

Yeah, it may be a bit easier to read, but I don't want to start getting
"fixes" to working and reasonable code. There's nothing wrong with the
existing function (except maybe for the int vs. boolean) so let's not
change it.

A good time to change this would be the next time someone adds yet
another range of valid channels here. ;)

--
Luca.