X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=sys%2Fsrc%2F9%2Fpc%2Fetherm10g.c;h=f74dab5547a2676003a035c0a2f0860314bde84a;hb=8243b6600f4c8d60e520aa1b20368ae9575aabf9;hp=cfcdf6256b7de63c1ef8e67542d645faecb115a3;hpb=3bebd3f5e278d77b1eb526cd9f924b0777043d2b;p=plan9front.git diff --git a/sys/src/9/pc/etherm10g.c b/sys/src/9/pc/etherm10g.c index cfcdf6256..f74dab554 100644 --- a/sys/src/9/pc/etherm10g.c +++ b/sys/src/9/pc/etherm10g.c @@ -192,11 +192,11 @@ typedef struct { typedef struct Ctlr Ctlr; typedef struct Ctlr { QLock; - int state; - int kprocs; uvlong port; Pcidev* pcidev; Ctlr* next; + int state; + int kprocs; int active; int id; /* do we need this? */ @@ -808,23 +808,24 @@ ctlrfree(Ctlr *c) static int setmem(Pcidev *p, Ctlr *c) { - ulong i; uvlong raddr; - Done *d; void *mem; + Done *d; + ulong i; c->tx.segsz = 2048; c->ramsz = 2*MiB - (2*48*KiB + 32*KiB) - 0x100; if(c->ramsz > p->mem[0].size) return -1; - - raddr = p->mem[0].bar & ~0x0F; + if(p->mem[0].bar & 1) + return -1; + raddr = p->mem[0].bar & ~0xF; mem = vmap(raddr, p->mem[0].size); if(mem == nil){ - print("m10g: can't map %8.8lux\n", p->mem[0].bar); + print("m10g: can't map %llux\n", raddr); return -1; } - dprint("%llux <- vmap(mem[0].size = %ux)\n", raddr, p->mem[0].size); + dprint("%llux <- vmap(mem[0].size = %d)\n", raddr, p->mem[0].size); c->port = raddr; c->ram = mem; c->cmd = malign(sizeof *c->cmd);