M pc/devether.c => pc/devether.c +2 -1
@@ 716,8 716,9 @@ wd8013receive(Ctlr *cp)
p = &((Ring*)hw->ram)[next];
len = ((p->len1<<8)|p->len0)-4;
if(p->next < hw->pstart || p->next >= hw->pstop || len < 60){
- print("%d: #%2.2ux #%2.2ux #%2.2ux #%2.2ux\n", next,
+ print("%d/%d : #%2.2ux #%2.2ux #%2.2ux #%2.2ux\n", next, len,
p->status, p->next, p->len0, p->len1);
+ panic("receive");
dp8390rinit(cp);
return;
}
M port/devcons.c => port/devcons.c +1 -1
@@ 325,13 325,13 @@ consactive(void)
}
enum{
+ Qdir,
Qchal,
Qclock,
Qcons,
Qconsctl,
Qcputime,
Qcrypt,
- Qdir,
Qkey,
Qklog,
Qlights,
M port/devlance.c => port/devlance.c +5 -6
@@ 336,8 336,8 @@ lanceoput(Queue *q, Block *bp )
qlock(&l.tlock);
if(waserror()){
- freeb(bp);
qunlock(&l.tlock);
+ freeb(bp);
nexterror();
}
@@ 347,12 347,11 @@ lanceoput(Queue *q, Block *bp )
*/
tsleep(&l.tr, isobuf, (void *)0, 1000);
if(isobuf(0) == 0 || l.misses > 4){
- l.misses = 0;
-print("lance wedged, restarting\n");
- lancestart(0, 0);
+print("lance wedged\n");
+ qunlock(&l.tlock);
freeb(bp);
poperror();
- return; /* the interrupt routine will qunlock(&l.tlock) */
+ return;
}
p = &l.tp[l.tc];
@@ 390,8 389,8 @@ print("lance wedged, restarting\n");
l.tc = TSUCC(l.tc);
*l.rdp = INEA|TDMD; /**/
wbflush();
- freeb(bp);
qunlock(&l.tlock);
+ freeb(bp);
poperror();
}