patch-2.4.26 linux-2.4.26/drivers/isdn/avmb1/kcapi.c
Next file: linux-2.4.26/drivers/isdn/hisax/isurf.c
Previous file: linux-2.4.26/drivers/isdn/avmb1/capidrv.c
Back to the patch index
Back to the overall index
- Lines: 54
- Date:
2004-04-14 06:05:30.000000000 -0700
- Orig file:
linux-2.4.25/drivers/isdn/avmb1/kcapi.c
- Orig date:
2003-06-13 07:51:34.000000000 -0700
diff -urN linux-2.4.25/drivers/isdn/avmb1/kcapi.c linux-2.4.26/drivers/isdn/avmb1/kcapi.c
@@ -546,7 +546,13 @@
static void notify_up(__u32 contr)
{
struct capi_interface_user *p;
+ __u16 appl;
+ for (appl = 1; appl <= CAPI_MAXAPPL; appl++) {
+ if (!VALID_APPLID(appl)) continue;
+ if (APPL(appl)->releasing) continue;
+ CARD(contr)->driver->register_appl(CARD(contr), appl, &APPL(appl)->rparam);
+ }
printk(KERN_NOTICE "kcapi: notify up contr %d\n", contr);
spin_lock(&capi_users_lock);
for (p = capi_users; p; p = p->next) {
@@ -714,12 +720,16 @@
nextpp = &(*pp)->next;
}
}
- APPL(appl)->releasing--;
- if (APPL(appl)->releasing <= 0) {
- APPL(appl)->signal = 0;
- APPL_MARK_FREE(appl);
- printk(KERN_INFO "kcapi: appl %d down\n", appl);
- }
+ if (APPL(appl)->releasing) { /* only release if the application was marked for release */
+ printk(KERN_DEBUG "kcapi: appl %d releasing(%d)\n", appl, APPL(appl)->releasing);
+ APPL(appl)->releasing--;
+ if (APPL(appl)->releasing <= 0) {
+ APPL(appl)->signal = 0;
+ APPL_MARK_FREE(appl);
+ printk(KERN_INFO "kcapi: appl %d down\n", appl);
+ }
+ } else
+ printk(KERN_WARNING "kcapi: appl %d card%d released without request\n", appl, card->cnr);
}
/*
* ncci management
@@ -872,16 +882,7 @@
static void controllercb_ready(struct capi_ctr * card)
{
- __u16 appl;
-
card->cardstate = CARD_RUNNING;
-
- for (appl = 1; appl <= CAPI_MAXAPPL; appl++) {
- if (!VALID_APPLID(appl)) continue;
- if (APPL(appl)->releasing) continue;
- card->driver->register_appl(card, appl, &APPL(appl)->rparam);
- }
-
printk(KERN_NOTICE "kcapi: card %d \"%s\" ready.\n",
CARDNR(card), card->name);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)