From: David Woodhouse <dwmw2@infradead.org>

Now that we coalesce ACKs for outgoing packets, the v.110 code needs to
look at the size it's given rather than assuming it'll get precisely one
callback for each packet sent...



---

 25-akpm/drivers/isdn/i4l/isdn_v110.c |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

diff -puN drivers/isdn/i4l/isdn_v110.c~ISDN-v110-fix drivers/isdn/i4l/isdn_v110.c
--- 25/drivers/isdn/i4l/isdn_v110.c~ISDN-v110-fix	Fri Feb 20 17:13:45 2004
+++ 25-akpm/drivers/isdn/i4l/isdn_v110.c	Fri Feb 20 17:13:45 2004
@@ -535,13 +535,15 @@ isdn_v110_stat_callback(int idx, isdn_ct
 			if (!(v = dev->v110[idx]))
 				return 0;
 			atomic_inc(&dev->v110use[idx]);
-			if (v->skbidle > 0) {
-				v->skbidle--;
-				ret = 1;
-			} else {
-				if (v->skbuser > 0)
-					v->skbuser--;
-				ret = 0;
+			for (i=0; i * v->framelen < c->parm.length; i++) {
+				if (v->skbidle > 0) {
+					v->skbidle--;
+					ret = 1;
+				} else {
+					if (v->skbuser > 0)
+						v->skbuser--;
+					ret = 0;
+				}
 			}
 			for (i = v->skbuser + v->skbidle; i < 2; i++) {
 				struct sk_buff *skb;

_