Skip to content

Commit

Permalink
bna: PCI Probe Fix
Browse files Browse the repository at this point in the history
Change details:
 - Return error as -EIO if bnad_res_alloc fails
 - Release the configuration lock before registering with net_device layer.

Signed-off-by: Gurunatha Karaje <gkaraje@brocade.com>
Signed-off-by: Rasesh Mody <rmody@brocade.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Rasesh Mody authored and David S. Miller committed Sep 15, 2011
1 parent 772b523 commit 0caa9aa
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion drivers/net/ethernet/brocade/bna/bnad.c
Original file line number Diff line number Diff line change
Expand Up @@ -3253,8 +3253,10 @@ bnad_pci_probe(struct pci_dev *pdev,
spin_unlock_irqrestore(&bnad->bna_lock, flags);

err = bnad_res_alloc(bnad, &bnad->mod_res_info[0], BNA_MOD_RES_T_MAX);
if (err)
if (err) {
err = -EIO;
goto disable_ioceth;
}

spin_lock_irqsave(&bnad->bna_lock, flags);
bna_mod_init(&bnad->bna, &bnad->mod_res_info[0]);
Expand All @@ -3266,6 +3268,8 @@ bnad_pci_probe(struct pci_dev *pdev,
bnad_set_netdev_perm_addr(bnad);
spin_unlock_irqrestore(&bnad->bna_lock, flags);

mutex_unlock(&bnad->conf_mutex);

/* Finally, reguister with net_device layer */
err = register_netdev(netdev);
if (err) {
Expand All @@ -3274,6 +3278,8 @@ bnad_pci_probe(struct pci_dev *pdev,
}
set_bit(BNAD_RF_NETDEV_REGISTERED, &bnad->run_flags);

return 0;

probe_success:
mutex_unlock(&bnad->conf_mutex);
return 0;
Expand Down

0 comments on commit 0caa9aa

Please sign in to comment.