Re: [PATCH net] be2net: Fix NULL pointer dereference in be_tx_timeout()

2018-11-28 Thread David Miller
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

Re: [PATCH net] be2net: Fix NULL pointer dereference in be_tx_timeout()

2018-11-28 Thread Ivan Vecera
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

Re: [PATCH net] be2net: Fix NULL pointer dereference in be_tx_timeout()

2018-11-28 Thread David Miller
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;

Re: [PATCH net] be2net: Fix NULL pointer dereference in be_tx_timeout()

2018-11-28 Thread Ivan Vecera
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

Re: [PATCH net] be2net: Fix NULL pointer dereference in be_tx_timeout()

2018-11-27 Thread David Miller
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)) { > + /*

[PATCH net] be2net: Fix NULL pointer dereference in be_tx_timeout()

2018-11-22 Thread Petr Oros
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