summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xpp/card_fxo.c2
-rw-r--r--xpp/card_fxs.c2
-rw-r--r--xpp/xbus-core.c4
-rw-r--r--xpp/xpp_usb.c2
-rw-r--r--xpp/xpp_zap.c1
5 files changed, 10 insertions, 1 deletions
diff --git a/xpp/card_fxo.c b/xpp/card_fxo.c
index d383e5d..74b1241 100644
--- a/xpp/card_fxo.c
+++ b/xpp/card_fxo.c
@@ -211,10 +211,12 @@ static void clean_proc(xbus_t *xbus, xpd_t *xpd)
if(priv->xpd_slic) {
DBG("Removing xpd DAA file %s/%s\n", xbus->busname, xpd->xpdname);
remove_proc_entry(PROC_DAA_FNAME, xpd->proc_xpd_dir);
+ priv->xpd_slic = NULL;
}
if(priv->fxo_info) {
DBG("Removing xpd FXO_INFO file %s/%s\n", xbus->busname, xpd->xpdname);
remove_proc_entry(PROC_FXO_INFO_FNAME, xpd->proc_xpd_dir);
+ priv->fxo_info = NULL;
}
#endif
}
diff --git a/xpp/card_fxs.c b/xpp/card_fxs.c
index 1718849..094ed71 100644
--- a/xpp/card_fxs.c
+++ b/xpp/card_fxs.c
@@ -282,10 +282,12 @@ static void clean_proc(xbus_t *xbus, xpd_t *xpd)
DBG("Removing xpd SLIC file %s/%s\n", xbus->busname, xpd->xpdname);
priv->xpd_slic->data = NULL;
remove_proc_entry(PROC_SLIC_FNAME, xpd->proc_xpd_dir);
+ priv->xpd_slic = NULL;
}
if(priv->fxs_info) {
DBG("Removing xpd FXS_INFO file %s/%s\n", xbus->busname, xpd->xpdname);
remove_proc_entry(PROC_FXS_INFO_FNAME, xpd->proc_xpd_dir);
+ priv->fxs_info = NULL;
}
#endif
}
diff --git a/xpp/xbus-core.c b/xpp/xbus-core.c
index 5a85f8b..437ea5e 100644
--- a/xpp/xbus-core.c
+++ b/xpp/xbus-core.c
@@ -809,8 +809,10 @@ static void xbus_core_cleanup(void)
xpp_worker = NULL;
}
#ifdef CONFIG_PROC_FS
- if(proc_xbuses)
+ if(proc_xbuses) {
remove_proc_entry(PROC_XBUSES, xpp_proc_toplevel);
+ proc_xbuses = NULL;
+ }
#endif
if(packet_cache)
kmem_cache_destroy(packet_cache);
diff --git a/xpp/xpp_usb.c b/xpp/xpp_usb.c
index 4f81680..1a62974 100644
--- a/xpp/xpp_usb.c
+++ b/xpp/xpp_usb.c
@@ -662,6 +662,7 @@ probe_failed:
if(procsummary) {
DBG("Remove proc_entry: " PROC_USBXPP_SUMMARY "\n");
remove_proc_entry(PROC_USBXPP_SUMMARY, xbus->proc_xbus_dir);
+ procsummary = NULL;
}
xbus_disconnect(xbus); // Blocking until fully deactivated!
}
@@ -705,6 +706,7 @@ static void xusb_disconnect(struct usb_interface *interface)
#ifdef CONFIG_PROC_FS
if(xbus->proc_xbus_dir) {
remove_proc_entry(PROC_USBXPP_SUMMARY, xbus->proc_xbus_dir);
+ xbus->proc_xbus_dir = NULL;
}
#endif
xusb->present = 0;
diff --git a/xpp/xpp_zap.c b/xpp/xpp_zap.c
index fc61af0..e1d15ed 100644
--- a/xpp/xpp_zap.c
+++ b/xpp/xpp_zap.c
@@ -1491,6 +1491,7 @@ static void do_cleanup(void)
remove_proc_entry(PROC_SYNC, xpp_proc_toplevel);
if(xpp_proc_toplevel) {
remove_proc_entry(PROC_DIR, NULL);
+ xpp_proc_toplevel = NULL;
}
#endif
}