summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarkster <markster@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2005-04-13 03:52:17 +0000
committermarkster <markster@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2005-04-13 03:52:17 +0000
commit1cf4ed7ff182c042fd7f4207933ce4888daadd6a (patch)
treef53ab5c63111b4d6eec90b9387e9381ceeb6b7d2
parent374635a09589593782c5f757ab1727efe8d1bcc9 (diff)
Fix memory leak on loading/unloading module
git-svn-id: http://svn.digium.com/svn/zaptel/trunk@624 5390a7c7-147a-4af0-8ec9-7488f05a26cb
-rwxr-xr-xwct4xxp.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/wct4xxp.c b/wct4xxp.c
index 2ee615e..0f19ccc 100755
--- a/wct4xxp.c
+++ b/wct4xxp.c
@@ -1670,6 +1670,7 @@ static int t4_hardware_stop(struct t4 *wc)
static void __devexit t4_remove_one(struct pci_dev *pdev)
{
struct t4 *wc = pci_get_drvdata(pdev);
+ int x;
if (wc) {
/* Stop hardware */
t4_hardware_stop(wc);
@@ -1709,6 +1710,11 @@ static void __devexit t4_remove_one(struct pci_dev *pdev)
#endif
cards[wc->num] = NULL;
pci_set_drvdata(pdev, NULL);
+ for (x=0;x<4;x++) {
+ if (wc->chans[x])
+ kfree(wc->chans[x]);
+ }
+ kfree(wc);
}
}