-CURRENT and -STABLE fails on IBM R30 in agp_ali.c

John Baldwin jhb at FreeBSD.org
Tue Nov 11 13:41:38 PST 2003


On 11-Nov-2003 Eric Anholt wrote:
> On Mon, 2003-11-10 at 13:50, Bjoern Fischer wrote:
>> Hello,
>> 
>> there is a problem in ali_agp.c (both, -CURRENT and -STABLE): If I
>> boot the generic kernel, it panics in agp_ali.c, when it tries to
>> allocate memory for the gatt. Some simlpe tests showed, that the
>> initial aperture size is reported as zero by the device:
>> 
>>   static int
>>   agp_ali_attach(device_t dev)
>>   {
>>        struct agp_ali_softc *sc = device_get_softc(dev);
>>        struct agp_gatt *gatt;
>>        int error;
>>   
>>        error = agp_generic_attach(dev);
>>        if (error)
>>                return error;
>>   
>>        sc->initial_aperture = AGP_GET_APERTURE(dev);
>> 
>> This is zero---------------------^^^^^^
>>   
>>        for (;;) {
>>                gatt = agp_alloc_gatt(dev);
>>                if (gatt)
>>                        break;
>>   
>>                /*
>>                 * Probably contigmalloc failure. Try reducing the
>>                 * aperture so that the gatt size reduces.
>>                 */
>>                if (AGP_SET_APERTURE(dev, AGP_GET_APERTURE(dev) / 2)) {
>>                        agp_generic_detach(dev);
>>                        return ENOMEM;
>>                }
>>        }
>>        sc->gatt = gatt;
>>   
>>        /* Install the gatt. */
>> 
>> Since I don't have a machine ready running -CURRENT, I can't really
>> debug this. How can I disable agp0 on boot time?
> 
> Would this be appropriate to commit to AGP, to disable the ali agp in
> case it reports 0 size (perhaps something in the BIOS has disabled it?)
> and to have agp_alloc_gatt() just fail instead of panicing in
> contigmalloc if the aperture size is 0?

Looks good to me.

-- 

John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/


More information about the freebsd-current mailing list