[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3ef52bb5-3289-416a-81b6-4064c49960c8@lunn.ch>
Date: Tue, 3 Sep 2024 18:49:38 +0200
From: Andrew Lunn <andrew@...n.ch>
To: Takamitsu Iwai <takamitz@...zon.co.jp>
Cc: anthony.l.nguyen@...el.com, davem@...emloft.net, edumazet@...gle.com,
intel-wired-lan@...ts.osuosl.org, kuba@...nel.org,
netdev@...r.kernel.org, pabeni@...hat.com,
przemyslaw.kitszel@...el.com
Subject: Re: [PATCH v1 net-next] e1000e: Remove duplicated writel() in
e1000_configure_tx/rx()
On Tue, Sep 03, 2024 at 07:46:42PM +0900, Takamitsu Iwai wrote:
> > Did the same sequence of read/writes happen before 0845d45e900c? Or
> > did 0845d45e900c add additional writes, not just move them around?
>
> The sequence of read/writes happened before 0845d45e900c because the similar
> writel() exists in ew32() above the writel() moved by 0845d45e900c.
>
> The commit 0845d45e900c moved writel() in e1000_clean_tx/rx_ring() to
> e1000_configure_tx/rx() to avoid null pointer dereference. But since the same
> writel() exists in e1000_configure_tx/rx(), we just needed to remove writel()
> from e1000_clean_rx/tx_ring().
So you have confirmed with the datsheet that the write is not needed?
As i said, this is a hardware register, not memory. Writes are not
always idempotent. It might be necessary to write it twice.
Andrew
Powered by blists - more mailing lists