Fwd: panic after upgrade to 10

John Baldwin jhb at freebsd.org
Wed Feb 26 19:41:12 UTC 2014


On Wednesday, February 26, 2014 2:16:21 pm Sergey Matveychuk wrote:
> Yes, no panic now.
> For some reason agp0 is Intel 82855GM host to AGP bridge and agp1 is VGA 
> controller itself.

Yes, on this machine we should probably only be using agp1 and not agp0.
I'm guessing 8.x simply did not have 'device agp' in GENERIC which is why
you didn't see this.  Right now my patch is preventing the panic, but
/dev/agpgart probably isn't working quite right.  I guess you aren't
running X on this though?

> I've attached dmesg and pciconf output.
> 
> Please, note, i've filled kern/187015 for this problem.
> 
> 26.02.2014 20:24, John Baldwin пишет:
> > On Saturday, February 22, 2014 10:06:50 am Sergey Matveychuk wrote:
> >> Hi.
> >>
> >> I've tried to upgrade my home router to FreeBSD 10-STABLE from 8.x. And
> >> got this panic: https://www.dropbox.com/s/fxsily501x50vtw/A8eRRRJKbYM.jpg
> >>
> >> panic: make_dev_credv: bad si_name (error=17, si_name=agpgart)
> >>
> >> How it could be fixed or how work around to boot?
> >
> > I think the problem is there can only be one /dev/agpgart and this tried 
to
> > create two.  Odd that you would have two agp devices though.
> >
> > Try this patch which should fix the panic, but then capture a dmesg and
> > 'pciconf -lcb' output.
> >
> > Index: sys/dev/agp.c
> > ===================================================================
> > --- agp.c	(revision 262488)
> > +++ agp.c	(working copy)
> > @@ -212,6 +212,7 @@ int
> >   agp_generic_attach(device_t dev)
> >   {
> >   	struct agp_softc *sc = device_get_softc(dev);
> > +	struct cdev *cdev;
> >   	int i;
> >   	u_int memsize;
> >
> > @@ -256,10 +257,11 @@ agp_generic_attach(device_t dev)
> >   	TAILQ_INIT(&sc->as_memory);
> >   	sc->as_nextid = 1;
> >
> > -	sc->as_devnode = make_dev(&agp_cdevsw,
> > -	    0, UID_ROOT, GID_WHEEL, 0600, "agpgart");
> > -	sc->as_devnode->si_drv1 = dev;
> > -
> > +	if (make_dev_p(MAKEDEV_CHECKNAME, &cdev, &agp_cdevsw, NULL, UID_ROOT,
> > +	    GID_WHEEL, 0600, "agpgart") == 0) {
> > +		cdev->si_drv1 = dev;
> > +		sc->as_devnode = cdev;
> > +	}
> >   	return 0;
> >   }
> >
> > @@ -268,7 +270,8 @@ agp_free_cdev(device_t dev)
> >   {
> >   	struct agp_softc *sc = device_get_softc(dev);
> >
> > -	destroy_dev(sc->as_devnode);
> > +	if (sc->as_devnode != NULL)
> > +		destroy_dev(sc->as_devnode);
> >   }
> >
> >   void
> >
> >
> 

-- 
John Baldwin


More information about the freebsd-stable mailing list