diff --git a/drivers/isdn/hardware/mISDN/app_plci.c b/drivers/isdn/hardware/mISDN/app_plci.c index 874e8c5..69c1600 100644 --- a/drivers/isdn/hardware/mISDN/app_plci.c +++ b/drivers/isdn/hardware/mISDN/app_plci.c @@ -1358,7 +1358,7 @@ PL_l3l4(mISDNif_t *hif, struct sk_buff *skb) capidebug(CAPI_DBG_NCCI_L3, "%s: prim(%x) dinfo (%x) skb(%p) APLCI(%x) ncci(%p)", __FUNCTION__, hh->prim, hh->dinfo, skb, aplci->addr, ncci); if (!ncci) { - if (hh->prim != (DL_ESTABLISH | INDICATION)) { + if ((hh->prim != (DL_ESTABLISH | INDICATION)) && (hh->prim != (DL_ESTABLISH | CONFIRM))) { int_error(); return(-ENODEV); } diff --git a/drivers/isdn/hardware/mISDN/avm_fritz.c b/drivers/isdn/hardware/mISDN/avm_fritz.c index 8ab64f3..ce8811c 100644 --- a/drivers/isdn/hardware/mISDN/avm_fritz.c +++ b/drivers/isdn/hardware/mISDN/avm_fritz.c @@ -623,8 +623,8 @@ HDLC_irq(bchannel_t *bch, u_int stat) hdlc->ctrl.sr.cmd |= HDLC_CMD_XRS; write_ctrl(bch, 1); hdlc->ctrl.sr.cmd &= ~HDLC_CMD_XRS; - write_ctrl(bch, 1); HDLC_irq_xpr(bch); + return; } else if (stat & HDLC_INT_XPR) HDLC_irq_xpr(bch); } diff --git a/drivers/isdn/hardware/mISDN/ncci.c b/drivers/isdn/hardware/mISDN/ncci.c index f960c03..c3896f1 100644 --- a/drivers/isdn/hardware/mISDN/ncci.c +++ b/drivers/isdn/hardware/mISDN/ncci.c @@ -1361,8 +1361,8 @@ ncci_l3l4(Ncci_t *ncci, mISDN_head_t *hh, struct sk_buff *skb) static int ncciL4L3(Ncci_t *ncci, u_int prim, int dtyp, int len, void *arg, struct sk_buff *skb) { - capidebug(CAPI_DBG_NCCI_L3, "%s: NCCI %x prim(%x) dtyp(%x) skb(%p)", - __FUNCTION__, ncci->addr, prim, dtyp, skb); + capidebug(CAPI_DBG_NCCI_L3, "%s: NCCI %x prim(%x) dtyp(%x) len(%d) skb(%p)", + __FUNCTION__, ncci->addr, prim, dtyp, len, skb); if (skb) return(if_newhead(&ncci->link->inst.down, prim, dtyp, skb)); else