linux-staging.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Coiby Xu <coiby.xu@gmail.com>
To: Joe Perches <joe@perches.com>
Cc: Dan Carpenter <dan.carpenter@oracle.com>,
	linux-staging@lists.linux.dev, netdev@vger.kernel.org,
	Benjamin Poirier <benjamin.poirier@gmail.com>,
	Shung-Hsi Yu <shung-hsi.yu@suse.com>,
	Manish Chopra <manishc@marvell.com>,
	"supporter:QLOGIC QLGE 10Gb ETHERNET DRIVER"
	<GR-Linux-NIC-Dev@marvell.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [RFC 13/19] staging: qlge: rewrite do while loop as for loop in qlge_sem_spinlock
Date: Thu, 1 Jul 2021 07:33:38 +0800	[thread overview]
Message-ID: <20210630233338.2l34shhrm3bdd4gx@Rk> (raw)
In-Reply-To: <f7beb9aee00a1cdb8dd97a49a36abd60d58279f2.camel@perches.com>

On Wed, Jun 30, 2021 at 03:58:06AM -0700, Joe Perches wrote:
>On Thu, 2021-06-24 at 19:22 +0800, Coiby Xu wrote:
>> On Tue, Jun 22, 2021 at 10:20:36AM +0300, Dan Carpenter wrote:
>> > On Mon, Jun 21, 2021 at 09:48:56PM +0800, Coiby Xu wrote:
>> > > Since wait_count=30 > 0, the for loop is equivalent to do while
>> > > loop. This commit also replaces 100 with UDELAY_DELAY.
>[]
>> > > diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
>[]
>> > > @@ -140,12 +140,13 @@ static int qlge_sem_trylock(struct qlge_adapter *qdev, u32 sem_mask)
>> > >  int qlge_sem_spinlock(struct qlge_adapter *qdev, u32 sem_mask)
>> > >  {
>> > >  	unsigned int wait_count = 30;
>> > > +	int count;
>> > >
>> > > -	do {
>> > > +	for (count = 0; count < wait_count; count++) {
>> > >  		if (!qlge_sem_trylock(qdev, sem_mask))
>> > >  			return 0;
>> > > -		udelay(100);
>> > > -	} while (--wait_count);
>> > > +		udelay(UDELAY_DELAY);
>> >
>> > This is an interesting way to silence the checkpatch udelay warning.  ;)
>>
>> I didn't know this could silence the warning :)
>
>It also seems odd to have unsigned int wait_count and int count.
>
>Maybe just use 30 in the loop without using wait_count at all.

Thanks for the suggestion. I will apply it to v1.
>
>I also think using UDELAY_DELAY is silly and essentially misleading
>as it's also used as an argument value for mdelay
>
>$ git grep -w UDELAY_DELAY
>drivers/staging/qlge/qlge.h:#define UDELAY_DELAY 100
>drivers/staging/qlge/qlge_main.c:               udelay(UDELAY_DELAY);
>drivers/staging/qlge/qlge_main.c:               udelay(UDELAY_DELAY);
>drivers/staging/qlge/qlge_mpi.c:                mdelay(UDELAY_DELAY);
>drivers/staging/qlge/qlge_mpi.c:                mdelay(UDELAY_DELAY);
>drivers/staging/qlge/qlge_mpi.c:                mdelay(UDELAY_DELAY); /* 100ms */

Thanks for spotting this issue! How about "#define MDELAY_DELAY 100" for
mdelay?

>
>

-- 
Best regards,
Coiby

  reply	other threads:[~2021-06-30 23:35 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-21 13:48 [RFC 00/19] Improve the qlge driver based on drivers/staging/qlge/TODO Coiby Xu
2021-06-21 13:48 ` [RFC 01/19] staging: qlge: fix incorrect truesize accounting Coiby Xu
2021-06-21 14:10   ` Dan Carpenter
2021-06-22 11:36     ` Coiby Xu
2021-06-23  4:55       ` Benjamin Poirier
2021-06-24 11:47         ` Coiby Xu
2021-06-28  0:14           ` Coiby Xu
2021-06-21 13:48 ` [RFC 02/19] staging: qlge: change LARGE_BUFFER_MAX_SIZE to 4096 Coiby Xu
2021-06-21 13:48 ` [RFC 03/19] staging: qlge: alloc skb with only enough room for header when data is put in the fragments Coiby Xu
2021-06-21 13:48 ` [RFC 04/19] staging: qlge: add qlge_* prefix to avoid namespace clashes Coiby Xu
2021-06-22  7:55   ` Benjamin Poirier
2021-06-24 11:34     ` Coiby Xu
2021-06-21 13:48 ` [RFC 05/19] staging: qlge: rename rx to completion queue and seperate rx_ring from completion queue Coiby Xu
2021-06-21 13:48 ` [RFC 06/19] staging: qlge: disable flow control by default Coiby Xu
2021-06-22  7:49   ` Benjamin Poirier
2021-06-24 11:33     ` Coiby Xu
2021-06-21 13:48 ` [RFC 07/19] staging: qlge: remove the TODO item of unnecessary memset 0 Coiby Xu
2021-06-21 13:48 ` [RFC 08/19] staging: qlge: reorder members of qlge_adapter for optimization Coiby Xu
2021-06-21 13:48 ` [RFC 09/19] staging: qlge: remove the TODO item of reorder struct Coiby Xu
2021-06-21 13:48 ` [RFC 10/19] staging: qlge: remove the TODO item of avoid legacy/deprecated apis Coiby Xu
2021-06-21 13:48 ` [RFC 11/19] staging: qlge: the number of pages to contain a buffer queue is constant Coiby Xu
2021-06-21 13:48 ` [RFC 12/19] staging: qlge: rewrite do while loops as for loops in qlge_start_rx_ring Coiby Xu
2021-06-22  7:45   ` Benjamin Poirier
2021-06-24 11:56     ` Coiby Xu
2021-06-21 13:48 ` [RFC 13/19] staging: qlge: rewrite do while loop as for loop in qlge_sem_spinlock Coiby Xu
2021-06-22  7:20   ` Dan Carpenter
2021-06-24 11:22     ` Coiby Xu
2021-06-30 10:58       ` Joe Perches
2021-06-30 23:33         ` Coiby Xu [this message]
2021-07-01  4:35           ` Joe Perches
2021-07-02 23:56             ` Coiby Xu
2021-06-21 13:48 ` [RFC 14/19] staging: qlge: rewrite do while loop as for loop in qlge_refill_bq Coiby Xu
2021-06-21 13:48 ` [RFC 15/19] staging: qlge: remove the TODO item about rewriting while loops as simple for loops Coiby Xu
2021-06-21 13:48 ` [RFC 16/19] staging: qlge: remove deadcode in qlge_build_rx_skb Coiby Xu
2021-06-22  7:29   ` Dan Carpenter
2021-06-24 11:25     ` Coiby Xu
2021-06-24 12:49       ` Dan Carpenter
2021-06-27 10:53         ` Coiby Xu
2021-06-28  6:46           ` Dan Carpenter
2021-06-29 13:35             ` Coiby Xu
2021-06-29 14:22               ` Dan Carpenter
2021-06-30 23:19                 ` Coiby Xu
2021-06-21 13:49 ` [RFC 17/19] staging: qlge: fix weird line wrapping Coiby Xu
2021-06-22  8:46   ` Dan Carpenter
2021-06-24 11:55     ` Coiby Xu
2021-06-21 13:49 ` [RFC 18/19] staging: qlge: fix two indentation issues Coiby Xu
2021-06-21 13:49 ` [RFC 19/19] staging: qlge: remove TODO item of unnecessary runtime checks Coiby Xu

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=20210630233338.2l34shhrm3bdd4gx@Rk \
    --to=coiby.xu@gmail.com \
    --cc=GR-Linux-NIC-Dev@marvell.com \
    --cc=benjamin.poirier@gmail.com \
    --cc=dan.carpenter@oracle.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=manishc@marvell.com \
    --cc=netdev@vger.kernel.org \
    --cc=shung-hsi.yu@suse.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).