since the Vkey now contains a Pci*, there's no need to pass in an extra pointer Reference: /n/atom/patch/applied/ioapic-pciinvkey Date: Sat Sep 5 21:16:55 CES 2015 Signed-off-by: quanstro@quanstro.net --- /sys/src/nix/k10/ioapic.c Sat Sep 5 21:16:36 2015 +++ /sys/src/nix/k10/ioapic.c Sat Sep 5 21:16:38 2015 @@ -432,16 +432,13 @@ static int msimask(Vkey *v, int mask) { - Pcidev *p; - - p = pcimatchtbdf(v->tbdf); - if(p == nil) + if(v->p == nil) return -1; - return pcimsimask(p, mask); + return pcimsimask(v->p, mask); } static int -intrenablemsi(Vctl* v, Pcidev *p) +intrenablemsi(Vctl* v) { u32int lo, hi; u64int msivec; @@ -450,64 +447,59 @@ ioapicphysdd(v, &hi, &lo); msivec = (u64int)hi<<32 | lo; - if(pcimsienable(p, msivec) == -1) + if(pcimsienable(v->p, msivec) == -1) return -1; v->eoi = lapiceoi; v->type = "msi"; v->mask = msimask; - DBG("msiirq: %T: enabling %.16llux %s vno %d\n", p->tbdf, msivec, v->name, v->vno); + DBG("msiirq: %T: enabling %.16llux %s vno %d\n", v->p->tbdf, msivec, v->name, v->vno); return v->vno; } int -disablemsi(Vctl*, Pcidev *p) +disablemsi(Vctl *v) { - if(p == nil) + if(v->p == nil) return -1; - return pcimsimask(p, 1); + return pcimsimask(v->p, 1); } static int msixmask(Vkey *v, int mask) { - Pcidev *p; - - p = pcimatchtbdf(v->tbdf); - if(p == nil) - return -1; - return pcimsixmask(p, mask); + return pcimsixmask(v->p, mask); } static int -intrenablemsix(Vctl* v, Pcidev *p) +intrenablemsix(Vctl* v) { u32int lo, hi; u64int msivec; - if((v->flag&Vmsix) == 0 || p == nil) + if((v->flag&Vmsix) == 0) return -1; lo = IPlow | TMedge; ioapicphysdd(v, &hi, &lo); msivec = (u64int)hi<<32 | lo; - if(pcimsixenable(p, msivec) == -1) + if(pcimsixenable(v->p, msivec) == -1) return -1; v->eoi = lapiceoi; v->type = "msi-x"; v->mask = msixmask; print("msix: %T: enabling %.16llux %s vno %d affinity %d\n", - p->tbdf, msivec, v->name, v->vno, v->affinity); + v->p->tbdf, msivec, v->name, v->vno, v->affinity); return v->vno; } int -disablemsix(Vctl *v, Pcidev *p) +disablemsix(Vctl *v) { - if((v->flag&Vmsix) == 0 || p == nil) + if((v->flag&Vmsix) == 0) return -1; - return pcimsixmask(p, 1); + return pcimsixmask(v->p, 1); } int @@ -608,12 +600,12 @@ if((p = pcimatchtbdf(v->tbdf)) == nil) panic("ioapic: no pci dev for tbdf %T", v->tbdf); v->p = p; - if(intrenablemsix(v, p) != -1) + if(intrenablemsix(v) != -1) return v->vno; - disablemsix(v, p); - if(intrenablemsi(v, p) != -1) + disablemsix(v); + if(intrenablemsi(v) != -1) return v->vno; - disablemsi(v, p); + disablemsi(v); if((devno = pcicfgr8(p, PciINTP)) == 0){ print("ioapicintrenable: no intp for %T\n", v->tbdf); return -1;