]> git.hungrycats.org Git - linux/commitdiff
[PATCH] 2.5.3 ISDN hisax_fcpcipnp driver fix
authorKai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
Tue, 5 Feb 2002 09:50:08 +0000 (01:50 -0800)
committerKai Germaschewski <kai@chaos.tp1.ruhr-uni-bochum.de>
Tue, 5 Feb 2002 09:50:08 +0000 (01:50 -0800)
the appended patch fixes a problem where the ->rcvidx variable was not
initialized properly.

drivers/isdn/hisax/hisax_fcpcipnp.c

index a8359bb8100b0a266be1e6ed1b57175c33bd916e..3c5d5435395ec666cd3feb56f4bf0f03e32af344 100644 (file)
@@ -20,6 +20,7 @@
  *
  * o POWER PC
  * o clean up debugging
+ * o tx_skb at PH_DEACTIVATE time
  */
 
 #include <linux/version.h>
@@ -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);