Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f6d9f40 authored by Dimitris Michailidis's avatar Dimitris Michailidis Committed by David S. Miller
Browse files

cxgb4: fix crash due to manipulating queues before registration



Before commit "net: allocate tx queues in register_netdevice"
netif_tx_stop_all_queues and related functions could be used between
device allocation and registration but now only after registration.
cxgb4 has such a call before registration and crashes now.  Move it
after register_netdev.

Signed-off-by: default avatarDimitris Michailidis <dm@chelsio.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2d3359f8
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -3658,7 +3658,6 @@ static int __devinit init_one(struct pci_dev *pdev,
		pi->rx_offload = RX_CSO;
		pi->rx_offload = RX_CSO;
		pi->port_id = i;
		pi->port_id = i;
		netif_carrier_off(netdev);
		netif_carrier_off(netdev);
		netif_tx_stop_all_queues(netdev);
		netdev->irq = pdev->irq;
		netdev->irq = pdev->irq;


		netdev->features |= NETIF_F_SG | TSO_FLAGS;
		netdev->features |= NETIF_F_SG | TSO_FLAGS;
@@ -3730,6 +3729,7 @@ static int __devinit init_one(struct pci_dev *pdev,


			__set_bit(i, &adapter->registered_device_map);
			__set_bit(i, &adapter->registered_device_map);
			adapter->chan_map[adap2pinfo(adapter, i)->tx_chan] = i;
			adapter->chan_map[adap2pinfo(adapter, i)->tx_chan] = i;
			netif_tx_stop_all_queues(adapter->port[i]);
		}
		}
	}
	}
	if (!adapter->registered_device_map) {
	if (!adapter->registered_device_map) {