Re: [PATCH v5 3/5] bnx2x: Eliminate duplicate barriers on weakly-ordered archs

From: David Miller
Date: Fri Mar 23 2018 - 12:20:42 EST


From: Sinan Kaya <okaya@xxxxxxxxxxxxxx>
Date: Thu, 22 Mar 2018 13:10:00 -0400

> Code includes wmb() followed by writel(). writel() already has a
> barrier on some architectures like arm64.
...
> @@ -4155,7 +4155,7 @@ netdev_tx_t bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev)
> txdata->tx_db.data.prod += nbd;
> barrier();
>
> - DOORBELL(bp, txdata->cid, txdata->tx_db.raw);
> + DOORBELL_RELAXED(bp, txdata->cid, txdata->tx_db.raw);
>
> mmiowb();
...
> @@ -2592,7 +2592,7 @@ static int bnx2x_run_loopback(struct bnx2x *bp, int loopback_mode)
>
> txdata->tx_db.data.prod += 2;
> barrier();
> - DOORBELL(bp, txdata->cid, txdata->tx_db.raw);
> + DOORBELL_RELAXED(bp, txdata->cid, txdata->tx_db.raw);

These are compiler barriers being used here, not wmb().

Look, if I can't see a clear:

wmb()
writel()

sequence in the patch hunks, I am going to keep pushing back on
these changes.

Thank you.