diff options
Diffstat (limited to 'drivers/char/istallion.c')
-rw-r--r-- | drivers/char/istallion.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c index de869241baa0..6ad0bbf56c77 100644 --- a/drivers/char/istallion.c +++ b/drivers/char/istallion.c | |||
@@ -202,6 +202,7 @@ static int stli_shared; | |||
202 | */ | 202 | */ |
203 | #define BST_FOUND 0x1 | 203 | #define BST_FOUND 0x1 |
204 | #define BST_STARTED 0x2 | 204 | #define BST_STARTED 0x2 |
205 | #define BST_PROBED 0x4 | ||
205 | 206 | ||
206 | /* | 207 | /* |
207 | * Define the set of port state flags. These are marked for internal | 208 | * Define the set of port state flags. These are marked for internal |
@@ -791,7 +792,7 @@ static void __exit istallion_module_exit(void) | |||
791 | kfree(stli_txcookbuf); | 792 | kfree(stli_txcookbuf); |
792 | 793 | ||
793 | for (j = 0; (j < stli_nrbrds); j++) { | 794 | for (j = 0; (j < stli_nrbrds); j++) { |
794 | if ((brdp = stli_brds[j]) == NULL) | 795 | if ((brdp = stli_brds[j]) == NULL || (brdp->state & BST_PROBED)) |
795 | continue; | 796 | continue; |
796 | 797 | ||
797 | stli_cleanup_ports(brdp); | 798 | stli_cleanup_ports(brdp); |
@@ -3956,6 +3957,7 @@ static int __devinit stli_pciprobe(struct pci_dev *pdev, | |||
3956 | if (retval) | 3957 | if (retval) |
3957 | goto err_null; | 3958 | goto err_null; |
3958 | 3959 | ||
3960 | brdp->state |= BST_PROBED; | ||
3959 | pci_set_drvdata(pdev, brdp); | 3961 | pci_set_drvdata(pdev, brdp); |
3960 | 3962 | ||
3961 | return 0; | 3963 | return 0; |