|
@@ -854,6 +854,13 @@ static int __qede_probe(struct pci_dev *pdev, u32 dp_module, u8 dp_level,
|
|
if (rc)
|
|
if (rc)
|
|
goto err3;
|
|
goto err3;
|
|
|
|
|
|
|
|
+ /* Prepare the lock prior to the registeration of the netdev,
|
|
|
|
+ * as once it's registered we might reach flows requiring it
|
|
|
|
+ * [it's even possible to reach a flow needing it directly
|
|
|
|
+ * from there, although it's unlikely].
|
|
|
|
+ */
|
|
|
|
+ INIT_DELAYED_WORK(&edev->sp_task, qede_sp_task);
|
|
|
|
+ mutex_init(&edev->qede_lock);
|
|
rc = register_netdev(edev->ndev);
|
|
rc = register_netdev(edev->ndev);
|
|
if (rc) {
|
|
if (rc) {
|
|
DP_NOTICE(edev, "Cannot register net-device\n");
|
|
DP_NOTICE(edev, "Cannot register net-device\n");
|
|
@@ -878,8 +885,6 @@ static int __qede_probe(struct pci_dev *pdev, u32 dp_module, u8 dp_level,
|
|
qede_set_dcbnl_ops(edev->ndev);
|
|
qede_set_dcbnl_ops(edev->ndev);
|
|
#endif
|
|
#endif
|
|
|
|
|
|
- INIT_DELAYED_WORK(&edev->sp_task, qede_sp_task);
|
|
|
|
- mutex_init(&edev->qede_lock);
|
|
|
|
edev->rx_copybreak = QEDE_RX_HDR_SIZE;
|
|
edev->rx_copybreak = QEDE_RX_HDR_SIZE;
|
|
|
|
|
|
DP_INFO(edev, "Ending successfully qede probe\n");
|
|
DP_INFO(edev, "Ending successfully qede probe\n");
|