From: Ivan Vecera
Date: Wed, 28 Nov 2018 20:29:44 +0100
> And the right way? netif_device_detach() that does not fire
> linkwatch events?
Allocate all the TX queue resources first.
Do not modify the TX queue configuration in any way whatsoever
meanwhile.
Only after successfully allocating the
On 28. 11. 18 20:00, David Miller wrote:
From: Ivan Vecera
Date: Wed, 28 Nov 2018 11:12:22 +0100
On 27. 11. 18 23:51, David Miller wrote:
From: Petr Oros
Date: Thu, 22 Nov 2018 15:24:07 +0100
@@ -4700,8 +4700,11 @@ int be_update_queues(struct be_adapter
*adapter)
struct net_device
From: Ivan Vecera
Date: Wed, 28 Nov 2018 11:12:22 +0100
> On 27. 11. 18 23:51, David Miller wrote:
>> From: Petr Oros
>> Date: Thu, 22 Nov 2018 15:24:07 +0100
>>
>>> @@ -4700,8 +4700,11 @@ int be_update_queues(struct be_adapter
>>> *adapter)
>>> struct net_device *netdev = adapter->netdev;
On 27. 11. 18 23:51, David Miller wrote:
From: Petr Oros
Date: Thu, 22 Nov 2018 15:24:07 +0100
@@ -4700,8 +4700,11 @@ int be_update_queues(struct be_adapter *adapter)
struct net_device *netdev = adapter->netdev;
int status;
- if (netif_running(netdev))
+ if (netif_run
From: Petr Oros
Date: Thu, 22 Nov 2018 15:24:07 +0100
> @@ -4700,8 +4700,11 @@ int be_update_queues(struct be_adapter *adapter)
> struct net_device *netdev = adapter->netdev;
> int status;
>
> - if (netif_running(netdev))
> + if (netif_running(netdev)) {
> + /* p
The driver enumerates Tx queues in ndo_tx_timeout() handler, here is
possible race with be_update_queues. For this case we set carrier_off.
It prevents netdev watchdog to be fired after be_clear_queues().
The watchdog timeout doesn't make any sense here as we re-creating queues.
Reproducer:
We can