summaryrefslogtreecommitdiff
path: root/drivers/dahdi/xpp/card_global.c
diff options
context:
space:
mode:
authorTzafrir Cohen <tzafrir.cohen@xorcom.com>2010-07-13 17:25:06 +0000
committerTzafrir Cohen <tzafrir.cohen@xorcom.com>2010-07-13 17:25:06 +0000
commitdfa545814b61b3e1d527e842dd883b153277c4b4 (patch)
tree1d44d19b37b1337e0bda53255c5c3a7f363d42f1 /drivers/dahdi/xpp/card_global.c
parent624e11908da4c775717011a31bad086d2c268d2d (diff)
prevent handling of duplicate Astribanks
Don't let AB which are unplugged/replugged create duplicate XBUS's (if asterisk don't close the original channels). git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8905 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi/xpp/card_global.c')
-rw-r--r--drivers/dahdi/xpp/card_global.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/dahdi/xpp/card_global.c b/drivers/dahdi/xpp/card_global.c
index 4cf5ca5..e731560 100644
--- a/drivers/dahdi/xpp/card_global.c
+++ b/drivers/dahdi/xpp/card_global.c
@@ -431,6 +431,8 @@ static void global_packet_dump(const char *msg, xpacket_t *pack);
DBG(DEVICES, "NO XBUS\n");
return -EINVAL;
}
+ if (xbus_check_unique(xbus))
+ return -EBUSY;
XFRAME_NEW_CMD(xframe, pack, xbus, GLOBAL, AB_REQUEST, 0);
RPACKET_FIELD(pack, GLOBAL, AB_REQUEST, rev) = XPP_PROTOCOL_VERSION;
RPACKET_FIELD(pack, GLOBAL, AB_REQUEST, reserved) = 0;
@@ -614,6 +616,8 @@ HANDLER_DEF(GLOBAL, AB_DESCRIPTION) /* 0x08 */
goto proto_err;
}
XBUS_INFO(xbus, "DESCRIPTOR: %d cards, protocol revision %d\n", count_units, rev);
+ if (xbus_check_unique(xbus))
+ return -EBUSY;
xbus->revision = rev;
worker = &xbus->worker;
if (!worker->wq) {