From 6e3d9402c546d031383f3966d6106d3413ba69aa Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sat, 21 Mar 1998 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1998-03-21 --- ip/devip.c | 1 + ip/kio.c | 2 +- pc/etherelnk3.c | 7 ++++++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ip/devip.c b/ip/devip.c index ad78b62ea28b19f146afb41b4c00836701a8cbe4..3aef82aaa8b15512ac80b2d7fdeaea23e59c66c5 100644 --- a/ip/devip.c +++ b/ip/devip.c @@ -467,6 +467,7 @@ closeconv(Conv *cv) cv->incall = nc->next; closeconv(nc); } + cv->incall = nil; strcpy(cv->owner, network); cv->perm = 0660; diff --git a/ip/kio.c b/ip/kio.c index af69505a204e1d9867dbd8bcbabc598ba57bfc3a..05f34e13abb78a970cf0b5616a23d7b10a2c5752 100644 --- a/ip/kio.c +++ b/ip/kio.c @@ -124,7 +124,7 @@ kseek(int fd, vlong offset, int whence) case 2: devtab[c->type]->stat(c, buf); convM2D(buf, &dir); - c->offset = dir.length2 + offset; /* BOTCH */ + c->offset = dir.length1 + offset; /* BOTCH */ off = c->offset; break; } diff --git a/pc/etherelnk3.c b/pc/etherelnk3.c index 124f909883684a4c5dbeeca802353f8da8a96b8b..1412ae85bba8da3282b940162f2eb8be58fe56bb 100644 --- a/pc/etherelnk3.c +++ b/pc/etherelnk3.c @@ -1025,7 +1025,12 @@ interrupt(Ureg*, void* arg) ctlr->txthreshold += ETHERMINTU; } - if(s & (txJabber|txUnderrun)){ + /* + * According to the manual, maxCollisions does not require + * a TxReset, merely a TxEnable. However, evidence points to + * it being necessary on the 3C905. The jury is still out. + */ + if(s & (txJabber|txUnderrun|maxCollisions)){ if(ctlr->busmaster == 0) COMMAND(port, TxReset, 0); else