On Fri, Jul 15, 2016 at 11:20 PM, David Miller wrote:
> From: Florian Fainelli
> Date: Fri, 15 Jul 2016 16:42:01 -0700
>
>> @@ -4599,7 +4599,9 @@ static void bnxt_tx_enable(struct bnxt *bp)
>> for (i = 0; i < bp->tx_nr_rings; i++) {
>> txr = &bp->tx_ring[i];
>> t
From: Florian Fainelli
Date: Fri, 15 Jul 2016 16:42:01 -0700
> @@ -4599,7 +4599,9 @@ static void bnxt_tx_enable(struct bnxt *bp)
> for (i = 0; i < bp->tx_nr_rings; i++) {
> txr = &bp->tx_ring[i];
> txq = netdev_get_tx_queue(bp->dev, i);
> + __netif_tx
txr->dev_state is always manipulated after acquiring the transmit queue
lock, except in bnxt_tx_enable(), which seems suspicious here, so also
acquire the transmit queue lock before changing the value.
Reported-by: coverity (CID 1339583)
Fixes: c0c050c58d840 ("bnxt_en: New Broadcom ethernet driver