[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <56e0b30632826dda7db247bd5b6e4bb28245eaa7.camel@perches.com>
Date: Mon, 02 May 2022 10:19:32 -0700
From: Joe Perches <joe@...ches.com>
To: Paolo Abeni <pabeni@...hat.com>,
Juhee Kang <claudiajkang@...il.com>, ap420073@...il.com,
davem@...emloft.net, kuba@...nel.org, netdev@...r.kernel.org
Subject: Re: [net-next PATCH] amt: Use BIT macros instead of open codes
On Mon, 2022-05-02 at 12:11 +0200, Paolo Abeni wrote:
> On Sat, 2022-04-30 at 13:56 +0000, Juhee Kang wrote:
> > Replace open code related to bit operation with BIT macros, which kernel
> > provided. This patch provides no functional change.
[]
> > diff --git a/drivers/net/amt.c b/drivers/net/amt.c
[]
> > @@ -959,7 +959,7 @@ static void amt_req_work(struct work_struct *work)
> > amt_update_gw_status(amt, AMT_STATUS_SENT_REQUEST, true);
> > spin_lock_bh(&amt->lock);
> > out:
> > - exp = min_t(u32, (1 * (1 << amt->req_cnt)), AMT_MAX_REQ_TIMEOUT);
> > + exp = min_t(u32, (1 * BIT(amt->req_cnt)), AMT_MAX_REQ_TIMEOUT);
> > mod_delayed_work(amt_wq, &amt->req_wq, msecs_to_jiffies(exp * 1000));
> > spin_unlock_bh(&amt->lock);
> > }
> > diff --git a/include/net/amt.h b/include/net/amt.h
[]
> > @@ -354,7 +354,7 @@ struct amt_dev {
> > #define AMT_MAX_GROUP 32
> > #define AMT_MAX_SOURCE 128
> > #define AMT_HSIZE_SHIFT 8
> > -#define AMT_HSIZE (1 << AMT_HSIZE_SHIFT)
> > +#define AMT_HSIZE BIT(AMT_HSIZE_SHIFT)
> >
> > #define AMT_DISCOVERY_TIMEOUT 5000
> > #define AMT_INIT_REQ_TIMEOUT 1
>
> Even if the 2 replaced statements use shift operations, they do not
> look like bit manipulation: the first one is an exponential timeout,
> the 2nd one is an (hash) size. I think using the BIT() macro here will
> be confusing.
I agree.
I also believe one of the uses of amt->req_cnt is error prone.
drivers/net/amt.c:946: if (amt->req_cnt++ > AMT_MAX_REQ_COUNT) {
Combining a test and post increment is not a great style IMO.
Is this really the intended behavior?
Powered by blists - more mailing lists