make all address references 64-bit clean Reference: /n/atom/patch/applied2013/hi82598 Date: Mon Aug 12 03:01:51 CES 2013 Signed-off-by: quanstro@quanstro.net --- /sys/src/nix/k10/ether82598.c Mon Aug 12 03:01:32 2013 +++ /sys/src/nix/k10/ether82598.c Mon Aug 12 03:01:33 2013 @@ -461,7 +461,6 @@ } c->speeds[i]++; e->mbps = speedtab[i]; - c->lim = 0; if(cttab[c->type].flag & Fphyoc) im(c, Lsc|Ioc); else @@ -702,8 +701,8 @@ c->reg[Mhadd] = c->rbsz<<16; c->reg[Hlreg0] |= Txcrcen|Jumboen; - c->reg[Rbal] = PCIWADDR(c->rdba); - c->reg[Rbah] = 0; + c->reg[Rbal] = Pciwaddrl(c->rdba); + c->reg[Rbah] = Pciwaddrh(c->rdba); c->reg[Rdlen] = c->nrd*sizeof(Rd); c->reg[Rdh] = 0; c->reg[Rdt] = c->rdt = 0; @@ -741,8 +740,8 @@ sleep(p, icansleep, p); } c->rb[rdt] = b; - r->addr[0] = PCIWADDR(b->rp); - r->addr[1] = 0; /* Pciwaddrh(b->rp); */ + r->addr[0] = Pciwaddrl(b->rp); + r->addr[1] = Pciwaddrh(b->rp); r->status = 0; c->rdfree++; i++; @@ -977,8 +976,8 @@ freeb(b); } memset(c->tdba, 0, c->ntd*sizeof(Td)); - c->reg[Tdbal] = PCIWADDR(c->tdba); - c->reg[Tdbah] = 0; + c->reg[Tdbal] = Pciwaddrl(c->tdba); + c->reg[Tdbah] = Pciwaddrh(c->tdba); c->reg[Tdlen] = c->ntd*sizeof(Td); c->reg[Tdh] = 0; c->reg[Tdt] = 0; --- /sys/src/9/pc/ether82598.c Mon Aug 12 03:01:35 2013 +++ /sys/src/9/pc/ether82598.c Mon Aug 12 03:01:36 2013 @@ -350,10 +350,14 @@ }; uchar pad[64]; /* cacheline */ }; - - Block *x; - uint nfast; - uint nslow; + union { + struct { + Block *x; + uint nfast; + uint nslow; + }; + uchar pad[64]; /* cacheline */ + }; }; /* tweakable parameters */ @@ -396,7 +400,7 @@ }; static long -ifstat(Ether *e, void *a, long n, ulong offset) +ifstat(Ether *e, void *a, long n, usize offset) { Ctlr *c; char *s, *p, *q; @@ -697,8 +701,8 @@ c->reg[Mhadd] = c->rbsz<<16; c->reg[Hlreg0] |= Txcrcen|Jumboen; - c->reg[Rbal] = PCIWADDR(c->rdba); - c->reg[Rbah] = 0; + c->reg[Rbal] = Pciwaddrl(c->rdba); + c->reg[Rbah] = Pciwaddrh(c->rdba); c->reg[Rdlen] = c->nrd*sizeof(Rd); c->reg[Rdh] = 0; c->reg[Rdt] = c->rdt = 0; @@ -730,14 +734,14 @@ for(int j = 0; j < Ntypes; j++){ if(e->f[j] == nil) continue; - print(" %.4ux %d %d\n", e->f[j]->type, qlen(e->f[j]->in), qcnt(e->f[j]->in)); + print(" %.4ux %d\n", e->f[j]->type, qlen(e->f[j]->in)); } } sleep(p, icansleep, p); } c->rb[rdt] = b; - r->addr[0] = PCIWADDR(b->rp); - r->addr[1] = 0; /* Pciwaddrh(b->rp); */ + r->addr[0] = Pciwaddrl(b->rp); + r->addr[1] = Pciwaddrh(b->rp); r->status = 0; c->rdfree++; i++; @@ -972,8 +976,8 @@ freeb(b); } memset(c->tdba, 0, c->ntd*sizeof(Td)); - c->reg[Tdbal] = PCIWADDR(c->tdba); - c->reg[Tdbah] = 0; + c->reg[Tdbal] = Pciwaddrl(c->tdba); + c->reg[Tdbah] = Pciwaddrh(c->tdba); c->reg[Tdlen] = c->ntd*sizeof(Td); c->reg[Tdh] = 0; c->reg[Tdt] = 0; --- /sys/src/9/pcpae/ether82598.c Mon Aug 12 03:01:38 2013 +++ /sys/src/9/pcpae/ether82598.c Mon Aug 12 03:01:39 2013 @@ -350,10 +350,14 @@ }; uchar pad[64]; /* cacheline */ }; - - Block *x; - uint nfast; - uint nslow; + union { + struct { + Block *x; + uint nfast; + uint nslow; + }; + uchar pad[64]; /* cacheline */ + }; }; /* tweakable parameters */ @@ -396,7 +400,7 @@ }; static long -ifstat(Ether *e, void *a, long n, ulong offset) +ifstat(Ether *e, void *a, long n, usize offset) { Ctlr *c; char *s, *p, *q; @@ -697,8 +701,8 @@ c->reg[Mhadd] = c->rbsz<<16; c->reg[Hlreg0] |= Txcrcen|Jumboen; - c->reg[Rbal] = PCIWADDR(c->rdba); - c->reg[Rbah] = 0; + c->reg[Rbal] = Pciwaddrl(c->rdba); + c->reg[Rbah] = Pciwaddrh(c->rdba); c->reg[Rdlen] = c->nrd*sizeof(Rd); c->reg[Rdh] = 0; c->reg[Rdt] = c->rdt = 0; @@ -730,14 +734,14 @@ for(int j = 0; j < Ntypes; j++){ if(e->f[j] == nil) continue; - print(" %.4ux %d %d\n", e->f[j]->type, qlen(e->f[j]->in), qcnt(e->f[j]->in)); + print(" %.4ux %d\n", e->f[j]->type, qlen(e->f[j]->in)); } } sleep(p, icansleep, p); } c->rb[rdt] = b; - r->addr[0] = PCIWADDR(b->rp); - r->addr[1] = 0; /* Pciwaddrh(b->rp); */ + r->addr[0] = Pciwaddrl(b->rp); + r->addr[1] = Pciwaddrh(b->rp); r->status = 0; c->rdfree++; i++; @@ -972,8 +976,8 @@ freeb(b); } memset(c->tdba, 0, c->ntd*sizeof(Td)); - c->reg[Tdbal] = PCIWADDR(c->tdba); - c->reg[Tdbah] = 0; + c->reg[Tdbal] = Pciwaddrl(c->tdba); + c->reg[Tdbah] = Pciwaddrh(c->tdba); c->reg[Tdlen] = c->ntd*sizeof(Td); c->reg[Tdh] = 0; c->reg[Tdt] = 0;