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

Eric Anholt eta at lclark.edu
Tue Nov 11 13:26:26 PST 2003


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?

-- 
Eric Anholt                                eta at lclark.edu          
http://people.freebsd.org/~anholt/         anholt at FreeBSD.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: agp-alifix.diff
Type: text/x-patch
Size: 1053 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20031111/eaa3528d/agp-alifix.bin


More information about the freebsd-current mailing list