diff options
author | aiju <devnull@localhost> | 2017-06-17 19:47:04 +0000 |
---|---|---|
committer | aiju <devnull@localhost> | 2017-06-17 19:47:04 +0000 |
commit | cbcd9b1d718bb827432c944620fac09847c6abc0 (patch) | |
tree | ea9b4cc4fda34100b871662aa6401ef9c8855db1 /sys/src/cmd/vmx/virtio.c | |
parent | 31d14c316a73766057a02d57fd08d890a25d4783 (diff) |
vmx: VESA support and other misc I/O improvements
Diffstat (limited to 'sys/src/cmd/vmx/virtio.c')
-rw-r--r-- | sys/src/cmd/vmx/virtio.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/src/cmd/vmx/virtio.c b/sys/src/cmd/vmx/virtio.c index eba5313ce..345c94b3c 100644 --- a/sys/src/cmd/vmx/virtio.c +++ b/sys/src/cmd/vmx/virtio.c @@ -365,7 +365,7 @@ mkviodev(u16int devid, u32int pciclass, u32int subid) d = emalloc(sizeof(VIODev)); d->pci = mkpcidev(allocbdf(), devid << 16 | 0x1AF4, pciclass << 8, 1); d->pci->subid = subid << 16; - mkpcibar(d->pci, 1, 256, vioio, d); + mkpcibar(d->pci, BARIO, 0, 256, vioio, d); return d; } @@ -501,9 +501,14 @@ vionetwproc(void *vp) continue; } if(len < 14){ - vmerror("virtio net: ignoring short packet (length=%d)", len); + /* openbsd ends up sending lots of zero length packets sometimes */ + if(len != 0) + vmerror("virtio net: ignoring short packet (length=%d)", len); vioputbuf(vb); continue; + }else if(len < 60){ /* openbsd doesn't seem to know about ethernet minimum packet lengths either */ + memset(txbuf + len, 0, 60 - len); + len = 60; } rc = write(v->net.writefd, txbuf, len); vioputbuf(vb); |