M pc/etherelnk3.c => pc/etherelnk3.c +1 -1
@@ 1408,7 1408,7 @@ etherelnk3reset(Ether* ether)
ilock(&ctlr->wlock);
ctlr->xcvr = xcvr;
statistics(ether);
- memset(ctlr, 0, sizeof(Ctlr));
+ memset(ctlr->stats, 0, sizeof(ctlr->stats));
ctlr->busmaster = busmaster;
ctlr->xcvr = xcvr;
M port/devcons.c => port/devcons.c +2 -1
@@ 980,7 980,8 @@ randomread(void *xp, ulong n)
rb.wakeme = 0;
continue;
}
- *p++ = *rb.rp;
+ rb.randn = rb.randn*1103515245 + 12345 + *rb.rp;
+ *p++ = rb.randn;
if(rb.rp+1 == rb.ep)
rb.rp = rb.buf;
else