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

From: Joe Perches
Date: Wed Oct 04 2017 - 12:26:55 EST


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.