From 4e8cbe3076b53ceaba0517c93da13876e23e985b Mon Sep 17 00:00:00 2001 From: Kai Germaschewski Date: Tue, 5 Feb 2002 01:50:08 -0800 Subject: [PATCH] [PATCH] 2.5.3 ISDN hisax_fcpcipnp driver fix the appended patch fixes a problem where the ->rcvidx variable was not initialized properly. --- drivers/isdn/hisax/hisax_fcpcipnp.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/isdn/hisax/hisax_fcpcipnp.c b/drivers/isdn/hisax/hisax_fcpcipnp.c index a8359bb8100b..3c5d5435395e 100644 --- a/drivers/isdn/hisax/hisax_fcpcipnp.c +++ b/drivers/isdn/hisax/hisax_fcpcipnp.c @@ -20,6 +20,7 @@ * * o POWER PC * o clean up debugging + * o tx_skb at PH_DEACTIVATE time */ #include @@ -368,10 +369,7 @@ static void hdlc_fill_fifo(struct fritz_bcs *bcs) unsigned long flags; unsigned char *p; - DBG(0x40, "hdlc_fill_fifo"); - - if (!skb) - BUG(); + DBG(0x40, ""); if (skb->len == 0) BUG(); @@ -581,14 +579,14 @@ static void modehdlc(struct fritz_bcs *bcs, int mode) adapter->write_ctrl(bcs, 5); break; case L1_MODE_TRANS: - bcs->ctrl.sr.mode = HDLC_MODE_TRANS; - adapter->write_ctrl(bcs, 5); - bcs->ctrl.sr.cmd = HDLC_CMD_XRS; - adapter->write_ctrl(bcs, 1); - bcs->ctrl.sr.cmd = 0; - break; case L1_MODE_HDLC: - bcs->ctrl.sr.mode = HDLC_MODE_ITF_FLG; + bcs->rcvidx = 0; + bcs->tx_cnt = 0; + bcs->tx_skb = NULL; + if (mode == L1_MODE_TRANS) + bcs->ctrl.sr.mode = HDLC_MODE_TRANS; + else + bcs->ctrl.sr.mode = HDLC_MODE_ITF_FLG; adapter->write_ctrl(bcs, 5); bcs->ctrl.sr.cmd = HDLC_CMD_XRS; adapter->write_ctrl(bcs, 1); -- 2.39.5