It seems there is an error in hfcpci.c in mainline kernel 3.10.49 See http://permalink.gmane.org/gmane.linux.isdn.i4l.user/6297 diff -uprN -X linux-3.10.49/Documentation/dontdiff linux-3.10.49.ORIG/drivers/isdn/hardware/mISDN/hfcpci.c linux-3.10.49/drivers/isdn/hardware/mISDN/hfcpci.c --- linux-3.10.49.ORIG/drivers/isdn/hardware/mISDN/hfcpci.c 2014-10-10 01:13:53.734926447 +0200 +++ linux-3.10.49/drivers/isdn/hardware/mISDN/hfcpci.c 2014-10-09 23:48:51.980533493 +0200 @@ -754,6 +754,7 @@ hfcpci_fill_fifo(struct bchannel *bch) struct hfc_pci *hc = bch->hw; int maxlen, fcnt; int count, new_z1; + int fillempty = 0; // Arny struct bzfifo *bz; u_char *bdata; u_char new_f1, *src, *dst; @@ -766,6 +767,7 @@ hfcpci_fill_fifo(struct bchannel *bch) !test_bit(FLG_TRANSPARENT, &bch->Flags)) return; count = HFCPCI_FILLEMPTY; + fillempty = 1; // Arny } else { count = bch->tx_skb->len - bch->tx_idx; } @@ -787,7 +789,8 @@ hfcpci_fill_fifo(struct bchannel *bch) fcnt = le16_to_cpu(*z2t) - le16_to_cpu(*z1t); if (fcnt <= 0) fcnt += B_FIFO_SIZE; - if (test_bit(FLG_FILLEMPTY, &bch->Flags)) { + //if (test_bit(FLG_FILLEMPTY, &bch->Flags)) { // Arny + if (fillempty) { // Arny /* fcnt contains available bytes in fifo */ if (count > fcnt) count = fcnt;