summaryrefslogtreecommitdiff
path: root/kernel/xpp/xproto.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/xpp/xproto.c')
-rw-r--r--kernel/xpp/xproto.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/xpp/xproto.c b/kernel/xpp/xproto.c
index 348b4b6..77465c9 100644
--- a/kernel/xpp/xproto.c
+++ b/kernel/xpp/xproto.c
@@ -93,7 +93,9 @@ const xproto_table_t *xproto_get(xpd_type_t cardtype)
}
if(xtable) {
BUG_ON(!xtable->owner);
+#ifdef CONFIG_MODULE_UNLOAD
DBG(GENERAL, "%s refcount was %d\n", xtable->name, module_refcount(xtable->owner));
+#endif
if(!try_module_get(xtable->owner)) {
ERR("%s: try_module_get for %s failed.\n", __FUNCTION__, xtable->name);
return NULL;
@@ -105,8 +107,10 @@ const xproto_table_t *xproto_get(xpd_type_t cardtype)
void xproto_put(const xproto_table_t *xtable)
{
BUG_ON(!xtable);
+#ifdef CONFIG_MODULE_UNLOAD
DBG(GENERAL, "%s refcount was %d\n", xtable->name, module_refcount(xtable->owner));
BUG_ON(module_refcount(xtable->owner) <= 0);
+#endif
module_put(xtable->owner);
}
@@ -262,7 +266,7 @@ int xframe_receive(xbus_t *xbus, xframe_t *xframe)
FREE_RECV_XFRAME(xbus, xframe);
return -EPROTO;
}
- if(XBUS_IS(xbus, DISCONNECTED)) {
+ if(!XBUS_FLAGS(xbus, CONNECTED)) {
XBUS_DBG(GENERAL, xbus, "Dropped xframe. Is shutting down.\n");
return -ENODEV;
}