diff options
author | Jiri Slaby | 2006-12-08 02:39:22 -0800 |
---|---|---|
committer | Linus Torvalds | 2006-12-08 08:29:00 -0800 |
commit | 390141728f2165889a8154bfb3ddddf6d95d9b8d (patch) | |
tree | 8238b8188fb256004c048f8d9140798ba8ee71a9 /drivers/char | |
parent | b103b5cfcb8e6703b40124da631adfdd1470d878 (diff) |
[PATCH] Char: istallion, free only isa
Only ISA cards should be freed in module exit. Pci probed are freed in
pci_remove. Define a flag, where we store this info a what to check against.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/char')
-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; */ #define BST_FOUND 0x1 #define BST_STARTED 0x2 +#define BST_PROBED 0x4 /* * Define the set of port state flags. These are marked for internal @@ -791,7 +792,7 @@ static void __exit istallion_module_exit(void) kfree(stli_txcookbuf); for (j = 0; (j < stli_nrbrds); j++) { - if ((brdp = stli_brds[j]) == NULL) + if ((brdp = stli_brds[j]) == NULL || (brdp->state & BST_PROBED)) continue; stli_cleanup_ports(brdp); @@ -3956,6 +3957,7 @@ static int __devinit stli_pciprobe(struct pci_dev *pdev, if (retval) goto err_null; + brdp->state |= BST_PROBED; pci_set_drvdata(pdev, brdp); return 0; |