From 0b13254ec47e0e72bcfd29c170f5752f87e957ce Mon Sep 17 00:00:00 2001 From: Shaun Ruffell Date: Mon, 29 Jun 2009 20:56:07 +0000 Subject: dahdi-base: Enable DAHDI to manage the reference counts for the board drivers. Adds a struct module 'owner' member to the dahdi_span structure and updates all the board drivers to set this member before registering the span. This allows the core of dahdi to maintain the reference counts on the channels itself. (closes issue #10601) Reported by: Matti git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@6794 a0bf4364-ded3-4de4-8d8a-66a801d63aff --- drivers/dahdi/wcb4xxp/base.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'drivers/dahdi/wcb4xxp/base.c') diff --git a/drivers/dahdi/wcb4xxp/base.c b/drivers/dahdi/wcb4xxp/base.c index f5db389..71e8255 100644 --- a/drivers/dahdi/wcb4xxp/base.c +++ b/drivers/dahdi/wcb4xxp/base.c @@ -2084,10 +2084,6 @@ static int b4xxp_open(struct dahdi_chan *chan) struct b4xxp *b4 = chan->pvt; struct b4xxp_span *bspan = &b4->spans[chan->span->offset]; - if (!try_module_get(THIS_MODULE)) { - return -EBUSY; - } - if (DBG_FOPS && DBG_SPANFILTER) dev_info(b4->dev, "open() on chan %s (%i/%i)\n", chan->name, chan->channo, chan->chanpos); @@ -2101,8 +2097,6 @@ static int b4xxp_close(struct dahdi_chan *chan) struct b4xxp *b4 = chan->pvt; struct b4xxp_span *bspan = &b4->spans[chan->span->offset]; - module_put(THIS_MODULE); - if (DBG_FOPS && DBG_SPANFILTER) dev_info(b4->dev, "close() on chan %s (%i/%i)\n", chan->name, chan->channo, chan->chanpos); @@ -2166,6 +2160,7 @@ static void init_spans(struct b4xxp *b4) sprintf(bspan->span.location, "PCI Bus %02d Slot %02d", b4->pdev->bus->number, PCI_SLOT(b4->pdev->devfn) + 1); + bspan->span.owner = THIS_MODULE; bspan->span.spanconfig = b4xxp_spanconfig; bspan->span.chanconfig = b4xxp_chanconfig; bspan->span.startup = b4xxp_startup; -- cgit v1.2.3