> Date: Tue, 13 Nov 2012 11:55:07 +0100 > From: Martin Pieuchot <mpieuc...@nolizard.org> > > After loosing some hairs trying to figure out where I screw up in > mmaping the AGP aperture, here's a trivial fix. > > Diff below corrects the first argument of the agpmmap() function that > should be a dev_t and not a pointer to the driver's descriptor.
ok kettenis@ if you fix the spaces vs. tab issue. > Index: agp.c > =================================================================== > RCS file: /cvs/src/sys/dev/pci/agp.c,v > retrieving revision 1.34 > diff -u -p -r1.34 agp.c > --- agp.c 26 Dec 2010 15:41:00 -0000 1.34 > +++ agp.c 12 Nov 2012 18:20:48 -0000 > @@ -60,7 +60,7 @@ int agp_generic_free_memory(struct agp_s > void agp_attach(struct device *, struct device *, void *); > int agp_probe(struct device *, void *, void *); > int agpbusprint(void *, const char *); > -paddr_t agpmmap(void *, off_t, int); > +paddr_t agpmmap(dev_t, off_t, int); > int agpioctl(dev_t, u_long, caddr_t, int, struct proc *); > int agpopen(dev_t, int, int, struct proc *); > int agpclose(dev_t, int, int , struct proc *); > @@ -206,9 +206,12 @@ struct cfdriver agp_cd = { > }; > > paddr_t > -agpmmap(void *v, off_t off, int prot) > +agpmmap(dev_t dev, off_t off, int prot) > { > - struct agp_softc* sc = (struct agp_softc *)v; > + struct agp_softc *sc = agp_find_device(AGPUNIT(dev)); > + > + if (sc == NULL || sc->sc_chipc == NULL) > + return (-1); > > if (sc->sc_apaddr) {